Sensor de Movimiento Arduino Hc-sr501
$2,990
24 disponibles
Descripción
Instalé un HC-SR501 en el pasillo de mi casa para encender una luz automáticamente. Funcionó perfecto durante diez minutos, pero luego la luz comenzó a parpadear cada vez que el perro dormía en la sala. El problema no era el código: el jumper del sensor estaba en modo H (retriggerable) y el potenciómetro de tiempo estaba al máximo, manteniendo la salida activa por más de tres minutos tras cada detección.
En Chile, el HC-SR501 es el sensor PIR más vendido para proyectos con Arduino por su precio bajo y su facilidad de conexión. Sin embargo, la mayoría de los tutoriales omiten el jumper de modo, el tiempo de calentamiento obligatorio y la diferencia entre sensibilidad y tiempo de retardo.
Este artículo explica cómo funciona realmente el HC-SR501, para qué sirven sus dos potenciómetros y su jumper de tres pines, y entrega el código funcional para que no pases horas debuggeando un sensor que en realidad está bien configurado.

¿Qué es el HC-SR501 y cómo detecta movimiento?
El HC-SR501 es un módulo detector de movimiento basado en un sensor piroeléctrico infrarrojo (PIR) y el circuito integrado BISS0001. No detecta movimiento en el sentido cinematográfico: detecta cambios en la radiación infrarroja dentro de su campo de visión.
Cuando una persona (o animal de sangre caliente) se mueve frente al sensor, su cuerpo emite radiación IR de longitud de onda ~10 µm. El sensor PIR divide su campo de visión en dos zonas mediante una lente de Fresnel. Si el objeto caliente pasa de una zona a otra, el circuito BISS0001 detecta la diferencia de voltaje y activa la salida.
Eso explica por qué un objeto estático, por más caliente que sea, no genera alarma. También explica por qué una fuente de calor que se mueve lentamente (como una estufa eléctrica con ventilador oscilante) puede generar falsos positivos.
Especificaciones técnicas reales
Estos valores provienen del datasheet del BISS0001 y de las especificaciones típicas de los módulos HC-SR501 comercializados en tiendas de electrónica:
| Parámetro | Valor | Nota |
|---|---|---|
| Voltaje de alimentación | 4,5 V – 20 V DC | El regulador onboard AMS1117-3.3 baja a 3,3 V para el BISS0001 |
| Consumo en reposo | ~50 µA | Ideal para proyectos con batería |
| Consumo activo | ~65 µA | Diferencia mínima entre reposo y detección |
| Salida digital (OUT) | 3,3 V HIGH / 0 V LOW | Compatible con entradas digitales de Arduino (5 V tolerante) |
| Corriente de salida máxima | ~100 µA | No puede alimentar directamente un relé; usar transistor o módulo relé |
| Ángulo de detección | ~110° – 120° | Depende de la lente de Fresnel incluida |
| Distancia de detección | ~3 m – 7 m (ajustable) | Potenciómetro SENSITIVITY; temperatura ambiente afecta el rango |
| Tiempo de retardo (delay) | ~3 s – 5 min (ajustable) | Potenciómetro TIME DELAY; mínimo ~3 s, máximo ~300 s |
| Tiempo de calentamiento | ~30 – 60 segundos | Obligatorio tras encendido; la salida oscila erráticamente antes de estabilizar |
| Temperatura de operación | -15 °C a +70 °C | Por debajo de 0 °C la sensibilidad disminuye notablemente |
¿Buscas sensores HC-SR501, módulos relé o Arduino Nano con despacho a todo Chile?
Los dos potenciómetros y el jumper: lo que nadie te explica
El HC-SR501 tiene dos trimmers azules y un jumper de tres pines que determinan su comportamiento. Entenderlos es la diferencia entre un sensor que funciona a la primera y uno que parece poseído.
Potenciómetro TIME DELAY (tiempo de retardo)
Este ajuste controla cuánto tiempo permanece la salida OUT en HIGH después de detectar movimiento. Girado completamente en sentido antihorario (~3 segundos) es ideal para contadores de personas o pulsos rápidos. Girado al máximo (~5 minutos) es útil para mantener una luz encendida sin que se apague entre movimientos sucesivos.
En el modo H (retriggerable), si hay movimiento continuo, el temporizador se reinicia cada vez. Eso significa que con el delay en 5 minutos y movimiento constante, la salida puede permanecer HIGH indefinidamente.
Potenciómetro SENSITIVITY (sensibilidad / distancia)
Este ajuste controla la ganancia del amplificador interno del BISS0001. Girado al mínimo, el sensor detecta movimiento a ~3 metros. Girado al máximo, alcanza ~7 metros en condiciones ideales.
La distancia real depende de la temperatura ambiente. En verano, con el ambiente a 28 °C, el contraste térmico entre el cuerpo humano y el entorno es menor, por lo que la distancia efectiva se reduce. En invierno, con el ambiente a 15 °C, el mismo ajuste detecta a mayor distancia.
Jumper de modo L / H
Este es el ajuste más ignorado y el que genera más confusiones. El jumper tiene tres pines: el central es común, y los laterales seleccionan el modo:
| Modo | Comportamiento | Aplicación ideal |
|---|---|---|
| H (Retriggerable) | La salida se mantiene HIGH mientras haya movimiento. Cada nuevo movimiento reinicia el temporizador. | Luces automáticas, alarmas de presencia, ventiladores |
| L (Non-retriggerable) | La salida se pone HIGH por el tiempo del delay y luego baja a LOW, ignorando movimiento durante ese período. | Contadores de personas, pulsos de activación única, fotografía con disparo remoto |
Si tu sensor parece “pegado” en HIGH durante minutos, verifica que no esté en modo H con el delay al máximo. Si necesitas contar cuántas personas pasan por una puerta, usa modo L con delay de ~3 segundos para evitar que una misma persona genere múltiples pulsos.
Cuánto cuesta en Chile (2026)
| Componente | Especificación | Precio aprox. CLP |
|---|---|---|
| Sensor PIR HC-SR501 | Con lente de Fresnel y jumper | $4.000 – $7.000 |
| Arduino Nano | CH340, con cable USB | $12.000 – $18.000 |
| Módulo relé 5 V | 1 canal, optoacoplado | $3.000 – $5.000 |
| LED + resistencia 220 Ω | Indicador visual de detección | $300 – $800 |
| Protoboard + cables Dupont | 400 puntos, cables macho-macho | $3.000 – $6.000 |
| Fuente 5 V 1 A | Cargador USB de pared | $5.000 – $10.000 |
Total estimado proyecto básico: entre $27.000 y $47.000 CLP con componentes nuevos en tienda nacional. Si importas por AliExpress, el costo baja a aproximadamente $16.000–$26.000.
Esquema de conexión con Arduino
La conexión es directa porque el HC-SR501 incluye regulador de voltaje y su salida de 3,3 V es compatible con las entradas digitales del Arduino:
HC-SR501 → Arduino Nano/Uno
VCC → 5 V
GND → GND
OUT → Pin digital 2 (o cualquier pin digital)
LED indicador → Arduino
Ánodo (pata larga) → Pin digital 13 con resistencia 220 Ω en serie
Cátodo (pata corta) → GND
Módulo relé → Arduino (opcional)
VCC → 5 V
GND → GND
IN → Pin digital 7
El HC-SR501 no puede alimentar directamente un relé porque su salida OUT entrega solo ~100 µA. El BISS0001 está diseñado para señal lógica, no para conmutación de carga. Si quieres encender una lámpara de 220 V, usa un módulo relé externo activado por el pin del Arduino.

