Ya sea que desees construir una alarma antirobo para el hogar o una cámara de seguimiento, o tal vez desees despertar accesorios animados de Halloween cuando golpeen tu puerta, entonces definitivamente deberías considerar comprar un infrarrojo pasivo (PIR) HC-SR501.

El sensor PIR permite detectar cuando una persona o animal se mueve dentro o fuera del alcance del sensor. Este sensor es lo que encontrarás en la mayoría de los sistemas de seguridad modernos, interruptores de luz automáticos, abridores de puertas de garaje y aplicaciones similares en las que queremos reaccionar al movimiento.

Antes de entrar en el meollo del asunto, primero comprendamos cómo funciona realmente un sensor PIR.

¿Cómo funciona un sensor PIR?

Todos los objetos, incluido el cuerpo humano, a temperaturas superiores al cero absoluto (0 Kelvin / -273,15 °C) emiten energía térmica en forma de radiación infrarroja. Cuanto más caliente es un objeto, más radiación emite. Esta radiación no es visible para el ojo humano porque se emite en longitudes de onda infrarrojas. El sensor PIR está diseñado específicamente para detectar tales niveles de radiación infrarroja.

Un sensor PIR consta de dos partes principales:

  • Un sensor piroeléctrico , que puedes ver en la imagen de abajo como un metal redondo con un cristal rectangular en el centro.
  • Una lente especial llamada lente Fresnel que enfoca las señales infrarrojas en el sensor piroeléctrico.

El sensor piroeléctrico

Un sensor piroeléctrico consiste en una ventana con dos ranuras rectangulares y está hecho de un material (típicamente silicona recubierta) que permite el paso de la radiación infrarroja. Detrás de la ventana, hay dos electrodos de sensores infrarrojos separados, uno responsable de producir la salida positiva y el otro de producir la salida negativa.

Los dos electrodos están cableados de manera que se anulan entre sí. Esto se debe a que estamos buscando cambios en los niveles de IR y no en los niveles de IR del ambiente. Es por eso que cuando una mitad ve más o menos radiación IR que la otra, obtenemos la salida.

Cuando no hay movimiento alrededor del sensor, ambas ranuras detectan la misma cantidad de radiación infrarroja, lo que da como resultado una señal de salida cero.

Pero cuando pasa un cuerpo caliente como un humano o un animal, primero intercepta la mitad del sensor. Esto provoca un cambio diferencial positivo entre las dos mitades. Cuando el cuerpo caliente intercepta la otra mitad del sensor (sale de la región de detección), sucede lo contrario y el sensor produce un cambio diferencial negativo. Al leer este cambio de voltaje, se detecta movimiento.

La lente de Fresnel

Puedes sentir que la lente de Fresnel utilizada aquí realmente no está haciendo nada. De hecho, esto es lo que aumenta el rango y el campo de visión del sensor PIR. Su construcción delgada y liviana y su excelente capacidad de captación de luz la hacen extremadamente útil para hacer que los PIR sean pequeños pero potentes.

Una lente de Fresnel consta de una serie de ranuras concéntricas talladas en el plástico. Estos contornos actúan como superficies de refracción individuales, reuniendo rayos de luz paralelos en un punto focal. Como resultado, un lente Fresnel, aunque de menor tamaño, puede enfocar la luz de manera similar a una lente óptica convencional.

En realidad, para aumentar el rango y el campo de visión del sensor PIR, el lente se divide en varias secciones de facetas, cada una de las cuales es un lente Fresnel separado.

Las diferentes facetas y sublentes crean una gama de áreas/zonas de detección, intercaladas entre sí. Es por eso que los centros de las lentes son ‘inconsistentes’ en la imagen de arriba: cada uno apunta a una mitad diferente del elemento sensor PIR.

Descripción general del hardware del sensor PIR HC-SR501

Para la mayoría de nuestros proyectos Arduino que requieren detectar si alguien ha salido o entrado en el área, el sensor PIR HC-SR501 es una excelente opción. Es de bajo consumo, bajo costo, fácil de interconectar y extremadamente popular entre los aficionados.

Este sensor PIR en sí es bastante sencillo y funciona de inmediato. Simplemente aplica alimentación 5V – 12V y tierra. La salida del sensor pasa a ALTO cuando se detecta movimiento y pasa a BAJO cuando está inactivo (no se detecta movimiento).

Al conectar esta salida al microcontrolador, puede reaccionar al movimiento encendiendo y apagando las luces, habilitando un ventilador, habilitando un accesorio de Halloween o quizás tomando una foto de un intruso.

Y lo mejor es que consume menos de 2 mA de corriente y puede detectar movimiento hasta 7 metros (21 pies) con control de sensibilidad.

Controlador PIR BISS0001

En el corazón del módulo hay un controlador infrarrojo pasivo (PIR) IC – BISS0001. Debido a la inmunidad al ruido que proporciona, el BISS0001 es uno de los controladores PIR más estables disponibles.

