// Sensor de movimiento PIR
// Tiene un sensor pasivo piroeléctrico
// Sólo consultando si la señal se encuentra en alto ya se sensa si hubo movimiento
// En la práctica tiene dos preset para modificar:
// - el tiempo durante el cual está activa la señal cuando detecta movimiento
// - la sensibilidad del sensor
// También se puede usar un sensor crepuscular. Para que largue una señal solo si es de noche (con tensión de red).
// Puede ser útil para activar alguna alarma también (con batería).
int PIR = 2; // Pin del sensor PIR
int RELE = 3; // Pin del relé
int ESTADO = 0; // Asumimos que inicialmente el sensor no detectó aun movimiento
void setup() {
pinMode(PIR, INPUT); // Se define pin del sensor como entrada
pinMode(RELE, OUTPUT); // Se define pin del sensor como salida
// Tiempo de espera que requiere el sensor para estabilizarse
// Se pone aquí en el setup para que se ejecute solo una vez al principio
delay(20000); // Espera de 20 s (tiempo promedio indicado por el fabricante)
}
void loop() {
ESTADO = digitalRead(PIR); // Se lee la señal del sensor
if (ESTADO == HIGH){
digitalWrite(RELE, HIGH); // Se activa el relé (Puede ser al revez en la práctica --> "LOW")
// Demora de 4 segundos para que no se prenda y apague muy seguido.
// Sino se podría dañar.
delay(4000);
} else {
digitalWrite(RELE, LOW); // (Puede ser al revez en la práctica --> "HIGH")
}
}