Cómo Conectar, Calibrar y Programar el Sensor PIR HC‑SR501 con Raspberry Pi
Contenido
- 1 Funcionamiento del Sensor PIR HC‑SR501
- 1.1 Ajuste de Sensibilidad y Retardo
- 2 Diagrama de Circuito y Conexión
- 3 Código Python para Leer Eventos de Movimiento
- 4 Salida de Ejemplo y Pasos Siguientes
Todos los seres vivos emiten radiación infrarroja, invisible al ojo humano. Un sensor infrarrojo pasivo (PIR), como el HC‑SR501, detecta los sutiles cambios de temperatura causados por cuerpos en movimiento y genera una salida digital. El HC‑SR501 emplea dos elementos piroeléctricos y un circuito diferencial para suprimir falsas alarmas provocadas por variaciones de temperatura ambiental, lo que lo hace ideal para proyectos de seguridad y automatización.
Interfazar el HC‑SR501 con una Raspberry Pi es sencillo porque la salida del sensor es TTL de 3.3 V y puede alimentarse directamente desde el rail de 5 V de la Pi.
El módulo tiene tres pines:
- Vcc – 4.5 V a 20 V, entrada de alimentación
- OUTPUT – 0 V (LOW) / 3.3 V (HIGH)
- GND – tierra
Funcionamiento del Sensor PIR HC‑SR501
La apertura rectangular del sensor alberga dos elementos de detección infrarroja situados en extremos opuestos. Cuando un objeto que emite calor se mueve a través del campo, el tiempo que cada elemento registra un cambio de temperatura difiere. Cuanto mayor sea esta diferencia temporal, más sensible será la unidad. Una lente de Fresnel concentra los rayos infrarrojos sobre los elementos, mientras que un filtro interno bloquea longitudes de onda no IR para mejorar la precisión.
Ajuste de Sensibilidad y Retardo
- Retardo de Detección (0.3 s a 600 s): Gira el potenciómetro en sentido horario para aumentar el retardo, antihorario para disminuirlo.
- Distancia de Detección (3 m a 7 m): Gira el potenciómetro en sentido horario para aumentar el rango, antihorario para reducirlo.
Diagrama de Circuito y Conexión
Conecta el sensor de la siguiente manera:
- Vcc al pin 2 (5 V)
- OUTPUT al pin 26 (GPIO 19)
- GND al pin 6 (tierra)
Verifica los números de pin si usas la numeración BCM; GPIO 19 corresponde al pin 26 en la cabecera de 40 pines.
Código Python para Leer Eventos de Movimiento
Antes de ejecutar el script, instala la librería RPi.GPIO si aún no la tienes:
sudo apt-get install python3-rpi.gpio
Luego crea pir_motion.py con el siguiente contenido:
#!/usr/bin/env python3
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD) # Usar numeración física de pines
pir_pin = 26 # Pin 26 (GPIO 19) conectado a la salida del sensor
GPIO.setup(pir_pin, GPIO.IN)
print("Esperando a que el sensor se estabilice…")
time.sleep(2) # Permitir que el sensor se estabilice
print("Detectando movimiento…")
try:
while True:
if GPIO.input(pir_pin): # La salida del sensor es HIGH
print("¡Movimiento detectado!")
time.sleep(2) # Retardo antirrebote para evitar disparos múltiples
time.sleep(0.1) # Pequeño retardo en el bucle
except KeyboardInterrupt:
print("Saliendo…")
finally:
GPIO.cleanup()
Ejecuta el script con python3 pir_motion.py. La consola mostrará "¡Movimiento detectado!" cada vez que el sensor registre movimiento.
Salida de Ejemplo y Pasos Siguientes
Tras una conexión y ejecución correctas, deberías ver en tu terminal una salida similar a:
Esperando a que el sensor se estabilice…
Detectando movimiento…
¡Movimiento detectado!
¡Movimiento detectado!
...
A partir de aquí puedes ampliar el programa para activar alarmas, capturar imágenes con una cámara, o registrar eventos en un archivo o base de datos. El HC‑SR501 es un componente fiable y de bajo coste para una amplia gama de proyectos de automatización y seguridad.
Lee más sobre uso avanzado del sensor PIR, técnicas de calibración e integración con plataformas de domótica en nuestra página de Uso Avanzado de PIR.
Proceso de manufactura
- Conectar múltiples sensores DS18B20 1‑Wire a Raspberry Pi para monitorización precisa de temperatura
- Monitorización precisa de temperatura en armario de servidores con Raspberry Pi
- Cómo conectar un sensor de temperatura DS1820 One‑Wire a Raspberry Pi usando GPIO
- Integración de datos de sensores en Raspberry Pi: Guía práctica
- Conexión del sensor ultrasónico HC‑SR04 a Raspberry Pi 3 – Guía completa
- Sensor de seguimiento de línea con Raspberry Pi – Detector simple KY‑033 para puerta/línea
- Monitorización segura del hogar con Home Assistant en Raspberry Pi: Movimiento, alarma y captura de vídeo
- Construya un Sensor de Movimiento Infrarrojo DIY para Raspberry Pi – Guía Paso a Paso
- Controle un LED con Sensor PIR de Movimiento en Raspberry Pi
- Construya un Sensor de Humedad de Suelo de Bajo Coste para Riego Inteligente con Raspberry Pi
- Prueba del Sensor de Temperatura DS18B20 en Raspberry Pi