Código de búsqueda

Código de Arduino para un módulo de relés de 4 a 16 canales de 5 V

Código de Arduino para un módulo de relés de 4 a 16 canales de 5 V

En este tutorial, aprenderemos cómo controlar un módulo de relés de 4 canales con un Arduino. Esto te permitirá gestionar cargas de CA como luces, ventiladores o calefactores de forma segura y eficaz. El código proporcionado puede adaptarse a módulos con más canales, lo que lo hace versátil para diversas aplicaciones.

Antes de profundizar en los detalles, es esencial comprender los componentes involucrados en este proyecto. El módulo de relés actúa como un interruptor que puede controlar dispositivos de alto voltaje mientras es controlado por señales de bajo voltaje desde el Arduino. Cada relé puede ser normalmente abierto o normalmente cerrado, lo que permite flexibilidad en la forma en que operan los dispositivos conectados. Por favor, consulte el video para orientación visual (en el video a las 02:15).

Hardware explicado

Los componentes principales de este proyecto incluyen la placa Arduino y el módulo de relés. El Arduino actúa como controlador, enviando señales al módulo de relés según el código que escribimos. El módulo de relés contiene varios relés que pueden conmutar cargas de CA encendiéndolas y apagándolas. Cada relé tiene tres terminales: normalmente cerrado (NC), normalmente abierto (NO) y un terminal común (COM).

Cuando se activa el relé, el terminal común se conecta al terminal normalmente abierto, permitiendo que la corriente fluya a través de la carga. Se trata de un relé activado por nivel bajo, es decir, se activa cuando recibe una señal de bajo voltaje (0V) y se desactiva con una señal de alto voltaje (5V). Comprender este mecanismo es crucial para controlar de forma segura dispositivos de corriente alterna.

Detalles de la ficha técnica

FabricanteGenérico
Número de parteMódulo de relé de 4 canales
Tensión lógica/E/S5 V
Tensión de alimentación5 V
Corriente de salida (por canal)10 A máx.
Corriente de pico (por canal)15 A
Orientación sobre la frecuencia PWMNo aplica
Umbrales lógicos de entradaBajo: 0 V; Alto: 5 V
Caída de tensión / RDS(on) / saturaciónNo aplica
Límites térmicos85 °C
PaqueteMódulo de relé estándar
Notas / variantesDisponible en variantes de 2, 4, 8 y 16 canales

  • Asegúrese de no exceder la corriente nominal del relé para evitar daños.
  • Utilice fuentes de alimentación separadas en aplicaciones de alta corriente para aislar el Arduino.
  • Mantenga una disipación de calor adecuada para los relés durante su funcionamiento.
  • Compruebe el cableado cuidadosamente para evitar cortocircuitos.
  • Utilice optocopladores si es necesario para mayor protección.

Instrucciones de cableado

Arduino wirign for 4 channel relay to control 4 AC load
Arduino wirign for 4 channel relay to control 4 AC load

Para cablear el módulo de relés a tu Arduino, comienza conectando el pin de tierra del módulo de relés al pin de tierra del Arduino. A continuación, conecta el pin VCC del módulo de relés al pin de 5V del Arduino. Para los pines de control, conecta los pines IN1, IN2, IN3 e IN4 del módulo de relés a los pines digitales 2, 3, 4 y 5 del Arduino, respectivamente. Esta configuración permite que el Arduino controle el estado de cada relé.

Asegúrate de colocar el módulo de relés sobre una superficie aislada, ya que maneja cargas de CA. Si usas una fuente de alimentación externa para los relés, conecta su tierra a la masa (GND) del Arduino para asegurar una referencia común. Esto es crucial para el funcionamiento correcto y la seguridad.

Ejemplos de código y guía paso a paso

El siguiente fragmento de código inicializa el número de relés y establece los pines de control:

int ch = 4; // number of relays you have
int relay[]={2,3,4,5}; // Arduino pin numbers for relays

Esto define el número de relés y sus correspondientes conexiones a los pines del Arduino. El arreglorelayalmacena los números de los pines utilizados para controlar cada relé.

Wirig relay module to AC load

A continuación, configuramos los pines en elsetup()función:

