Usando um Sensor de Movimento HC-SR501 com um Relé e Código Arduino
Neste tutorial, vamos explorar como usar o sensor de movimento HC-SR501 em conjunto com um relé para controlar uma lâmpada AC ou outro tipo de carga usando um Arduino. O HC-SR501 é um sensor de movimento infravermelho que pode detectar movimento a até 7 metros de distância, tornando-o ideal para várias aplicações, como alarmes de segurança ou sistemas de iluminação automáticos. Ao utilizar este sensor e um relé, você pode criar um projeto que acende uma luz quando movimento é detectado.

Forneceremos um guia passo a passo sobre a configuração de hardware, instruções de fiação e o código Arduino necessário para alcançar essa funcionalidade. Para uma melhor compreensão do processo, certifique-se de assistir ao vídeo associado (no vídeo em :00).
Hardware Explicado
Os componentes principais deste projeto incluem o sensor de movimento HC-SR501, um módulo relé e uma placa Arduino. O sensor HC-SR501 possui três pinos: VCC, GND e OUT. O pino VCC conecta-se a uma fonte de alimentação (5V), o pino GND conecta-se ao terra e o pino OUT envia um sinal para o Arduino quando o movimento é detectado.
O módulo de relê atua como um interruptor que pode controlar dispositivos de alta tensão. Ele possui três pinos principais: COM (comum), NO (normalmente aberto) e NC (normalmente fechado). Nesta configuração, usaremos o pino NO, que conecta à carga quando o relê é ativado. Isso permite que o Arduino controle o relê com base no sinal recebido do sensor de movimento.
Detalhes da Ficha Técnica
| Fabricante | HC-SR501 |
|---|---|
| Número da peça | HC-SR501 |
| Tensão de lógica/Entrada/Saída | 5 V |
| Tensão de alimentação | 5-20 V |
| Consumo de energia | 65 mA |
| Ângulo de detecção | 120 graus |
| Distância de detecção | 3-7 m |
| Temperatura de operação | -15 a 70 °C |
| Tipo de saída | Digital |
| Pacote | Módulo |
- Assegure um fornecimento de energia adequado (5-20 V) para o sensor.
- Ajuste o potenciômetro de sensibilidade para um alcance de detecção ideal.
- Use o pino NO do relé para controlar a carga de forma eficaz.
- Tenha cuidado com a classificação de corrente do relé (10 A no máximo).
- Teste o alcance de detecção do sensor de movimento antes da instalação final.
- Considere a dissipação de calor se estiver usando o relé para cargas altas.
Instruções de Fiação

Para conectar o sensor de movimento HC-SR501 e o relé ao Arduino, comece conectando o pino VCC do sensor de movimento ao pino de 5V no Arduino. Em seguida, conecte o pino GND do sensor a um dos pinos GND do Arduino. O pino OUT do sensor de movimento deve ser conectado ao pino digital 2 no Arduino.
Para o módulo de relé, conecte o pino VCC ao pino de 5V no Arduino e o pino GND ao terra. O pino de entrada (geralmente rotulado como IN ou similar) do relé deve ser conectado ao pino digital 4 no Arduino. Certifique-se de verificar a orientação do relé para garantir que ele esteja configurado para normalmente aberto (NA) para esta configuração. Por fim, conecte a carga (por exemplo, uma lâmpada AC) ao relé de acordo com as especificações do relé, garantindo que as conexões estejam seguras.
Exemplos de Código e Passo a Passo
No código Arduino, definimos constantes para os pinos do sensor e do relé. O pino do sensor é definido comoSENSOR_PIN, que está atribuído ao pino digital 2, e o pino do relé está definido paraRELAY_PIN, atribuído ao pino digital 4. Essa configuração nos permite ler a saída do sensor e controlar o relé de acordo.
const int SENSOR_PIN = 2; // the Arduino pin connected to the output of the sensor
const int RELAY_PIN = 4; // the Arduino pin which is connected to control the relay
No textosetup()função, inicializamos o monitor serial para depuração e definimos os modos dos pinos para os pinos do sensor e do relé. Isso garante que o Arduino saiba quais pinos são entradas e saídas.
void setup() {
Serial.begin(9600); // setup Serial Monitor to display information
pinMode(SENSOR_PIN, INPUT); // Define SENSOR_PIN as Input from sensor
pinMode(RELAY_PIN, OUTPUT); // Define RELAY_PIN as OUTPUT for relay
}
Noloop()função, verificamos continuamente o estado do sensor de movimento. Se movimento for detectado, imprimimos uma mensagem no monitor serial e ativamos o relé definindo-o como baixo. Se nenhum movimento for detectado, imprimimos uma mensagem diferente e desligamos o relé definindo-o como alto.
void loop() {
int motion = digitalRead(SENSOR_PIN); // read the sensor pin
if (motion) {
Serial.println("Motion detected");
digitalWrite(RELAY_PIN, LOW); // Turn the relay ON
} else {
Serial.println("===Nothing moves");
digitalWrite(RELAY_PIN, HIGH); // Turn the relay OFF
}
delay(500);
}
Demonstração / O que Esperar
Quando o sensor de movimento detecta movimento, o relé será ativado, permitindo que a energia flua para a carga conectada, como uma lâmpada de ar-condicionado. Você deve ver a lâmpada acender imediatamente ao detectar movimento. Se o sensor não detectar nenhum movimento, a lâmpada permanecerá apagada. Esteja ciente de que as configurações de sensibilidade do sensor afetarão seu alcance de detecção, portanto, ajustes podem ser necessários para um desempenho ideal (no vídeo às 05:00).
Os erros comuns incluem fiação incorreta ou excesso dos limites de corrente do relé, o que pode levar à falha. Certifique-se de que todas as conexões estejam seguras e teste a configuração em um ambiente controlado antes do uso final.
Marcas de Tempo do Vídeo
- 00:00 Início
- 00:35 Hardware explicado
- 04:35 Classificação de potência do relé
- 06:00 Fiação explicada
- 07:53 Código Arduino Explicado
- 09:48 Demonstração deste projeto
Coisas que você pode precisar
-
Amazonas
-
eBay
-
AliExpressCompre o sensor de movimento HC-SR501, HC-SR505 ou HW-MS03 no AliExpress.s.click.aliexpress.com
Recursos e referências
Ainda não há recursos.
Arquivos📁
Nenhum arquivo disponível.