Si quieres dotar a tus proyectos DIY de Arduino con capacidad para que detecten proximidad o movimiento y en función de eso hagan algún tipo de acción, como registrar un evento, encender una luz, poner en marcha una alarma, activar un motor DC, etc, entonces deberías conocer el sensor HC-SR501.
Este sensor usa IR, como otros tipos de sensores similares, y en esta guía intentaré explicarte todo lo que necesitas saber para comenzar a utilizarlo desde cero. Desde sus características, hasta cómo integrar HC-SR501 con tu placa Arduino UNO. Tode de una forma más práctica para que sea lo más sencillo posible.
Índice
Qué es el HC-SR501 y principio de funcionamiento
El HC-SR501 es un tipo de sensor de movimiento, un sensor PIR que consta de dos elementos deparados. Por un lado tiene un dispositivo emisor de la señal diferencial entre él y otros sensor que será el que realmente active la señal de alarma.
Esto se consigue mediante un circuito integrado BISS0001, que contiene amplificadores operacionales e interfaces electrónicas adicionales. Además de eso, el módulo permite realizar dos ajustes de sus funciones, uno es para la sensibilidad de la distancia de detección del PIR con unos potenciómetros. La otra función es la capacidad de detección automática de luz, aunque no está habilitada de fábrica.
Esa última función se suele usar para algunos sistemas para que enciendan la luz de un sistema cuando se detecta movimiento, pero la iluminación ambiental no es elevada, es decir, cuando es de noche.
En el caso del HC-SR501, se tiene un rango de detección de movimiento con un alcance de 3 hasta 7 metros de distancia, y aperturas del PIR de hasta 90 y 110º. Eso es un buen rango, permitiendo que se pueda instalar donde lo necesites, como un muro, techo, suelo, etc.
Como puedes ver, el sensor PIR está cubierto por una especie de cúpula blanca, eso es lo que se conoce como lente de Fresnel. Se llama así por el inventor y físico francés Augustin-Jean Fresnel. Gracias a él se permite construir lentes de gran apertura y corta distancia focal sin el peso y volumen del material que debería usarse con una lente convencional.
Y eso es gracias al diseño de esta lente inventada en 1822, y que sigue es patrón superficial que puedes ver en la imagen, similar a una pelota de golf. Y gracias a este diseño se han podido implementar multitud de dispositivos, entre ellos el HC-SR501.
Características del HC-SR501
El módulo IR HC-SR501 es un sensor de bajo coste, pequeño y con una de la tecnología más avanzadas de todos los sensores de movimiento actuales. Con sus dos potenciómetros y el jumper que integra se pueden modificar sus parámetros fácilmente, adaptándolas para todas las necesidades de sensitividad y distancia, e incluso tiempo de activación y respuesta.
Las especificaciones técnicas de este HC-SR501 son:
- Se compone del PIR LH1778 y el controlador BISS0001
- Voltaje de alimentación: 5 a 12v
- Consumo de potencia: <1 mA
- Rango de distancia: 3 a 7 m ajustable
- Ángulo de detección: 110º
- Ajustes: mediante 2 potenciómetros para el rango de detección y tiempo de alarma activa. El jumper agrega capacidad para configurar la salida de la alarma en modo mono-disparo o disparo repetitivo o rettigerable. La salida de la alarma se puede configurar para tiempos de entre 3 segundos y 5 min.
- 1 (en la imagen): girar a la derecha tal cual está en la imagen para configurar desde los 3 segundos a los 5 minutos.
- 2 (en la imagen): girar a la izquierda tal cual está en la imagen para configurar de 3 metros de distancia a los 7 metros máximos.
- 3 (en la imagen): jumper para configurar el disparo. Cuando el jumper está insertado en los dos pines más exteriores vistos en esta imagen, entonces estará configurado como 1 solo disparo. Y si está en los dos de más adentro se activa el modo repetitivo. Es decir, existen 3 pines, si está en el exterior y el del medio es la función mono, y si está en el pin central y el de más adentro de la PCB será el repetitivo.
- Tiempo de inicialización: tras comenzar a alimentar el módulo HC-SR501 debe pasar al menos 1 min hasta que esté operacional.
- Temperatura de trabajo operacional: -15ºC y +70ºC
- Más información: ver pinout y datasheet
Ten en cuenta que estos sensores pasivos son ideales para tus proyectos, solo se pondrán en marcha si detectan una proximidad, mientras tanto se mantendrán en odo pasivo. Y lo puedes conseguir de forma muy sencilla, ya que el HC-SR501 tiene un pinout sensillo:
- Vcc para dar alimentación.
- GND para conectar a tierra.
- Output para la salida del sensor.
En cuanto a los dos trimers que he citado antes, se pueden ajustar como ya dije. Lo que no he explicado son los modos de disparo por el jumper:
- H (re-activación): la salida permanece alta cuando el sensor se dispara, es decir, mantiene la tensión elevada cuando detecta movimiento o proximidad, y lo hace de forma repetidamente. Bajará cuando el sensor está inactivo.
- L (normal): la salida aumenta de de baja-alta cuando se activa. El movimiento continuo da como resultado un pulso alto-bajo repetido.
Aplicaciones
El PIR se basa en la radiación de bajo nivel de tipo infrarrojos. Cuanto más caliente está un objeto más IR emite. En eso se basa este tipo de sensor, ya que las personas, objetos y animales desprenden calor y con él se puede medir para saber si están próximos o no.
Con este simple sistema se pueden implementar desde puertas que se abren de forma automática, escaleras mecánicas que se ponen en funcionamiento al detectar proximidad, alarmas que se activan cuando detectan presencia, luces que alumbran cuando detectan tu presencia, etc. La cantidad de aplicaciones es muy elevada…
Esto combinado con Arduino y otros muchos dispositivos como el módulo de conectividad, se puede enviar alertas por Internet, y extender aún más las capacidades, haciendo que la detección de presencia genere una actividad de forma remota. Me estoy refiriendo al módulo ESP8266-01 o similares…
Otra recomendación es usar un relé para activar elementos de mayor tensión, como puede ser un motor de una puerta, una bombilla, etc.
Integración del HC-SR501 con Arduino
Para integrarlo con tu placa Arduino IDE, puedes ver nuestro curso de programación para obtener más información. No obstante, te muestro un sencillo código de sketch con el que puedes comenzar a ver cómo se utiliza de forma básica, y poco a poco ir modificando el código inicial y agregando elementos a tu proyecto para hacerlo funcionar de forma completa.
El código fuente de ejemplo sería así:
//Ejemplo básico con el HC-SR501 byte sensorpir 8; //Pin del salida del sensor que está como salida. byte led=13; //Puedes conectar un LED en el 13 para ver el efecto visual cuando se activa al detectar presencia void setup() { pinMode(sensorpir, INPUT); //Declaramos pines E/S pinMode(led, OUTPUT); Serial.begin(9600); //Configuramos la velocidad del monitor serial } void loop) { if(digitalRead(sensorpir)== HIGH) { Serial.println("Movimiento detectado"); digitalWrite(led, HIGH); delay(1000); digitalWrite(led , LOW); } }
Sé el primero en comentar