/* O buzzer fica ligado por 1 segundo quando detecta
movimento. Se quiser alterar basta trocar o valor
de BUZZER_TIME_MS*/
#include <Arduino.h>
// ===== PINOS =====
#define PIN_PIR 13
#define PIN_BUZZER 12
// ===== TEMPO DO BUZZER =====
#define BUZZER_TIME_MS 1000 // 1 segundo
// ===== VARIÁVEIS =====
bool buzzerLigado = false;
unsigned long buzzerStart = 0;
void setup() {
Serial.begin(115200);
delay(500);
pinMode(PIN_PIR, INPUT);
pinMode(PIN_BUZZER, OUTPUT);
digitalWrite(PIN_BUZZER, LOW);
Serial.println("Sistema iniciado - Aguardando movimento...");
}
void loop() {
int movimento = digitalRead(PIN_PIR);
// Detectou movimento e buzzer ainda desligado
if (movimento == HIGH && !buzzerLigado) {
Serial.println("Movimento detectado!");
digitalWrite(PIN_BUZZER, HIGH);
buzzerLigado = true;
buzzerStart = millis();
}
// Desliga buzzer após 1 segundo
if (buzzerLigado && (millis() - buzzerStart >= BUZZER_TIME_MS)) {
digitalWrite(PIN_BUZZER, LOW);
buzzerLigado = false;
Serial.println("Buzzer desligado. Aguardando novo movimento...");
}
}