En esta lección vas a aprender cómo usar un detector de movimiento PIR con un ESP32. El ESP32 es el cerebro de este proyecto: se encarga de "escuchar" al sensor PIR y, cuando detecta movimiento, le ordena al LED que se prenda o se apague.
Resumen
El ESP32 es el núcleo de este proyecto. Recibe las señales del sensor PIR y gestiona el estado del LED según la detección de movimiento detectada en el ambiente.
Componentes necesarios
(1) x Elegoo ESP32
(2) x Protoboard de 400 puntos
(1) x Sensor de movimiento PIR HC-SR501
(3) x Cables H-M (Hembra a Macho DuPont)
Introducción al componente
SENSOR PIR: Los sensores PIR son más complejos que otros sensores (como las fotocélulas o los interruptores de inclinación) porque tienen varias variables que afectan su entrada y salida. El sensor tiene dos ranuras hechas de un material especial sensible a los infrarrojos (IR). La lente que ves ayuda a que estas ranuras puedan "ver" a cierta distancia, lo que define la sensibilidad del sensor.
Cuando el sensor está inactivo, ambas ranuras detectan la misma cantidad de IR del ambiente. Pero cuando un cuerpo caliente, como una persona o un animal, pasa cerca, intercepta primero una mitad del sensor, lo que genera un cambio diferencial positivo. Cuando el cuerpo se aleja, ocurre lo contrario y se genera un cambio diferencial negativo. Estos pulsos de cambio son los que el sistema detecta como movimiento.
Descripción funcional del HC-SR501
El SR501 detecta cambios en el infrarrojo y, si los interpreta como movimiento, activará su salida. Lo que se considera movimiento o no depende mayormente de los ajustes que vos hagas en el dispositivo.
Inicialización del dispositivo
Tené en cuenta que el dispositivo necesita casi un minuto para inicializarse. Durante este tiempo, puede mandar señales de detección falsas. El circuito o la lógica del controlador tienen que considerar este período de calentamiento.
Área de detección
El dispositivo detecta movimiento dentro de un cono de 110 grados con un alcance de entre 3 y 7 metros.
Ajuste de rango (Sensibilidad)
Como mencionamos, el rango ajustable va de los 3 a los 7 metros aproximadamente. Podés regularlo girando el potenciómetro correspondiente en el módulo.
Ajuste del tiempo de retraso (Time Delay)
Este ajuste determina cuánto tiempo la salida del sensor se mantendrá en ALTO después de haber detectado movimiento. El rango va desde los 3 segundos hasta los 5 minutos.
Bloqueo de 3 segundos después del retraso - IMPORTANTE
La salida de este dispositivo se va a poner en BAJO (apagado) por unos 3 segundos DESPUÉS de que el tiempo de retraso termine. Durante estos 3 segundos, toda detección de movimiento queda bloqueada.
Por ejemplo: si tenés el modo de disparo único y el retraso en 5 segundos, el PIR detectará movimiento y mantendrá la salida en alto por 5 segundos. Luego, se apagará por 3 segundos (donde no detectará nada) y recién después volverá a estar operativo.
Jumper de selección de modo de disparo
El jumper te permite elegir entre disparo único o repetible. Esto define cuándo empieza a contar el tiempo de retraso:
- DISPARO ÚNICO: El tiempo de retraso empieza apenas se detecta el primer movimiento.
- DISPARO REPETIBLE: Cada nuevo movimiento detectado reinicia la cuenta del tiempo de retraso. O sea, el tiempo empieza a correr desde el último movimiento detectado.
Ejemplos de aplicación: Pista de baile
Imaginá que querés controlar las luces de una pista de baile según dónde estén los bailarines. Entender cómo interactúan el tiempo de retraso y el modo de disparo es clave para que las luces funcionen como vos querés.
Si usás el disparo único, vas a tener baches donde el sensor no detecta nada. Con el disparo repetible, podés lograr que las luces se mantengan prendidas mientras haya gente moviéndose, aunque tené en cuenta que siempre vas a tener esos 3 segundos de bloqueo obligatorios al final del ciclo.
Esquema de conexión y diagrama de cableado
Conectar sensores PIR a un microcontrolador es muy sencillo. El PIR funciona como una salida digital, así que lo único que tenés que hacer es monitorear si el pin cambia a estado alto (detectado) o bajo (no detectado).
Fuente: Adaptado al español desde el wiki oficial Elegoo (licencia CC BY-SA). Revisión técnica por equipo Breva.