Sensor de movimiento PIR con Arduino: cableado y falsos positivos
Privacidad y medición
Esta tienda usa medición anónima para entender cómo se navega su catálogo. GA4 y Clarity requieren tu permiso; Meta y TikTok solo se activan si aceptas publicidad.
Cargando contenido editorial
sensores-modulos
Sensor de movimiento PIR con Arduino: cableado y falsos positivos
Cómo conectar un sensor PIR y, sobre todo, por qué tu alarma se dispara sola de madrugada y cómo evitar que pase.
12 min de lectura
A las 3 a.m. la alarma del pasillo suena sola. No hay ladrones: hay un ventilador, una cortina que se mueve con el aire acondicionado y un PIR mal apuntado al ventanal que “ve” el auto que pasa en la calle. El LED del módulo parpadea sin parar, y el Arduino dispara el relé porque el sketch solo dice if (digitalRead(pir) == HIGH).
El sensor PIR detecta el calor de una persona que se mueve dentro de su cono de detección
Esa es la vida real del sensor PIR (Passive Infrared) en casa y taller. No mide distancia en centímetros como un ultrasónico; detecta cambios de radiación infrarroja térmica en su campo de visión — típicamente cuerpos a temperatura distinta del fondo. Bien usado es barato, bajo consumo y suficiente para luces de pasillo, alarmas de escritorio y automatismos de presencia. Mal ubicado o mal alimentado, se llena de alarmas falsas y termina desconectado en un cajón.
Esta guía es de aficionado: pinout, potenciómetros de tiempo y sensibilidad, ventanas de rearme, montaje, y cuándo conviene tirar la toalla y pasar a radar tipo . Para la comparativa profunda PIR vs radar, el hermano natural es .
Compartir este artículo
Escrito por
Tecnoelite Colombia
Componentes electrónicos y semiconductores en Colombia
Componentes electrónicos, semiconductores, Arduino, medición, audio, herramientas y repuestos con envíos a todo Colombia.
Tres usos del detector de movimiento: pasillo, tienda y clóset, para encender la luz solo cuando hace falta
PIR = Passive Infrared. “Pasivo” significa que no ilumina la escena con un IR activo propio (como muchos sensores de proximidad IR); mira el IR térmico del entorno a través de una lente Fresnel de plástico que parte el campo en zonas.
Cuando un cuerpo caliente (una persona) cruza de una zona a otra, el elemento piroeléctrico ve un cambio y el circuito del módulo genera un pulso digital. Por eso:
Un objeto estático a la misma temperatura del fondo casi no dispara.
Una persona quieta mucho rato puede “desaparecer” del radar mental del sensor (no hay cambio).
Un radiador que enciende, un auto al sol por la ventana o una mascota grande sí pueden disparar.
No te da:
Distancia métrica confiable (no es HC-SR04).
Identidad de quién pasó.
Visión a través de paredes sólidas (el IR térmico de onda larga no “atraviesa” muros como el radar de microondas en ciertos montajes).
Sí te da:
Señal digital de “hubo movimiento térmico en el cono”.
Consumo bajo en reposo (módulos típicos de 5 V para Arduino).
Facilidad de cableado de tres pines en la mayoría de clones HC-SR501 / AM312 y similares.
2. Qué necesitas y qué variantes de módulo vas a encontrar
Cómo evitar falsos disparos del PIR: no apuntarlo al sol ni a una corriente de aire, sí al paso de personas
Pieza
Rol
Nota
Módulo PIR (HC-SR501 o similar)
Detección
Potes grandes: TIME + SENS; jumper retrigger a veces
Arduino Nano/Uno/ESP (según proyecto)
Lógica
5 V o 3,3 V: mira el Vout del módulo
Jumpers + protoboard
Cableado
Cables cortos; GND común
Fuente estable 5 V
Alimentación
Mismo consejo que siempre: no cuelgues todo del USB con reles chupando corriente
Carga de salida (LED, buzzer, relé)
Actuación
Relé con diodo/rueda libre y opto si es AC
Hay módulos mini (AM312 y primos) con menos ajuste manual y tiempos fijos de fábrica. Si tu placa no tiene potes, no busques “el potenciómetro de ajuste escondido”: el tiempo lo resuelves en software.
Si alimentas un banco con batería de 12 V y necesitas 5 V limpios para Arduino + PIR + buzzer, un LM2596 step-down medido antes de conectar la carga evita reinicios raros. El boost hermano es el MT3608: misma disciplina de multímetro; ver MT3608 sin quemarlo.
3. Pinout y cableado típico (HC-SR501 y familia)
La mayoría de módulos de tres pines etiquetan:
Pin
Señal
A Arduino
Comentario
VCC
Alimentación
5V (o el rango del módulo; muchos aceptan ~4,5–20 V — verifica el tuyo)
No asumas 12 V si la serigrafía dice 5 V
OUT
Salida digital
Pin INPUT (ej. D2)
HIGH = movimiento (en la mayoría de clones “activos en alto”)
GND
Tierra
GND
Imprescindible
Antes de confiar en el sketch: mide con multímetro en DC entre OUT y GND en reposo y al agitar la mano frente al sensor (a ~1–2 m). Si OUT no se mueve, el problema no es el if de Arduino.
Polaridad y “activo en alto / bajo”
El grueso de módulos hobby tira HIGH al detectar. Existen variantes invertidas. Si tu lógica está al revés, no “arregles” con delays locos: confirma el nivel real.
Pull-up / pull-down
OUT del PIR suele ser salida push-pull o con driver del propio módulo; en la práctica conectas INPUT normal. Si usas un pin con INPUT_PULLUP y el módulo es open-collector raro, la lectura se invierte — otra razón para medir una vez.
4. Los dos potes: TIME y SENS (y el jumper que nadie lee)
En el HC-SR501 clásico encuentras:
Potenciómetro TIME (Tx)
Ajusta cuánto tiempo permanece la salida en activo después de una detección (orden de unos pocos segundos a ~200–300 s en muchos clones; valores típicos de ficha, varían por fabricante).
TIME al mínimo: pulsos cortos → bien para contar eventos o despertar un MCU.
TIME al máximo: la salida se queda HIGH un rato → bien para luz de pasillo sin flícker.
Potenciómetro SENS / Sx
Ajusta sensibilidad / alcance efectivo. Al máximo “ve” más lejos y también más basura (corrientes de aire, mascotas lejanas, reflejos térmicos).
Jumper de retrigger (H / L o single / repeat)
Retrigger (a menudo “H”): mientras haya movimiento, el tiempo se reinicia; la salida puede quedarse activa si alguien camina sin parar.
Single (a menudo “L”): un disparo, espera el tiempo, y listo; hay que “soltar” antes del siguiente.
Si tu alarma se queda pegada en HIGH, mira TIME + jumper antes de reescribir el firmware.
Ajuste
Efecto buscado
Efecto colateral
SENS alto
Más metros
Más falsos
SENS bajo
Menos falsos
Zona muerta más grande
TIME alto
Luz estable
“Memoria” larga tras el paso
TIME bajo
Eventos nítidos
Parpadeo si actuas un relé de luz sin soft debounce
Retrigger H
Seguimiento de presencia caminando
OUT casi siempre alto en pasillo transitado
Single L
Un pulso por evento
Puede “tragarse” movimiento continuo
5. Código Arduino: leer, filtrar y no mentirte con el serial
cpp
// PIR HC-SR501 (activo en HIGH típico) → LED en D13// ajusta pines. En ESP32 usa GPIO cómodos y nivel compatible.const int PIN_PIR = 2;const int PIN_LED = 13;// Tiempo mínimo entre “eventos lógicos” para no spamear serial/reléconst unsigned long DEBOUNCE_MS = 200;bool ultimoEstado = false;unsigned long ultimoCambioMs = 0;void setup() { pinMode(PIN_PIR, INPUT); pinMode(PIN_LED, OUTPUT); Serial.begin(115200); // Muchos PIR necesitan ~30–60 s de estabilización al energizar Serial.println(F("Estabilizando PIR ~45 s...")); delay(45000); Serial.println(F("Listo"));}void loop() { bool movimiento = digitalRead(PIN_PIR) == HIGH; unsigned long ahora = millis(); if (movimiento != ultimoEstado && (ahora - ultimoCambioMs) > DEBOUNCE_MS) { ultimoEstado = movimiento; ultimoCambioMs = ahora; if (movimiento) { Serial.println(F("Movimiento")); digitalWrite(PIN_LED, HIGH); } else { Serial.println(F("Quietud / fin de ventana TIME")); digitalWrite(PIN_LED, LOW); } }}
Sobre los 30–60 s de arranque: no es superstición de foro. El elemento y la electrónica se estabilizan; si programas la alarma en los primeros 10 s, vas a “detectar fantasmas” de calibración.
No uses solo el flanco sin mirar el pote TIME: si TIME es 30 s, tu else de “no hay movimiento” no significa que la persona se fue hace 1 s; significa que la ventana del módulo se cerró.
Para una alarma con sirena, suma:
Estado armado/desarmado por botón o app.
Retardo de salida (30 s para que salgas de casa).
Retardo de entrada (15 s para desarmar).
Eso es lógica de producto; el PIR solo aporta el bit de presencia.
6. Falsos positivos: causas reales y mitigaciones
1) Ventanas y sol
Cambios rápidos de temperatura en el vidrio o un auto que refleja sol entran al lóbulo. Mitigación: apunta al interior, no al ventanal; baja SENS; usa cortina opaca en la zona del sensor.
2) HVAC y ventiladores
Aire caliente/frío cruzando el cono = “movimiento”. Mitigación: no montes el PIR frente a la rejilla del aire; sube el módulo al techo mirando el área de paso, no el flujo.
3) Mascotas
Un labrador a 37 °C es un humano pequeño para el PIR. Hay lentes “pet immune” en alarmas comerciales; en hobby, altura + ángulo + SENS y aceptar el trade-off.
4) Fuentes conmutadas ruidosas y GND compartido con motores
El módulo se resetea o OUT hace glitches. Mitigación: desacople, GND corto, separar potencia de motores (misma tierra, distintas ramas).
5) Vibración del propio gabinete
Golpear la caja mueve la lente respecto al fondo térmico. Fija el módulo.
6) Multi-sensor sin lógica
Dos PIR en la misma habitación no “votan” solos: si cableas OR cableado a un relé, cualquier falso de uno arma el circo. En software puedes exigir AND temporal (los dos en 2 s) para zonas críticas.
7) Esperar detección a través de puerta cerrada gruesa
No es el trabajo del PIR. Ahí entra la conversación con radar o contactos magnéticos.
7. Montaje: altura, ángulo y “zona de paso”
Altura típica de pared: ~2,0–2,4 m mirando hacia abajo al corredor (valores de práctica de instalador, no ley física).
Evitar: mirar directo a una ventana grande o a una estufa.
Pasillo estrecho: el PIR de techo o esquina cubre mejor que uno a 50 cm del suelo.
Gabinete 3D: deja la lente fuera; el PLA opaco al visible no es magia IR — el plástico de la lente Fresnel es parte del diseño óptico; no la tapes con otra carcasa gruesa sin probar.
Prueba de aceptación de aficionado (15 minutos):
Energiza y espera estabilización.
Sal del cono 1 minuto.
Entra caminando normal: debe disparar.
Quédate quieto 2 minutos: según TIME, OUT debería bajar.
Abre/cierra la ventana del cuarto: si dispara, reorienta o baja SENS.
8. Cuándo el RCWL gana (y cuándo no)
El RCWL-0516 es un sensor de microondas (movimiento Doppler barato). Ventajas típicas:
Puede detectar movimiento detrás de plásticos finos o dentro de un gabinete no metálico.
Menos dependiente del contraste térmico sol/sombra.
Útil en baños con vapor donde el PIR se emborracha.
Desventajas típicas:
Falsos por ventiladores, tuberías, interferencia RF y movimiento “no humano”.
Atraviesa más de lo que quieres: a veces detecta el pasillo del vecino si la pared es liviana.
No es un medidor de distancia.
Regla de decisión rápida:
Escenario
prefiere
Luz de pasillo interior seco
PIR bien apuntado
Detección dentro de caja plástica
RCWL
Exterior con sol y sombras
evalúa RCWL o PIR de seguridad serio; hobby puro sufre
Distancia en cm a un obstáculo
Ultrasónico / ToF, no PIR
“¿Hay alguien?” con mascota grande
Difícil en hobby; commercial pet-immune o fusión de sensores
Relé 5 V: OUT del PIR → (opcionalmente) pin del MCU → lógica → bobina del relé. No cargues la bobina desde el pin del Arduino sin transistor/MOSFET o módulo relé con driver. Si vas a conmutar cargas serias desde GPIO, el MOSFET de lógica es el camino correcto (ver pilar de qué es un MOSFET cuando lo tengas en el blog, o el de transistores NPN/PNP para drivers bipolares clásicos).
ESP32 + WiFi: el PIR sigue siendo un GPIO. Cuidado con deep sleep: algunos diseños usan el PIR para despertar el chip; necesitas que OUT sea compatible en nivel y que el consumo del módulo no se coma la batería.
No alimentes el relé de 12 V y el ESP del mismo nodo sin diseñar caídas: un buck LM2596 a 5 V para lógica y otra rama para la bobina es patrón de banco limpio.
10. Proyecto mínimo: luz de pasillo con retardo propio
Si el pote TIME del módulo es tosco o el mini-PIR no trae ajuste, puedes ignorar la cola del módulo y manejar el tiempo en software: detectas el flanco de subida y dejas el relé/LED un número fijo de milisegundos.
cpp
const int PIN_PIR = 2;const int PIN_RELE = 8; // módulo relé activo LOW o HIGH según el tuyoconst unsigned long LUZ_MS = 45000; // 45 s de luz tras el movimientounsigned long apagarEn = 0;bool luzOn = false;void setup() { pinMode(PIN_PIR, INPUT); pinMode(PIN_RELE, OUTPUT); digitalWrite(PIN_RELE, HIGH); // asume relé activo en LOW; invierte si es al revés delay(45000); // estabilización}void loop() { if (digitalRead(PIN_PIR) == HIGH) { apagarEn = millis() + LUZ_MS; if (!luzOn) { luzOn = true; digitalWrite(PIN_RELE, LOW); // enciende (activo LOW típico) } } if (luzOn && (long)(millis() - apagarEn) >= 0) { luzOn = false; digitalWrite(PIN_RELE, HIGH); }}
Ajusta la polaridad del relé a tu módulo (muchos son activos en LOW). No conmutes 120 V AC si no sabes aislamiento, carcasa y normas: empieza con una lámpara de 12 V o un LED grueso.
11. Checklist de puesta en marcha
VCC y GND correctos; OUT medido con multímetro.
Espera de estabilización al power-up.
SENS al 50 % para empezar; sube solo si hace falta alcance.
TIME acorde al uso (luz vs evento).
Jumper retrigger entendido.
Orientación lejos de ventanas y rejillas de aire.
Sketch con debounce y serial honesto.
Si tras todo sigue loco en gabinete cerrado: prueba RCWL.
Preguntas frecuentes
¿El PIR funciona en la oscuridad total?
Sí. No necesita luz visible; mira IR térmico. De hecho es de los mejores amigos de la automatización nocturna. Lo que lo engaña no es la oscuridad: son los cambios térmicos y el mal montaje.
¿Puedo usar un solo pin digital o necesito ADC?
Salida típica digital. No hace falta analogRead salvo que estes debuggeando algo raro con un módulo no estándar.
¿Por qué se queda el LED encendido un minuto si ya me fui?
Porque el pote TIME (o el tiempo fijo del mini-PIR) mantiene OUT activo. No es un bug del Arduino. Baja TIME o implementa tu propia lógica de “luz por 30 s” ignorando la cola del módulo (leyendo solo flancos).
¿PIR o ultrasónico para alarma de habitación?
PIR para presencia humana por calor en movimiento. Ultrasónico para distancia a objetos. Una alarma de “alguien entró” casi siempre es PIR/radar/contacto magnético, no HC-SR04 mirando la puerta.
¿Sirve a la intemperie?
Un módulo desnudo de protoboard no es IP65. Condensación y sol matan lentes y PCB. Para exterior necesitas carcasa adecuada y, a menudo, sensores pensados para CCTV/alarma. El hobby en el alero de la casa sin sellar es lotería.
¿Cuántos metros de alcance tiene?
Clones HC-SR501 publicitan del orden de hasta ~5–7 m en condiciones ideales (típico de marketing de módulo). En un living real con SENS medio, pensa 3–5 m de zona útil y valida caminando. No diseñes una nave industrial con un HC-SR501 de $ que compraste en tira.
El PIR es un sensor de cambio térmico con lente, no un vigilante omnisciente. ajusta TIME y SENS con criterio, dale su minuto de estabilización, apuntalo al pasillo y no a la ventana, y cuando el caso pida ver a través de plástico o vapor, pasa al RCWL-0516 con los ojos abiertos: cada tecnología miente de forma distinta, y el buen aficionado elige qué mentira puede tolerar.