Este chip toma la salida del sensor piroeléctrico y realiza un procesamiento menor para emitir un pulso de salida digital.

Puede obtener más información sobre BISS0001 en la hoja de datos.

Energía

El módulo viene con un regulador de voltaje de precisión de 3,3 V, por lo que puede alimentarse con cualquier voltaje de CC de 4,5 a 12 voltios, aunque comúnmente se usa 5V.

El módulo viene con un diodo de protección (también conocido como diodo de seguridad) para proteger el módulo de voltaje y corriente inversos. Entonces, incluso si conecta accidentalmente la alimentación con la polaridad incorrecta, tu módulo no se dañará.

Ajuste de sensibilidad

El sensor PIR tiene un potenciómetro en la parte posterior para ajustar la sensibilidad.

Este potenciómetro establece el rango máximo de detección. La sensibilidad se puede ajustar en un rango de aproximadamente 3 metros a 7 metros (9 a 21 pies). Sin embargo, la topología de su habitación puede afectar el rango real que obtiene. Girar el potenciómetro en el sentido de las agujas del reloj aumentará la sensibilidad y, por tanto, el alcance, y viceversa.

Ajuste de retardo de tiempo

Hay otro potenciómetro en la parte posterior del sensor PIR para ajustar el tiempo de retardo.

Este potenciómetro establece cuánto tiempo permanecerá ALTA la salida después de que se detecte movimiento. Se puede ajustar desde 1 segundo hasta aproximadamente 3 minutos. Girar el potenciómetro en el sentido de las agujas del reloj aumenta el retardo, mientras que girar el potenciómetro en el sentido contrario a las agujas del reloj disminuye el retardo.

Puente de selección de disparador

Hay dos modos de disparo que determinan cómo reaccionará el sensor cuando se detecte movimiento.

Modo de disparo único: el movimiento constante provocará un solo disparo.

Modo de activación múltiple: el movimiento constante provocará una serie de activaciones.

La placa viene con un puente berg (algunos módulos tienen un puente de soldadura) que le permite elegir uno de dos modos:

L: al seleccionar esto, se establecerá el modo de disparo único. En este modo, la salida pasa a ALTO tan pronto como se detecta movimiento y permanece ALTO durante un período determinado por el potenciómetro de retardo de tiempo. La detección adicional se bloquea hasta que la salida vuelve a BAJO al final del tiempo de retardo. Si todavía hay movimiento, la salida volverá a ser ALTA. Como puedes ver en la imagen a continuación, Motion #3 se ignora por completo.

H: al seleccionar esto, se establecerá el modo de activación múltiple. En este modo, la salida pasa a ALTO tan pronto como se detecta movimiento y permanece ALTO durante un período determinado por el potenciómetro de retardo de tiempo. A diferencia del modo de disparo único, no se bloquea la detección adicional, por lo que el tiempo de retardo se restablece cada vez que se detecta movimiento. Una vez que el movimiento se detiene, la salida vuelve a BAJO solo después de un tiempo de retraso. De ahí el nombre de modo de activación múltiple.

Componentes opcionales: termistor y LDR

El módulo HC-SR501 tiene pads de soldadura para dos componentes adicionales. Estos suelen estar etiquetados como ‘RT’ y ‘RL’. Tenga en cuenta que en algunas placas el nombre puede estar cubierto por la lente de Fresnel en el lado opuesto de los componentes.

RT: esta conexión es para un termistor o una resistencia sensible a la temperatura. Agregar esto permite que el HC-SR501 se use en temperaturas extremas. Esto también aumenta la precisión del detector hasta cierto punto.

RL: esta conexión es para resistencia dependiente de la luz (LDR) o fotorresistencia. Agregar este componente permite que el HC-SR501 funcione en la oscuridad. Esto es útil para construir sistemas de iluminación sensibles al movimiento.

Estos componentes adicionales pueden soldarse directamente al módulo o extenderse a ubicaciones remotas mediante cables y conectores.

Especificaciones técnicas

Aquí están las especificaciones:

Asignación de pines del sensor PIR HC-SR501

El HC-SR501 tiene un conector de 3 pines. Las marcas están ocultas por la lente de Fresnel, así que consulta la siguiente imagen para ver el pinout.

Diagrama de distribución de pines del sensor infrarrojo pasivo PIR

VCC es la fuente de alimentación para el sensor. Puedes conectar un voltaje de entrada en cualquier lugar entre 5 y 12 V a este pin, aunque comúnmente se usa 5 V.

OUTPUT El pin es la salida lógica TTL de 3,3 V. Pasa a ALTO cuando se detecta movimiento y a BAJO cuando está inactivo (no se detecta movimiento).

GND es el pin de tierra.

Uso del sensor PIR como una unidad independiente

