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
Vermelho = alimentação (+), preto = terra (GND/−). As etiquetas indicam ligação com a fonte ou bateria; os números correspondem à tabela abaixo.
| # | De | Para | Observação |
|---|---|---|---|
| 1 | PIR HC-SR501: VCC | Arduino: 5V | |
| 2 | PIR HC-SR501: OUT | Arduino: D2 | |
| 3 | PIR HC-SR501: GND | Arduino: GND | |
| 4 | Buzzer: + | Arduino: D8 | |
| 5 | Buzzer: - | Arduino: GND | |
| 6 | Arduino: D13 | Resistor 220R: A | |
| 7 | Resistor 220R: B | LED: ânodo | |
| 8 | LED: cátodo | Arduino: 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
- PIR: VCC 5V, OUT no pino 2, GND.
- Buzzer ativo: (+) no pino 8, (−) no GND.
- LED com 220 Ω no pino 13.
- Carregue o código e aguarde 1 minuto antes de testar.
Ferramentas
Computador com Arduino IDE
