Usando um Sensor de Movimento HC-SR501 com um Relé e Código Arduino

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

FabricanteHC-SR501
Número da peçaHC-SR501
Tensão de lógica/Entrada/Saída5 V
Tensão de alimentação5-20 V
Consumo de energia65 mA
Ângulo de detecção120 graus
Distância de detecção3-7 m
Temperatura de operação-15 a 70 °C
Tipo de saídaDigital
PacoteMó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

Arduino wiring for HC-SR501 Motions sensor
Arduino wiring for HC-SR501 Motions sensor

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

Imagens

HC-SR501 back
HC-SR501 back
HC-SR501 module
HC-SR501 module
Arduino wiring for HC-SR501 Motions sensor
Arduino wiring for HC-SR501 Motions sensor
141-Arduino source code for an HC-SR501 motion sensor to control an AC bulb or load
Idioma: C++
Copiado!

Recursos e referências

Ainda não há recursos.

Arquivos📁

Nenhum arquivo disponível.