Es posible activar un sistema, como una alarma, detectando la presencia de una persona mediante un sensor de movimiento PIR. En la automatización del hogar, es una práctica común activar los dispositivos cuando una persona entra en una habitación. Esto es posible gracias a los sensores de movimiento como el sensor infrarrojo pasivo (PIR). Veremos en este tutorial cómo manejar el sensor PIR usando un microcontrolador Arduino.
Hardware
- Computadora
- Arduino UNO
- Cable USB A macho a B macho
- El sensor de movimiento PIR
Principio de funcionamiento
Cualquier objeto con una temperatura superior al cero absoluto emite radiación infrarroja. Esto es lo que podemos ver en las imágenes de la cámara térmica. El sensor PIR está equipado con dos células sensibles a los infrarrojos que detectarán los rayos infrarrojos reflejados o emitidos por un objeto.
Cuando no hay movimiento, el nivel de infrarrojos recibido es el mismo para ambas células. Durante el paso de un objeto, la emisión de estos rayos se modificará en una célula y luego en la otra, lo que permitirá detectar el movimiento.
La cubierta blanca, que suele cubrir y proteger el sensor, es una lente multifacética de Fresnel que enfoca y a veces filtra la radiación infrarroja en las células.
Esquema
El módulo PIR puede ser alimentado directamente por el microcontrolador y, al devolver un estado, la salida del sensor se conecta a una entrada digital.
Código
El sensor PIR devuelve un estado alto (HIGH) cuando detecta movimiento y un estado bajo (LOW) si no hay nada. Por lo tanto, se gestionará como una entrada digital utilizando la función digitalRead() de Arduino.
//Parameters const int pirPin = 2; //Variables bool pirStatus = false; void setup() { //Init Serial USB Serial.begin(9600); Serial.println(F("Initialize System")); //Init digital input pinMode(pirPin, INPUT); } void loop() { readPIR(); } void readPIR( ) { /* function readPIR */ ////Test routine for PIR pirStatus = digitalRead(pirPin); Serial.print(F("Sensor status")); Serial.println(pirStatus); if (pirStatus) { Serial.print(F("----> Detection")); delay(500); } delay(100); }
Aplicaciones
- Encender una luz cuando se detecta movimiento
- Activación de una alarma ante la intrusión de una persona
Fuentes
- https://www.arduino.cc/reference/en/language/functions/digital-io/digitalwrite/
- Gestión de sensores con Arduino
Encuentre otros tutoriales y ejemplos en el generador de código automático
Arquitecto de Código