void setup() {
    Serial.begin(9600); // prepare Serial monitor
    for(i=0; i < ch; i++) {
        pinMode(relay[i], OUTPUT); // set i(th) pin as output
        digitalWrite(relay[i], HIGH); // Turn the relay OFF  
    }
    Serial.println("Robojax 4 Relay Test");
}

Este código inicializa el monitor serie y configura cada pin del relé como salida, apagándolos por defecto. La instrucción Serial.print confirma que la configuración se ha completado.

El bucle principal del programa controla los relés:

void loop() {
    for(int i=0; i < ch; i++) {
        Serial.print("Relay "); Serial.print(i+1); Serial.println(" ON");
        digitalWrite(relay[i], LOW); // Turn the relay ON    
        delay(wait);  
    }
    for(int i=0; i < ch; i++) {
        Serial.print("Relay "); Serial.print(i+1); Serial.println(" OFF");
        digitalWrite(relay[i], HIGH); // Turn the relay OFF    
        delay(wait);  
    }
    Serial.println("====== loop done ==");
}

Este bucle primero enciende cada relé uno por uno, espera un tiempo especificado y luego los apaga en la misma secuencia. La salida serie ayuda a supervisar el estado de los relés en tiempo real.

Demostración / Qué esperar

Cuando ejecutes el programa, deberías ver los relés activarse en secuencia, encendiéndose y apagándose cada dos segundos. Si todo está cableado correctamente, las cargas de corriente alterna conectadas a los relés responderán en consecuencia. Ten cuidado con la corriente que extrae el Arduino; si se activan demasiados relés simultáneamente, podría superar la capacidad de la placa (en el video a las 13:45).

Marcas de tiempo del vídeo

  • 00:00Introducción
  • 02:15Explicación del hardware
  • 05:30Instrucciones de cableado
  • 08:45Recorrido por el código
  • 13:45Demostración

Imágenes

Wirig relay module to AC load
Wirig relay module to AC load
Arduino wirign for 4 channel relay to control 4 AC load
Arduino wirign for 4 channel relay to control 4 AC load
88-This is code for a 4- to 16-channel 5V relay module for Arduino.
Idioma: C++
++
/*
This is code to control 4 to 16 channel 5V relay modules using Arduino.
 * Watch the video on how to use 4 to unlimited relay channels: https://youtu.be/Wbm3MCMgM_s
 
 */
/*
 *  This code was written by Ahmad Shamshiri for Robojax.com.
// Written March 26, 2018, at 12:14 in Ajax, Ontario, Canada.

 *  
 */

int ch = 4;// number of relays you have
int relay[]={2,3,4,5}; // Arduino pin numbers. The same number of relays should be defined here as input pins


int wait = 2000;// delay time
int i=0;

void setup() {
    Serial.begin(9600);// prepare Serial monitor
    // set pins as output
 for(i=0; i < ch; i++)
 {    
    pinMode(relay[i], OUTPUT);// set i(th) pin as output
   digitalWrite(relay[i], HIGH); // Turn the relay OFF  
 }
               
    Serial.println("Robojax 4 Relay Test");
}

void loop() {
    
     
 for(int i=0; i < ch; i++)
 {
      Serial.print("Relay "); Serial.print(i+1);Serial.println(" ON");
      digitalWrite(relay[i], LOW); // Turn the relay ON    
      delay(wait);  
 }// for loop


 for(int i=0; i < ch; i++)
 {
      Serial.print("Relay "); Serial.print(i+1);Serial.println(" OFF");
      digitalWrite(relay[i], HIGH); // Turn the relay OFF    
      delay(wait);  
 }// for loop

    Serial.println("====== loop done ==");

}// loop
89-If you want to replace the loop inside setup(), then use this as shown in the video.
Idioma: C++
pinMode(relay[0], OUTPUT);// connected to relay 1
    digitalWrite(relay[0], HIGH); // Turn the relay OFF  


    pinMode(relay[1], OUTPUT);// connected to relay 2
    digitalWrite(relay[1], HIGH); // Turn the relay OFF  

    pinMode(relay[2], OUTPUT);// connected to relay 3
    digitalWrite(relay[2], HIGH); // Turn the relay OFF  

    pinMode(relay[3], OUTPUT);// connected to relay 4
    digitalWrite(relay[3], HIGH); // Turn the relay OFF

Cosas que podrías necesitar

Recursos y referencias

Aún no hay recursos.

Archivos📁

Archivo de Fritzing