Una de las razones por las que el sensor PIR HC-SR501 es extremadamente popular es que es un sensor muy versátil que es bastante capaz por sí solo. Puede aumentar aún más su versatilidad conectándolo a un microcontrolador como Arduino.

Para nuestro primer experimento, usaremos el HC-SR501 para mostrar lo útil que es por sí solo.

El cableado para este experimento es muy simple. Conecte las baterías a VCC y GND del sensor y un pequeño LED rojo al pin de salida a través de una resistencia limitadora de corriente de 220 Ω. ¡Eso es todo! ¡Ahora, cuando el PIR detecta movimiento, el pin de salida se pondrá en “ALTO” y encenderá el LED!

Recuerda que una vez que enciende el circuito, debes esperar de 30 a 60 segundos para que el PIR se adapte a la energía infrarroja en la habitación. El LED puede parpadear un poco durante ese tiempo. Espera hasta que el LED se apague por completo y luego camina frente a él o agita la mano y observa cómo se enciende el LED en consecuencia.

Esta salida PIR se puede conectar directamente a un módulo de relé si desea encender o apagar algo en función del movimiento.

Conexión de un sensor PIR a un Arduino

Ahora que tenemos una comprensión completa de cómo funciona el sensor PIR, ¡podemos comenzar a conectarlo a nuestro Arduino!

Conectar el sensor PIR al Arduino es realmente simple. Alimentar el PIR con 5V y conectar tierra a tierra. El PIR actúa como una salida digital, por lo que todo lo que tienes que hacer es escuchar el pin de salida. Entonces conecta la salida al pin digital #2 de Arduino.

Para que el HC-SR501 funcione correctamente, coloca el puente en la posición H (Modo de activación múltiple). También deberás configurar el retardo de tiempo en al menos 3 segundos, gira el potenciómetro de retardo de tiempo en sentido contrario a las agujas del reloj hasta el tope. Finalmente, coloca el potenciómetro de sensibilidad en la posición que desees o, si no estás seguro, colócalo en el punto medio.

Ahora estás listo para cargar un código y hacer que el PIR funcione.

Código de ejemplo de Arduino:

int ledPin = 13;                // choose the pin for the LED
int inputPin = 8;               // choose the input pin (for PIR sensor)
int pirState = LOW;             // we start, assuming no motion detected
int val = 0;                    // variable for reading the pin status
 
void setup() {
  pinMode(ledPin, OUTPUT);      // declare LED as output
  pinMode(inputPin, INPUT);     // declare sensor as input
 
  Serial.begin(9600);
}
 
void loop(){
  val = digitalRead(inputPin);  // read input value
  
  if (val == HIGH)	// check if the input is HIGH
  {            
    digitalWrite(ledPin, HIGH);  // turn LED ON
	
    if (pirState == LOW) 
	{
      Serial.println("Motion detected!");	// print on output change
      pirState = HIGH;
    }
  } 
  else 
  {
    digitalWrite(ledPin, LOW); // turn LED OFF
	
    if (pirState == HIGH)
	{
      Serial.println("Motion ended!");	// print on output change
      pirState = LOW;
    }
  }
}

El código es muy simple. Básicamente, solo realiza un seguimiento de si la entrada al pin 2 es ALTA o BAJA.

Con el sensor apuntando hacia arriba, desliza tu mano sobre el sensor. Deberías ver un mensaje de “Movimiento detectado” impreso en el terminal serial.

Cosas a considerar antes de diseñar aplicaciones basadas en PIR

Al diseñar un sistema basado en el HC-SR501, debes tener en cuenta los siguientes períodos de retraso.

Tiempo de bloqueo

Cuando la salida del sensor sea BAJA, permanecerá BAJA durante aproximadamente 2 segundos. Durante esto, la detección de movimiento está bloqueada.

Por ejemplo, supongamos que se configuró el sensor para un retraso de 4 segundos y se configuró el puente en ‘L’. Entonces, cuando muevas la mano frente al sensor, la salida será ALTA durante 4 segundos y luego BAJA durante aproximadamente 2 segundos. Cualquier movimiento en este período se ignora por completo; como puedes ver, la moción #2 se ignora aquí.

Retraso en el encendido

Como la mayoría de los sensores PIR, el HC-SR501 tarda aproximadamente de 30 a 60 segundos después de encenderse en pasar por la secuencia de inicialización. En ese momento, aprende la firma infrarroja ambiental del entorno. Básicamente, se está calibrando con el entorno para determinar qué constituye el movimiento.

Es probable que se produzcan activaciones falsas durante este tiempo de calibración, por lo que se debe ignorar cualquier activación durante este tiempo. Asegúrate también de que no haya demasiado movimiento delante del sensor cuando se esté autocalibrando, ya que esto puede interferir con el proceso de calibración.

How HC-SR501 PIR sensor works & interface it with Arduino. Last Minute engineers. https://lastminuteengineers.com/pir-sensor-arduino-tutorial/