fbpixel
Etiquetas: ,
3.8
(4)

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

Encuentre otros tutoriales y ejemplos en el generador de código automático
Arquitecto de Código

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuarlo!

Promedio de puntuación 3.8 / 5. Recuento de votos: 4

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

Ya que has encontrado útil este contenido...

¡Sígueme en los medios sociales!

¡Siento que este contenido no te haya sido útil!

¡Déjame mejorar este contenido!

Dime, ¿cómo puedo mejorar este contenido?