Cómo configurar un sensor PIR HC-SR501 con Arduino
By Kunkune | Published: 2026-10-13
Category: Guías prácticas
Conecta un módulo PIR HC-SR501 a un Arduino, ajusta su sensibilidad y los potenciómetros de retardo, y depura los disparos falsos con un proceso claro paso a paso.
Respuesta rápida
Conecta el HC-SR501 con VCC a 5V, GND a GND y OUT a un pin digital. Luego cubre la lente y espera 30-60 segundos para el calentamiento antes de confiar en las lecturas. Primero ajusta ambos potenciómetros aproximadamente al centro, sube un sketch simple de digitalRead y solo entonces ajusta la sensibilidad y el retardo mientras observas el monitor serie.
Qué hacen realmente los pines del HC-SR501
El módulo tiene tres pines: VCC, OUT y GND. OUT es una señal digital que se pone en HIGH cuando se detecta movimiento, por lo que cualquier entrada digital de Arduino funciona. El catálogo indica que la tensión de salida es de 3.3V, que es el nivel lógico que el módulo presenta en OUT. Esto importa si planeas alimentar la señal a una entrada lógica de solo 5V o a una placa de 3.3V: un HIGH de 3.3V normalmente se lee correctamente por MCUs de 3.3V como ESP32 o Raspberry Pi, pero un Arduino Uno clásico de 5V trata cualquier valor por encima de aproximadamente 3V como HIGH, por lo que también funciona. Si no estás seguro, mide OUT con un multímetro durante una activación en lugar de suponer.
El HC-SR501 también tiene dos potenciómetros y un puente. Un potenciómetro ajusta la sensibilidad (alcance de detección), el otro ajusta el retardo (cuánto tiempo permanece OUT en HIGH después de que el movimiento cesa). El puente selecciona el modo de activación repetible o no repetible. El módulo necesita un período de calentamiento después del encendido; durante ese tiempo OUT puede estar en HIGH o alternar, así que no juzgues el sensor hasta que se estabilice.
Opciones de alimentación y cableado que evitan ruido
El HC-SR501 funciona mejor con una alimentación estable de 5V. Alimentarlo desde el pin de 5V del Arduino está bien para un solo módulo, pero si añades relés, motores o cables largos, usa una fuente regulada separada de 5V y une las tierras. Una alimentación débil o con ruido es una de las causas más comunes de activaciones aleatorias.
Mantén el cable de señal corto y aléjalo del cableado de motores o de red. Si debes usar un cable largo, retuerce los cables OUT y GND juntos o usa cable blindado. Para una instalación permanente, suelda las conexiones o usa un terminal de tornillo en lugar de cables puente sueltos que puedan moverse.
Un sketch mínimo de Arduino para verificar el movimiento
Comienza con la prueba más simple posible: lee un pin digital e imprime su estado. Conecta OUT al pin 2, luego sube un sketch que configure el pin 2 como INPUT e imprima digitalRead(2) en el monitor serie a 9600 baudios. Agita la mano frente a la lente y observa el cambio de valor. Esto confirma el cableado antes de añadir lógica.
Una vez que la lectura cruda funcione, añade un pequeño antirrebote o una comprobación de cambio de estado para que un solo evento de movimiento no inunde la salida serie. Por ejemplo, imprime solo cuando la lectura cambie de LOW a HIGH. Eso hace que el comportamiento del potenciómetro de retardo sea mucho más fácil de observar.
Ajusta la sensibilidad y el retardo sin perseguir falsas activaciones
Primero gira ambos potenciómetros completamente en sentido antihorario, luego sube la sensibilidad lentamente hasta que el sensor cubra el área que necesitas. Más sensibilidad no es mejor: también capta fuentes de calor, corrientes de aire y mascotas. El potenciómetro de retardo controla cuánto tiempo permanece OUT en HIGH después del último movimiento; ajústalo corto para contar eventos y más largo para tiempos de retención de iluminación o alarma.
Haz un cambio a la vez y espera a que el módulo se estabilice. Si la salida permanece constantemente en HIGH, reduce la sensibilidad y verifica que la lente no esté frente a una ventana, calefactor o cortina en movimiento. Si nunca se activa, confirma el modo del puente y que el período de calentamiento haya pasado.
Configuración paso a paso del HC-SR501 con Arduino
- Paso 1: Identifica la distribución de pines y configura el puente: Con la lente hacia ti, los pines suelen ser VCC, OUT, GND de izquierda a derecha, pero confírmalo con las marcas de tu placa. Configura el puente en modo no repetible (H) para detección simple de encendido/apagado, o en modo repetible (L) si quieres que OUT permanezca en HIGH mientras el movimiento continúa. Punto de control: si las marcas no están claras, prueba con un multímetro antes de conectar la alimentación.
- Paso 2: Conecta la alimentación y la señal: Conecta VCC a 5V, GND a GND y OUT al pin digital 2 de Arduino. Mantén el cable de señal corto y alejado de motores o cableado de red. Si usas una fuente externa, une su tierra con la tierra del Arduino. Error común: olvidar la tierra común cuando se usa una fuente separada de 5V.
- Paso 3: Espera el calentamiento: Enciende el módulo y espera 30-60 segundos sin moverte frente a él. La salida puede alternar durante este período; es normal. No ajustes los potenciómetros hasta que el módulo se haya estabilizado. Punto de control: si OUT sigue inestable después de dos minutos, verifica la estabilidad de la alimentación y el cableado.
- Paso 4: Sube un sketch mínimo de lectura: Configura el pin 2 como INPUT e imprime digitalRead(2) en el monitor serie a 9600 baudios. Agita la mano y confirma que el valor cambia. Añade una comprobación de cambio de estado para que solo se impriman las transiciones. Error común: usar INPUT_PULLUP, que lucha contra la salida del módulo; usa INPUT simple a menos que tu módulo específico requiera otra cosa.
- Paso 5: Ajusta la sensibilidad y el retardo: Gira ambos potenciómetros completamente en sentido antihorario. Aumenta la sensibilidad hasta que el sensor cubra de manera fiable tu área objetivo, luego detente. Configura el retardo al tiempo de retención más corto que se adapte a tu proyecto. Punto de control: si las falsas activaciones persisten, reduce la sensibilidad y elimina fuentes de calor o movimiento de aire del campo de visión.
- Paso 6: Prueba el comportamiento final en el lugar: Monta el sensor a la altura y el ángulo que usarás, luego camina por la zona de detección varias veces. Confirma que OUT se pone en HIGH cuando se espera y cae a LOW después del retardo. Siguiente paso: añade antirrebote o un temporizador de retención en el código si necesitas un conteo de eventos más limpio.
Datos del producto
- Módulo detector de movimiento HC-SR501 PIR ajustable: Módulo detector de movimiento HC-SR501 PIR ajustable, tensión de salida 3.3V. Un HIGH lógico de 3.3V es compatible con placas de 3.3V y aún se lee como HIGH en la mayoría de las entradas de Arduino de 5V, por lo que puedes usarlo con cualquiera sin un cambiador de nivel en configuraciones típicas.
- Convertidor elevador-reductor DC-DC 4-35V a 1.25-25V LM2596S XL6019E1 3A: Convertidor elevador-reductor DC-DC 4-35V a 1.25-25V LM2596S XL6019E1 3A con salida ajustable. Útil cuando tu proyecto funciona con batería o un riel de mayor voltaje y necesitas una alimentación limpia y ajustable de 5V para el módulo PIR en lugar de usar un riel ruidoso de Arduino.

