Código Arduino y video para un módulo sensor de movimiento HC-SR505 con relé

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).

HC-SR505 motion sensor

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

FabricanteHC-SR505
Número de piezaHC-SR505
Tensión lógica/E/S3.3V - 20V
Tensión de alimentación5V
Corriente de salida (por canal)20 mA
Corriente pico (por canal)100 mA
Guía de la frecuencia PWMNo aplica
umbrales lógicos de entrada0.3V (bajo) / 2.5V (alto)
Caída de tensión / RDS(encendido)/ saturación0.2V
Límites térmicos+70 °C
PaqueteMódulo
Notas / variantesFactor 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

Arduino wiring for  HC-SR505 motion sensor
Arduino wiring for HC-SR505 motion sensor

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:

Wirig relay module to AC load

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

Imágenes

Wirig relay module to AC load
Wirig relay module to AC load
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
Arduino wiring for  HC-SR505 motion sensor
Arduino wiring for HC-SR505 motion sensor
74-This is the Arduino code for the HC-SR505 motion sensor (small) with relay.
Idioma: C++
¡Copiado!

Cosas que podrías necesitar

Recursos y referencias

Aún no hay recursos.

Archivos📁

Archivo de Fritzing