Este tutorial es parte de: Control de relé con Arduino
Este es un grupo de videos relacionados con el relevo. Los enlaces a otros videos se encuentran debajo de este artículo.
Código y vídeo de Arduino para un relé de 5V de doble canal
En este tutorial aprenderemos a controlar cargas de CA y CC utilizando un relé de doble canal de 5V con un Arduino. El relé te permite conmutar entre dos cargas diferentes, como una bombilla de CA y un motor de CC, proporcionando flexibilidad para diversas aplicaciones. Al final de esta guía, podrás configurar tu propio sistema con relé y controlarlo mediante un sencillo código de Arduino.

A lo largo del proceso, cubriremos los componentes necesarios, las instrucciones de cableado y un recorrido por el código de Arduino utilizado para controlar el relé. Este proyecto es perfecto para principiantes que quieran explorar el mundo de la electrónica y la automatización. Para una guía visual, asegúrate de ver el video asociado (a las 00:00).
Hardware explicado
El componente principal de este proyecto es el relé de doble canal de 5V. Este relé consta de dos interruptores independientes que pueden controlar cargas separadas. Cada relé tiene tres contactos: Normalmente Cerrado (NC), Normalmente Abierto (NO) y Común (COM). Cuando el relé se activa, el contacto NO se conecta, permitiendo que la corriente fluya a través de la carga.
Otros componentes esenciales incluyen la placa Arduino, que controlará el relé a través de sus pines digitales. El módulo de relé también cuenta con LEDs indicadores que se encienden cuando el relé está activado. Además, el relé está ópticamente aislado, proporcionando seguridad al separar el circuito de control del circuito de carga.
Detalles de la ficha técnica
| Fabricante | Songle |
|---|---|
| Número de pieza | SRD-05VDC-SL-C |
| Tensión lógica/E/S | 5 V |
| Tensión de alimentación | 5 V |
| Corriente de salida (por canal) | 10 A |
| Corriente de pico (por canal) | 10 A |
| Guía sobre la frecuencia PWM | No aplica |
| Umbrales lógicos de entrada | 2.5 V mín. |
| Caída de tensión / RDS(en conducción) / saturación | 80 mΩ |
| Límites térmicos | 70 °C |
| Paquete | Módulo |
| Notas / variantes | Ópticamente aislado |
- Asegure un aislamiento adecuado al conectar cargas de CA.
- Use fusibles adecuados para garantizar la seguridad con cargas elevadas.
- Mantenga el módulo de relés alejado de la humedad.
- Considere el uso de disipadores de calor en aplicaciones de alta potencia.
- Verifique el cableado antes de encender para evitar daños.
- Utilice fuentes de alimentación separadas para dispositivos de alta corriente si es necesario.
Instrucciones de cableado

