Como usar o sensor de movimento PIR HC-SR501 com Arduino

How to Use the HC-SR501 PIR Motion Sensor with Arduino

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á

  1. Módulo de sensor de movimento pir hc-sr501
  2. Board Arduino (por exemplo, Uno, Mega, Nano)
  3. Fios de pão e jumper
  4. 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

  1. Sensibilidade: Ajuste a faixa de detecção (até ~ 7 metros).
  2. 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

  1. Conecte o Arduino ao seu computador via USB.
  2. Abra o Arduino IDE e selecione o correto Quadro e Porta sob o Ferramentas menu.
  3. Faça o upload do código clicando Carregar.
  4. Abra o monitor serial (Ferramentas > Monitor serial) e definir a taxa de transmissão como 9600.
  5. 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

  1. Iluminação ativada por movimento
  2. Alarmes de invasor
  3. Automação residencial inteligente
  4. 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!

Deixe um comentário

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.