O HC-SR501 é um módulo popular do sensor de movimento infravermelho passivo (PIR) que detecta o movimento, medindo as mudanças de radiação infravermelha em seus arredores. É comumente usado em projetos de iluminação ativada por movimento, sistemas de segurança e IoT. Este tutorial o guiará através da configuração e do uso do HC-SR501 com o Arduino.
O que você precisará
- Módulo de sensor de movimento pir hc-sr501
- Board Arduino (por exemplo, Uno, Mega, Nano)
- Fios de pão e jumper
- Um computador com o Arduino IDE instalado
Etapa 1: Compreendendo o sensor HC-SR501
O módulo HC-SR501 possui configurações de sensibilidade e atraso ajustáveis, tornando-o versátil para várias aplicações de detecção de movimento. Ele opera com energia de 5V e produz um sinal alto quando o movimento é detectado.
HC-SR501 PILOUT
Alfinete | Função |
---|---|
VCC | Fonte de alimentação (5V) |
FORA | Sinal de saída digital |
Gnd | Chão |
Configurações ajustáveis
- Sensibilidade: Ajuste a faixa de detecção (até ~ 7 metros).
- Tempo de atraso: Ajuste a duração do sinal alto após o movimento é detectado (aproximadamente 5 segundos a 5 minutos).
Etapa 2: Fiação do HC-SR501 para Arduino
Veja como conectar o HC-SR501 a um Arduino Uno:
Pino HC-SR501 | Pino Arduino |
---|---|
VCC | 5V |
FORA | Pino 2 |
Gnd | Gnd |
Etapa 3: Carregue o código
Aqui está um exemplo de esboço para monitorar a detecção de movimento e exibir o status no monitor serial:
const int pirPin = 2; // Connect HC-SR501 OUT to pin 2
void setup() {
pinMode(pirPin, INPUT);
Serial.begin(9600);
Serial.println("HC-SR501 PIR Motion Sensor Test");
}
void loop() {
int motionStatus = digitalRead(pirPin); // Read the sensor output
if (motionStatus == HIGH) {
Serial.println("Motion detected!");
} else {
Serial.println("No motion detected.");
}
delay(500); // Update every 500ms
}
Etapa 4: teste a configuração
- Conecte o Arduino ao seu computador via USB.
- Abra o Arduino IDE e selecione o correto Quadro e Porta sob o Ferramentas menu.
- Faça o upload do código clicando Carregar.
- Abra o monitor serial (Ferramentas > Monitor serial) e definir a taxa de transmissão como
9600
. - Mova dentro da faixa do sensor e observe o status de movimento impresso no monitor serial.
Opcional: controlar um LED com movimento
Você pode modificar o código para ativar um LED quando o movimento for detectado:
Ligando o LED
Pino de LED | Pino Arduino |
---|---|
Ânodo (+) | Pino 13 |
Catodo (-) | Gnd |
Código modificado
const int pirPin = 2; // Connect HC-SR501 OUT to pin 2
const int ledPin = 13; // Connect LED to pin 13
void setup() {
pinMode(pirPin, INPUT);
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
Serial.println("HC-SR501 PIR Motion Sensor Test");
}
void loop() {
int motionStatus = digitalRead(pirPin); // Read the sensor output
if (motionStatus == HIGH) {
digitalWrite(ledPin, HIGH); // Turn on LED
Serial.println("Motion detected!");
} else {
digitalWrite(ledPin, LOW); // Turn off LED
Serial.println("No motion detected.");
}
delay(500); // Update every 500ms
}
Aplicações do HC-SR501
- Iluminação ativada por movimento
- Alarmes de invasor
- Automação residencial inteligente
- Dispositivos IoT acionados por proximidade
Solução de problemas
- Nenhum movimento detectado: Verifique se o sensor é alimentado corretamente e a sensibilidade é ajustada adequadamente.
- Gatilhos falsos: Reduza o ruído ambiental (por exemplo, fontes de calor) e evite a exposição direta à luz solar.
- Leituras instáveis: Verifique o aterramento adequado e a fonte de alimentação estável.
Conclusão
Você interfigurou com sucesso o sensor de movimento PIR HC-SR501 com Arduino. Esse sensor versátil é perfeito para detecção de movimento em vários projetos. Experimente recursos adicionais, como ajustar a sensibilidade ou integrá-lo com outros componentes, para criar sistemas avançados baseados em movimento!