Código Arduino funcional
El código debe hacer tres cosas: esperar el tiempo de calentamiento, leer el pin digital y activar una salida. Este ejemplo incluye un LED indicador y un módulo relé opcional:
const int pirPin = 2;
const int ledPin = 13;
const int relayPin = 7;
void setup() {
pinMode(pirPin, INPUT);
pinMode(ledPin, OUTPUT);
pinMode(relayPin, OUTPUT);
Serial.begin(9600);
Serial.println(F("HC-SR501 iniciado"));
Serial.println(F("Esperando calentamiento de 60 segundos..."));
delay(60000);
Serial.println(F("Listo para detectar movimiento"));
}
void loop() {
int estado = digitalRead(pirPin);
if (estado == HIGH) {
digitalWrite(ledPin, HIGH);
digitalWrite(relayPin, HIGH);
Serial.println(F("Movimiento detectado"));
} else {
digitalWrite(ledPin, LOW);
digitalWrite(relayPin, LOW);
}
}
El delay(60000) en el setup() es obligatorio. Durante el primer minuto tras encender, el sensor PIR está estabilizando sus elementos piroeléctricos. Si omites esta espera, verás pulsos erráticos en la salida que no corresponden a movimiento real.
En el modo H (retriggerable), el sensor mantiene HIGH mientras detecte movimiento. En modo L (non-retriggerable), el sensor pone HIGH por el tiempo ajustado en el potenciómetro y luego baja, ignorando nuevos movimientos durante ese período.
Errores que hacen el sensor inestable
1. Omitir el tiempo de calentamiento de 60 segundos: Durante los primeros 30–60 segundos tras encender, la salida del HC-SR501 oscila erráticamente. Si cargas el código y esperas resultados inmediatos, pensarás que el sensor está defectuoso. Programa siempre una espera inicial o un LED de “calentando”.
2. Confundir los potenciómetros: El TIME DELAY controla cuánto dura la señal; el SENSITIVITY controla la distancia. Muchos usuarios giran el potenciómetro equivocado y no entienden por qué el sensor sigue activo por 5 minutos o por qué no detecta a 5 metros.
3. Usar modo H para contar personas: En modo retriggerable, una persona que camina lentamente frente al sensor genera un único pulso largo en lugar de múltiples pulsos. Si tu objetivo es contar eventos, usa modo L con delay corto (~3 segundos).
4. Instalar el sensor mirando hacia una ventana con sol directo: Los cambios de luz solar no son IR de 10 µm, pero una ventana que calienta el aire puede crear corrientes de convección que el sensor interpreta como movimiento. Evita instalar el sensor donde haya cambios bruscos de temperatura del aire.
5. Intentar alimentar un relé directamente desde OUT: La salida del HC-SR501 entrega ~100 µA. Un relé de 5 V necesita ~70 mA para activarse. Conectar directamente da como resultado que el relé no hace clic o el BISS0001 se sobrecalienta. Usa siempre un transistor o un módulo relé con optoacoplador.
6. No considerar la temperatura ambiente: En verano, con ambientes a 28–30 °C, el contraste térmico entre el cuerpo humano y el entorno disminuye. El mismo ajuste de sensibilidad que detectaba a 6 metros en invierno, en verano detecta a 3 metros. Recalibrar el potenciómetro según la estación es necesario.
¿Tu HC-SR501 detecta “fantasmas” cada pocos minutos? Verifica que no esté apuntando a una fuente de calor (estufa, computadora, ventana con sol) y que hayas esperado los 60 segundos de calentamiento inicial.
Consejos para mejorar la detección
Orienta el sensor hacia donde el movimiento sea transversal. El HC-SR501 detecta mejor el movimiento que cruza su campo de visión de izquierda a derecha (o viceversa) que el movimiento que se acerca o aleja en línea recta. Eso se debe a que la lente de Fresnel está diseñada para crear zonas IR intercaladas horizontalmente.
Usa una caja impresa o de PVC para proteger el sensor. El aire en movimiento cerca del sensor puede generar falsos positivos por convección. Una caja con ventana frontal de plástico negro (que deja pasar IR) reduce las corrientes de aire directas sobre el elemento piroeléctrico.
Implementa un debounce por software si usas modo L. Aunque el modo L evita retriggers, los contactos mecánicos internos del BISS0001 pueden generar rebotes eléctricos de 10–50 ms. Un delay(100) después de detectar HIGH o un contador de tiempo evita lecturas duplicadas.
Para proyectos con batería, aprovecha el bajo consumo. El HC-SR501 consume ~50 µA en reposo. Si conectas la salida OUT a un pin de interrupción del Arduino y pones el microcontrolador en sleep, puedes hacer un sistema de vigilancia que dure meses con una batería Li-Ion 18650.

