Código Arduino e vídeo para um módulo sensor de movimento HC-SR505 com relé

Código Arduino e vídeo para um módulo sensor de movimento HC-SR505 com relé

Neste tutorial, construiremos um sistema de detecção de movimento usando o sensor de movimento HC-SR505 e um módulo relé. Esta configuração permitirá que você ligue dispositivos como luzes ou buzinas quando for detectado movimento. O relé atua como um interruptor para controlar com segurança dispositivos de alta tensão. Ao final deste guia, você terá uma configuração funcional de sensor de movimento que pode ativar vários aparelhos com base na detecção de movimento. Para uma compreensão mais clara, certifique-se de verificar o vídeo associado (no vídeo em 0:00).

HC-SR505 motion sensor

Hardware Explicado

Os principais componentes deste projeto incluem o sensor de movimento HC-SR505, um módulo relé e uma placa Arduino. O HC-SR505 é um sensor de infravermelho passivo (PIR) que detecta movimento ao perceber mudanças na radiação infravermelha. Ele funciona medindo o calor emitido pelos objetos em seu campo de visão. Quando um objeto em movimento é detectado, o sensor envia um sinal para a placa Arduino.

O módulo de relé é usado para controlar um dispositivo de alta tensão, como uma lâmpada. Ele funciona como um interruptor acionado eletricamente, permitindo que o Arduino ligue ou desligue o dispositivo com segurança. O relé possui duas configurações principais: normalmente aberto (NO) e normalmente fechado (NC), que determinam o estado padrão quando o relé não está ativado.

Detalhes da ficha técnica

FabricanteHC-SR505
Número da peçaHC-SR505
Tensão lógica/IO3.3V - 20V
Tensão de alimentação5V
Corrente de saída (por canal)20 mA
Corrente de pico (por canal)100 mA
Orientação sobre a frequência PWMNão aplicável
Limiares da lógica de entrada0,3 V (baixo) / 2,5 V (alto)
Queda de tensão / RDS(on)/ saturação0.2V
Limites térmicos+70 °C
PacoteMódulo
Notas / variantesFormato compacto; baixo consumo de energia

  • Garanta dissipação de calor adequada para cargas de alta corrente.
  • Use capacitores de desacoplamento para uma fonte de alimentação estável.
  • Tenha cuidado com conexões de alta tensão; garanta a segurança.
  • Teste o sensor com saídas simples antes de conectar aos relés.
  • Verifique a orientação do sensor PIR para uma detecção ideal.

Instruções de fiação

Arduino wiring for  HC-SR505 motion sensor
Arduino wiring for HC-SR505 motion sensor

Para ligar o sensor de movimento HC-SR505, primeiro conecte o pino de alimentação (identificado como +) à saída 5V do seu Arduino. Em seguida, conecte o pino terra (identificado como -) a um dos pinos de terra do Arduino. O pino de sinal (pino do meio) deve ser conectado ao pino digital 2 do Arduino.

Para o módulo de relé, conecte o pino VCC à saída de 5V do Arduino e o pino de terra ao GND do Arduino. O pino de entrada do relé deve ser conectado ao pino digital 9 do Arduino. Por fim, conecte o terminal positivo do buzzer ao pino digital 8 e o terminal negativo ao GND. Certifique-se de conectar corretamente os pinos comum (COM) e normalmente aberto (NO) do relé para controlar seu dispositivo.

Exemplos de Código e Passo a Passo

O código deste projeto inicializa os pinos do sensor, do buzzer e do relé. Ele usa odigitalRead()Função para verificar movimento e responder de acordo. Abaixo está um trecho da função setup:


void setup() {
  Serial.begin(9600); // setup Serial Monitor
  pinMode(PIR, INPUT_PULLUP); // define pin as Input for sensor
  pinMode(BUZZER, OUTPUT); // define pin as OUTPUT for buzzer
  pinMode(RELAY, OUTPUT); // define pin as OUTPUT for relay
}

Neste trecho, os pinos são configurados para o modo de entrada ou de saída. OSerial.begin(9600)inicializa a comunicação serial para depuração.

O loop principal verifica se há movimento e aciona o buzzer e o relé quando o movimento é detectado. Aqui está um trecho focado da função loop:

Wirig relay module to AC load

void loop() {
  int motion = digitalRead(PIR); // read the sensor
  if(motion) {
    Serial.println("Motion detected");
    digitalWrite(BUZZER, HIGH); // turn the buzzer ON
    digitalWrite(RELAY, LOW); // turn the relay ON
  } else {
    Serial.println("===nothing moves");
    digitalWrite(BUZZER, LOW); // keep the buzzer OFF
    digitalWrite(RELAY, HIGH); // turn the relay OFF
  }
  delay(500);
}

Este trecho lê o estado do sensor PIR e ativa ou desativa o buzzer e o relé com base no movimento detectado. O atraso de 500 milissegundos garante que o loop verifique o sensor em um intervalo razoável.

Demonstração / O que Esperar

Quando for detectado movimento, a luz conectada ao relé acenderá e o buzzer soará. Se nenhum movimento for detectado, o relé desligará a luz e o buzzer ficará silencioso. Esteja ciente de que o HC-SR505 tem um atraso incorporado que mantém a saída ativa por um curto período após a detecção de movimento (até 8 segundos), o qual não pode ser ajustado (no vídeo aos 5:30).

Marcações de tempo do vídeo

  • 00:00- Introdução ao projeto
  • 01:30- Explicação dos componentes
  • 03:15- Instruções de fiação
  • 05:30- Revisão do código
  • 07:00- Demonstração da configuração

Imagens

Wirig relay module to AC load
Wirig relay module to AC load
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
Arduino wiring for  HC-SR505 motion sensor
Arduino wiring for HC-SR505 motion sensor
74-This is the Arduino code for the HC-SR505 motion sensor (small) with relay.
Idioma: C++
Copiado!

Coisas que você pode precisar

Recursos e referências

Ainda não há recursos.

Arquivos📁

Arquivo Fritzing