Para cablear el relé de doble canal al Arduino, comience conectando el pin VCC del módulo de relé al pin 5V del Arduino. Conecte el pin GND del relé al pin GND del Arduino. Esto proporciona alimentación al módulo de relé.
A continuación, conecta los pines de control: conecta elIN1pin del relé al pin digital 7 del Arduino y elIN2Conecte el pin al pin digital 8. Esta configuración le permitirá controlar ambos relés de forma independiente. Finalmente, conecte sus cargas de CA o CC a los contactos del relé según sus necesidades, asegurándose de seguir las precauciones de seguridad adecuadas al tratar con voltaje de CA.
Ejemplos de código y guía paso a paso
En el código de Arduino, comenzamos inicializando la comunicación serie y configurando los modos de los pines de control del relé. Las variablesrelay1Pinyrelay2Pinse definen para representar los pines conectados a cada relé. A continuación, los estados de salida de estos pines se alternan en el bucle.
const int relay1Pin = 7; // define pin for relay 1
const int relay2Pin = 8; // define pin for relay 2
void setup() {
Serial.begin(9600); // setup Serial Monitor to display information
pinMode(relay1Pin, OUTPUT); // connected to Relay 1
pinMode(relay2Pin, OUTPUT); // connected to Relay 2
}
Este fragmento inicializa el monitor serial para emitir información de depuración y configura los pines de control de los relés como salidas. Esto es crucial para asegurar que los relés puedan encenderse y apagarse según sea necesario.
void loop() {
digitalWrite(relay2Pin, LOW); // turn relay 2 OFF
Serial.print("Pin 8 LOW");
digitalWrite(relay1Pin, HIGH); // turn relay 1 ON
Serial.println(" Pin 7 HIGH");
delay(3000); // keep in relay 2 OFF and relay 1 On for 3 seconds
digitalWrite(relay1Pin, LOW); // turn relay 1 OFF
digitalWrite(relay2Pin, HIGH); // turn relay 2 ON
Serial.print("Pin 7 LOW");
Serial.println(" Pin 8 HIGH");
delay(3000); // keep in relay 1 OFF and relay 2 On for 3 seconds
}
Este código alterna los relés cada tres segundos, encendiendo uno mientras apaga el otro. El monitor serie muestra el estado de los pines, lo que ayuda a depurar y a comprender el funcionamiento de los relés.
Demostración / Qué esperar
Cuando la configuración esté completa, deberías ver el relé cambiando entre las cargas conectadas cada tres segundos. El relé activará alternativamente la bombilla de CA o el motor de CC conectados. Ten precaución al trabajar con cargas de CA, ya que un manejo inadecuado puede provocar situaciones peligrosas (en el video a las 12:34).
Marcas de tiempo del vídeo
- 00:00- Introducción al relé de doble canal
- 04:15- Instrucciones de cableado
- 08:30- Explicación del código
- 10:45- Demostración del relé
Este tutorial es parte de: Control de relé con Arduino
- Controlar un relé de 5V con Arduino para accionar una carga de CA o CC, como una bombilla o un motor
- TTP224 sensor táctil de 4 canales para controlar cargas AC/DC mediante relé
- Uso de un módulo de relé de 5V (bajo disparador) con Arduino
- Uso de un termopar tipo K con MAX6675, relé y pantalla
- Uso de un interruptor de láminas para controlar un relé y cargas CA/CC con un Arduino
- Usando un módulo táctil TTP223B y un relé para controlar cargas AC/DC con un Arduino
- Usar un pulsador de Arduino para accionar un relé y una bombilla de CA
/*
* This is the Arduino code for Dual Channel 5V Relay
* to control turning ON or OFF AC or DC loads. You can control 2 different loads such as bulbs, or a heater, or other machines.
Watch the video instruction for this code: https://youtu.be/EclIomn_3dI
* *
* Written by Ahmad Shamshiri for Robojax Video
* Date: December 26, 2017, in Ajax, Ontario, Canada
* Permission granted to share this code given that this
* note is kept with the code.
* Disclaimer: this code is "AS IS" and for educational purposes only.
Get this code and other Arduino codes from Robojax.com
Learn Arduino step by step in a structured course with all materials, wiring diagrams and libraries
all in one place. Purchase my course on Udemy.com: http://robojax.com/L/?id=62
If you found this tutorial helpful, please support me so I can continue creating
content like this. You can support me on Patreon: http://robojax.com/L/?id=63
or make a donation using PayPal: http://robojax.com/L/?id=64
*
* This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.*
* This code has been downloaded from Robojax.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
void setup() {
Serial.begin(9600);// setup Serial Monitor to display information
pinMode(7, OUTPUT);// connected to Relay 1
pinMode(8, OUTPUT);// connected to Relay 2
}
void loop() {
digitalWrite(8, LOW); // turn relay 2 OFF
Serial.print("Pin 8 LOW");
digitalWrite(7,HIGH);// turn relay 1 ON
Serial.println(" Pin 7 HIGH");
delay(3000);// keep in relay 2 OFF and relay 1 On for 3 seconds
digitalWrite(7, LOW);// turn relay 1 OFF
digitalWrite(8,HIGH);// turn relay 2 ON
Serial.print("Pin 7 LOW");
Serial.println(" Pin 8 HIGH");
delay(3000);// keep in relay 1 OFF and relay 2 On for 3 seconds
}
/*
* This is the Arduino code for a dual-channel 5V relay
* to control turning ON or OFF AC or DC loads. You can control 2 different loads such as bulbs, a heater, or other machines.
Watch the video instruction for this code: https://youtu.be/EclIomn_3dI
* *
* Written by Ahmad Shamshiri for Robojax Video
* Date: December 26, 2017, in Ajax, Ontario, Canada
* Permission granted to share this code, given that this
* note is kept with the code.
* Disclaimer: This code is "AS IS" and for educational purposes only.
Get this code and other Arduino codes from Robojax.com
Learn Arduino step by step in a structured course with all materials, wiring diagrams, and libraries
all in one place. Purchase my course on Udemy.com: http://robojax.com/L/?id=62
If you find this tutorial helpful, please support me so I can continue creating
content like this. You can support me on Patreon: http://robojax.com/L/?id=63
or make a donation using PayPal: http://robojax.com/L/?id=64
*
* This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.
* This code has been downloaded from Robojax.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
const int relay1Pin =7;// define pin for relay 1
const int relay2Pin =8; // define pin for relay 2
void setup() {
Serial.begin(9600);// setup Serial Monitor to display information
pinMode(relay1Pin, OUTPUT);// connected to Relay 1
pinMode(relay2Pin, OUTPUT);// connected to Relay 2
}
void loop() {
digitalWrite(relay2Pin, LOW); // turn relay 2 OFF
Serial.print("Pin 8 LOW");
digitalWrite(relay1Pin,HIGH);// turn relay 1 ON
Serial.println(" Pin 7 HIGH");
delay(3000);// keep in relay 2 OFF and relay 1 On for 3 seconds
digitalWrite(relay1Pin, LOW);// turn relay 1 OFF
digitalWrite(relay2Pin,HIGH);// turn relay 2 ON
Serial.print("Pin 7 LOW");
Serial.println(" Pin 8 HIGH");
delay(3000);// keep in relay 1 OFF and relay 2 On for 3 seconds
}
Cosas que podrías necesitar
-
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📁
No hay archivos disponibles.