En la serie de Arduino estamos viendo como implementar los dispositivos y sensores más comunes, hoy le toca al Sensor de Infrarojos Pasivo, más conocido por sus siglas en inglés PIR.
Todos los objetos con temperatura por encima de 0 emiten calor, este se puede medir por la longitud de onda infraroja. Un sensor PIR está preparado para detectar dichas ondas y ante cualquier variación, se activa.
Los sensores de infrarojos son dispositivos electrónicos comunes, baratos (por debajo de 1€) y fáciles de utilizar. Quizás los más extendidos sean el HC-SR501 y HC-SR505.

Esquema de conexión con Arduino

El PIR tiene tres pines:
- GRN – tierra, cable negro
- 5V- cable rojo
- Señal – cable amarillo
Conectamos tierra y 5V a sus respectivos pines en Arduino y la señal por ejemplo al pin 2.
Esas son todas las conexiones, ahora vamos al código.
const int pinPIR = 2; // pin de entrada del PIR
const int pinLED = 13; // pin del LED que indica estado del sensor
int estadoPIR = 0; // estado del pin, inicia a 0
int estadoLED = LOW; // estado del LED
void setup() {
// SENSOR PIR
pinMode(pinLED, OUTPUT); // selecciona pin de salida, en este caso el pin 13 activa led integrado en placa
pinMode(pinPIR, INPUT);
Serial.begin(9600);
}
void loop() {
estadoPIR = digitalRead(pinPIR);
if (estadoPIR == HIGH) { // si detecta movimiento enciende el led
if (estadoLED == LOW) { // si previamente estaba apagado lo enciende
estadoLED=HIGH;
digitalWrite(pinLED, HIGH); // enciende el led
Serial.println("Alerta! detectado movimiento");
}
} else { // si no se detecta movimiento
if (estadoLED == HIGH) { // si previamente estaba encendido lo apaga
estadoLED=LOW;
digitalWrite(pinLED, LOW); // apaga el led
Serial.println("Todo tranquilo...");
}
}
}
Declaramos pines de señal, 2, y el led de aviso, en este caso el 13 integrado en la propia placa.
Activamos el puerto serie para debuguear con el monitor serie y ver los mensajes println.
El código está comentado y hay poco que añadir, ante cualquier duda como siempre encantado de responder.

Un saludo!