Código Arduino y video para un módulo sensor de movimiento HC-SR505 con relé
En este tutorial, construiremos un sistema de detección de movimiento usando el sensor de movimiento HC-SR505 y un módulo de relé. Esta configuración te permitirá encender dispositivos como luces o zumbadores cuando se detecte movimiento. El relé actúa como un interruptor para controlar de forma segura dispositivos de alto voltaje. Al final de esta guía tendrás una configuración funcional de sensor de movimiento que puede activar varios aparatos según la detección de movimiento. Para una comprensión más clara, asegúrate de revisar el video asociado (en el video en 0:00).

Hardware explicado
Los componentes principales de este proyecto incluyen el sensor de movimiento HC-SR505, un módulo relé y una placa Arduino. El HC-SR505 es un sensor de infrarrojos pasivo (PIR) que detecta movimiento al percibir cambios en la radiación infrarroja. Funciona midiendo el calor emitido por los objetos en su campo de visión. Cuando se detecta un objeto en movimiento, el sensor envía una señal al Arduino.
El módulo de relé se utiliza para controlar un dispositivo de alto voltaje, como una bombilla. Actúa como un interruptor accionado eléctricamente, permitiendo que el Arduino encienda o apague el dispositivo de forma segura. El relé tiene dos configuraciones principales: normalmente abierto (NO) y normalmente cerrado (NC), que determinan el estado por defecto cuando el relé no está activado.
Detalles de la hoja de datos
| Fabricante | HC-SR505 |
|---|---|
| Número de pieza | HC-SR505 |
| Tensión lógica/E/S | 3.3V - 20V |
| Tensión de alimentación | 5V |
| Corriente de salida (por canal) | 20 mA |
| Corriente pico (por canal) | 100 mA |
| Guía de la frecuencia PWM | No aplica |
| umbrales lógicos de entrada | 0.3V (bajo) / 2.5V (alto) |
| Caída de tensión / RDS(encendido)/ saturación | 0.2V |
| Límites térmicos | +70 °C |
| Paquete | Módulo |
| Notas / variantes | Factor de forma compacto; bajo consumo de energía |
- Garantice una disipación de calor adecuada para cargas de alta corriente.
- Utilice condensadores de desacoplo para una alimentación estable.
- Tenga cuidado con las conexiones de alto voltaje; garantice la seguridad.
- Pruebe el sensor con salidas sencillas antes de conectarlo a los relés.
- Compruebe la orientación del sensor PIR para una detección óptima.
Instrucciones de cableado

Para conectar el sensor de movimiento HC-SR505, primero conecte el pin de alimentación (etiquetado como +) a la salida de 5V de su Arduino. A continuación, conecte el pin de tierra (etiquetado como -) a uno de los pines de tierra del Arduino. El pin de señal (pin central) debe conectarse al pin digital 2 del Arduino.
Para el módulo de relé, conecta el pin VCC a la salida de 5V del Arduino y el pin de tierra al GND del Arduino. El pin de entrada del relé debe conectarse al pin digital 9 del Arduino. Finalmente, conecta el terminal positivo del zumbador al pin digital 8 y su terminal negativo a tierra. Asegúrate de conectar los pines común (COM) y normalmente abiertos (NO) del relé de forma adecuada para controlar tu dispositivo.
Ejemplos de código y guía paso a paso
El código para este proyecto inicializa los pines para el sensor, el zumbador y el relé. Usa eldigitalRead()función para comprobar si hay movimiento y responder en consecuencia. A continuación se muestra un extracto de la función setup:
void setup() {
Serial.begin(9600); // setup Serial Monitor
pinMode(PIR, INPUT_PULLUP); // define pin as Input for sensor
pinMode(BUZZER, OUTPUT); // define pin as OUTPUT for buzzer
pinMode(RELAY, OUTPUT); // define pin as OUTPUT for relay
}
En este fragmento, los pines se configuran en modo de entrada o de salida. ElSerial.begin(9600)inicializa la comunicación serie para depuración.
El bucle principal comprueba si hay movimiento y activa el zumbador y el relé cuando se detecta. Aquí tienes un extracto centrado de la función loop:

void loop() {
int motion = digitalRead(PIR); // read the sensor
if(motion) {
Serial.println("Motion detected");
digitalWrite(BUZZER, HIGH); // turn the buzzer ON
digitalWrite(RELAY, LOW); // turn the relay ON
} else {
Serial.println("===nothing moves");
digitalWrite(BUZZER, LOW); // keep the buzzer OFF
digitalWrite(RELAY, HIGH); // turn the relay OFF
}
delay(500);
}
Este fragmento lee el estado del sensor PIR y activa o desactiva el zumbador y el relé según el movimiento detectado. La pausa de 500 milisegundos asegura que el bucle compruebe el sensor en un intervalo razonable.
Demostración / Qué esperar
Cuando se detecta movimiento, la luz conectada al relé se encenderá y el zumbador sonará. Si no se detecta movimiento, el relé apagará la luz y el zumbador permanecerá en silencio. Tenga en cuenta que el HC-SR505 tiene un retardo integrado que mantiene la salida activa durante un corto período de tiempo después de detectar movimiento (hasta 8 segundos), que no se puede ajustar (en el video a las 5:30).
Marcas de tiempo del vídeo
- 00:00- Introducción al proyecto
- 01:30- Explicación de los componentes
- 03:15- Instrucciones de cableado
- 05:30- Recorrido del código
- 07:00- Demostración de la configuración
Cosas que podrías necesitar
-
Amazonas
-
Amazonas
-
AliExpressCompra módulo de relé de 1 2 4 6 8 canales de 5v 12v.s.click.aliexpress.com
Recursos y referencias
Aún no hay recursos.
Archivos📁
Archivo de Fritzing
-
Módulo de Sensor de Cuerpo HC-SR501
HC-SR501 Body Sensor Module.fzpz0.01 MB