// Define el pin donde está conectado el pin de Salida (OUT) del sensor PIR.
#define PIR_SENSOR_PIN GPIO_NUM_2
// Variable para almacenar el estado actual del sensor PIR
int pirState = LOW; // Inicialmente, asumimos que no hay movimiento
// Variable para almacenar el estado anterior, para detectar cambios
int lastPirState = LOW;
void setup() {
Serial.begin(115200); // Inicia la comunicación serial
Serial.println(F("Iniciando Monitor de Movimiento PIR..."));
pinMode(PIR_SENSOR_PIN, INPUT); // Configura el pin del PIR como entrada
}
void loop() {
// Lee el estado actual del sensor PIR (HIGH si detecta movimiento, LOW si no)
pirState = digitalRead(PIR_SENSOR_PIN);
// Compara el estado actual con el estado anterior para detectar un cambio
if (pirState != lastPirState) {
if (pirState == HIGH) {
// Se detectó movimiento
Serial.println(F("¡MOVIMIENTO DETECTADO!"));
} else {
// El movimiento ha cesado
Serial.println(F("Movimiento FINALIZADO."));
}
delay(50); // Pequeña pausa para estabilizar la lectura después del cambio
lastPirState = pirState; // Actualiza el estado anterior
}
// Si no hay cambio, no imprimimos nada para no saturar el Monitor Serial
delay(10); // Pequeña pausa entre lecturas para no sobrecargar el bucle
}Loading
aitewinrobot-esp32c3-supermini
aitewinrobot-esp32c3-supermini