Ir para o conteúdo
Eletrônica União

Alarme de presença com sensor PIR

Sensores · Iniciante · Tempo: 1 hora

O HC-SR501 entrega nível alto (3,3 V) quando detecta variação de calor no campo de visão.

Como funciona

O sensor leva 30 a 60 s para estabilizar ao ser ligado. Os dois trimpots ajustam sensibilidade (alcance até ~7 m) e tempo de saída alto; o jumper escolhe disparo único ou repetitivo.

O programa aciona o buzzer ativo em bipes enquanto houver movimento e registra cada detecção no Monitor Serial.

Esquema de ligações

12345678PIR HC-SR501VCCOUTGNDBuzzer+-Resistor 220RABLEDânodocátodoArduino5VD2GNDD13D8

Vermelho = alimentação (+), preto = terra (GND/−). As etiquetas indicam ligação com a fonte ou bateria; os números correspondem à tabela abaixo.

#DeParaObservação
1PIR HC-SR501: VCCArduino: 5V
2PIR HC-SR501: OUTArduino: D2
3PIR HC-SR501: GNDArduino: GND
4Buzzer: +Arduino: D8
5Buzzer: -Arduino: GND
6Arduino: D13Resistor 220R: A
7Resistor 220R: BLED: ânodo
8LED: cátodoArduino: GND

Código-fonte Arduino (C/C++)

// Alarme de presença com PIR HC-SR501
const int PIR = 2;
const int BUZZER = 8;
const int LED = 13;
bool anterior = false;

void setup() {
  Serial.begin(9600);
  pinMode(PIR, INPUT);
  pinMode(BUZZER, OUTPUT);
  pinMode(LED, OUTPUT);
  Serial.println("Estabilizando o sensor (30 s)...");
  delay(30000);
  Serial.println("Alarme ativo");
}

void loop() {
  bool movimento = digitalRead(PIR) == HIGH;
  if (movimento && !anterior) Serial.println("Movimento detectado!");
  anterior = movimento;
  digitalWrite(LED, movimento);
  if (movimento) {
    digitalWrite(BUZZER, HIGH);
    delay(150);
    digitalWrite(BUZZER, LOW);
    delay(150);
  }
}

Referências

Circuito baseado na documentação oficial dos fabricantes e bibliotecas:

Montagem

  1. PIR: VCC 5V, OUT no pino 2, GND.
  2. Buzzer ativo: (+) no pino 8, (−) no GND.
  3. LED com 220 Ω no pino 13.
  4. Carregue o código e aguarde 1 minuto antes de testar.

Ferramentas

Computador com Arduino IDE