Preguntas frecuentes
¿Por qué mi HC-SR501 detecta movimiento sin que haya nadie?
Las causas más comunes son: no esperar los 60 segundos de calentamiento inicial, sensor apuntando a una fuente de calor (estufa, computadora, ventana con sol directo), cambios de temperatura del aire por convección, o el potenciómetro de sensibilidad al máximo en un ambiente cálido. También verifica que el jumper no esté en una posición intermedia entre L y H.
¿Cuál es la diferencia entre modo H y modo L?
En modo H (retriggerable), la salida se mantiene HIGH mientras haya movimiento continuo, reiniciando el temporizador con cada detección. En modo L (non-retriggerable), la salida se activa una sola vez por el tiempo del delay y luego baja, ignorando movimiento nuevo durante ese período. Usa H para luces automáticas y L para contadores de personas.
¿Puedo alimentar el HC-SR501 con 3,3 V?
No es recomendable. El datasheet del BISS0001 especifica un mínimo de 4,5 V. Aunque algunos módulos funcionan marginalmente a 3,3 V, la distancia de detección se reduce drásticamente y la salida puede ser inestable. Usa siempre 5 V para resultados predecibles.
¿El HC-SR501 detecta animales?
Sí, si emiten suficiente radiación infrarroja y se mueven transversalmente frente al sensor. Detecta perros, gatos y otros mamíferos de sangre caliente. No detecta reptiles ni objetos inanimados a temperatura ambiente. Si tienes mascotas y quieres evitar falsos positivos, instala el sensor a mayor altura (1,5–2 metros) apuntando hacia abajo, fuera del alcance de animales pequeños.
¿Cómo reduzco el tiempo de retardo al mínimo?
Gira el potenciómetro TIME DELAY completamente en sentido antihorario. El tiempo mínimo real es de aproximadamente 3 segundos en la mayoría de los módulos chinos; no puedes bajar de eso sin modificar el capacitor de temporización en la PCB. Si necesitas pulsos más cortos, usa modo L y lee la salida con el Arduino, ignorando lecturas duplicadas por software.
¿Dónde compro el HC-SR501 en Chile?
En tiendas especializadas como Ukrabot puedes conseguir sensores HC-SR501, módulos relé, Arduino Nano y kits completos de domótica con despacho a regiones y factura. Los módulos importados por AliExpress cuestan ~$2.500–$4.000 CLP, pero el envío demora 2–4 semanas y no incluye soporte técnico.
Conclusión
El HC-SR501 es el sensor PIR más accesible para proyectos con Arduino en Chile. Su precio de ~$5.000 CLP, su consumo de ~50 µA en reposo y su conexión de tres pines lo hacen ideal para alarmas caseras, luces automáticas y contadores de eventos.
Su debilidad es la configuración. Los dos potenciómetros y el jumper de tres pines determinan si el sensor funciona como una alarma confiable o como un generador de falsos positivos. Entender la diferencia entre modo H (retriggerable) y modo L (non-retriggerable) es la clave.
Para un proyecto funcional, destina tiempo a la calibración: espera los 60 segundos de calentamiento, ajusta la sensibilidad según la estación del año y usa un módulo relé externo en lugar de intentar alimentar la carga directamente desde la salida OUT.
El presupuesto total para un detector de movimiento con Arduino, relé e indicador LED ronda los $30.000 CLP en tienda nacional. Eso te da un sistema que puede encender luces, activar alarmas o contar personas durante años con un consumo eléctrico despreciable.
¿Armando tu detector de movimiento con Arduino?
Tenemos sensores HC-SR501, módulos relé, Arduino Nano y kits de domótica con despacho a todo Chile.
También te puede interesar:
Módulo GPS NEO-6M con Arduino: seguimiento en tiempo real


