⏱️ 25 min 🧩 PIR — Pino D2
O sensor PIR (Passive Infrared) deteta variações de calor infravermelhos — tipicamente causadas por pessoas a mover-se. Tem dois potenciómetros: um para a sensibilidade e outro para o tempo de permanência do sinal HIGH. No Kit C os potenciómetros já vêm ajustados de fábrica.
| Pino módulo | → Pino Arduino | Notas |
|---|---|---|
| OUT (Sinal) | D2 | HIGH durante ~2s quando deteta movimento |
| VCC | 5V | |
| GND | GND |
Após ligar o PIR, aguarda 30–60 segundos para que o sensor se calibre ao ambiente. Durante este período pode emitir sinais falsos.
#define PIR 2
#define LED_BRANCO 5
void setup() {
pinMode(PIR, INPUT);
pinMode(LED_BRANCO, OUTPUT);
Serial.begin(9600);
Serial.println("A aguardar calibracao PIR (30s)...");
delay(30000); // Espera 30s de calibração
Serial.println("PIR pronto!");
}
void loop() {
int movimento = digitalRead(PIR);
if (movimento == HIGH) {
digitalWrite(LED_BRANCO, HIGH);
Serial.println("Movimento detetado!");
} else {
digitalWrite(LED_BRANCO, LOW);
}
delay(100);
}#define PIR 2
#define LED_BRANCO 5
unsigned long ultimoMovimento = 0;
const unsigned long TEMPO_LUZ = 10000; // 10 segundos
void setup() {
pinMode(PIR, INPUT);
pinMode(LED_BRANCO, OUTPUT);
delay(30000); // Calibração PIR
}
void loop() {
if (digitalRead(PIR) == HIGH) {
ultimoMovimento = millis(); // Atualiza tempo
}
// Mantém luz ligada TEMPO_LUZ após último movimento
if (millis() - ultimoMovimento < TEMPO_LUZ) {
digitalWrite(LED_BRANCO, HIGH);
} else {
digitalWrite(LED_BRANCO, LOW);
}
}