En este tutorial vamos a ver qué es un sensor PIR (Passive Infra Red) y lo extremadamente fácil que es de utilizar en nuestro Arduino.
¿Qué es un sensor PIR?
Un sensor PIR es un sensor de infrarrojos pasivo, que se utiliza para detectar movimiento de cuerpos u objetos que irradian luces infrarrojas (como por ejemplo el cuerpo humano).
Los sensores PIR son muy utilizados en Arduino para la detección de movimiento de seres humanos, como por ejemplo los módulos que detectan la ocupación de una sala en sistemas de seguridad.
Los sensores PIR son, por lo general, sensores muy pequeños, eficientes y muy baratos con los que podemos detectar movimiento en el entorno. Su pequeño tamaño y bajo consumo los hacen perfectos para ser utilizados en proyectos con Arduino.
¿Cómo se utiliza un sensor PIR en Arduino?
En el mercado existen distintos tipos de módulos PIR, pero todos ellos funcionan de la misma forma. Tienen un pin de corriente (Vcc), uno de tierra (GND), y otro pin de salida digital que debemos conectar a uno de los pines digitales de Arduino.
La salida del pin digital del sensor PIR en Arduino símplemente nos indicará cuando ha detectado movimiento (la lectura será HIGH) y cuándo no detecta nada (lectura LOW).
Además, algunos modelos de sensor PIR traen una especie de semiesfera que sirve como una lente para el sensor que consigue mejorar su ángulo de detección.
Código de ejemplo de un sensor PIR en Arduino
El código que necesitamos para utilizar nuestro sensor PIR Arduino es realmente simple.
Tan solo tenemos que respetar las conexiones (en este caso utilizaremos el pin digital D2), de forma que podemos leer el valor del sensor en cada momento mediante la función digitalRead que nos proporciona Arduino.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | int ledPin = 13; // pin del LED que encenderemos int inputPin = 2; // pin de entrada del sensor PIR int pirState = LOW; // valor inicial (sin movimiento) int val = 0; // variable para leer el valor void setup() { pinMode(ledPin, OUTPUT); // escribiremos en el pin del LED pinMode(inputPin, INPUT); // leeremos el input del PIR Serial.begin(9600); } void loop(){ val = digitalRead(inputPin); // leemos el input de D2 if (val == HIGH) { // valor HIGH = Movimiento digitalWrite(ledPin, HIGH); // encendemos el LED if (pirState == LOW) { // Actualizamos variables y estado Serial.println("Movimiento detectado!"); pirState = HIGH; } } else { // valor LOW = No movimiento digitalWrite(ledPin, LOW); // apagamos el LED if (pirState == HIGH){ // Actualizamos variables y estado Serial.println("Sin movimiento!"); pirState = LOW; } } } |
Una vez que hayamos desplegado este código en Arduino, cuando comience la ejecución deberemos dejar unos 10-15 segundos, que es el tiempo que tarda en calibrar el sensor PIR Arduino. Pasado este tiempo, nuestro sensor habrá reconocido el entorno que tiene alrededor y estará listo para detectar movimientos en el área.
Conclusiones
En conclusión, los sensores PIR Arduino nos permiten detectar movimiento a nuestro alrededor, de forma que podemos utilizar este módulo en multitud de proyectos IoT. Desde sistemas de vigilancia con detección de movimiento, hasta simples controladores de luz basados en presencia humana o automatización de bombillas.
Además, su bajo coste y pequeño tamaño hace que estos sensores PIR sean perfectos para su uso en placas del estilo Arduino o Raspberry.