Saltar al contenido
Control Automático Educación

Relevador con Arduino

Entiende como manipular cargas AC de 110v/ 220v o activar cargas DC superiores a 5v usando un relevador o relé con Arduino.

Antes de comenzar te invito a que mires nuestro CURSO DE ARDUINO DESDE CERO totalmente gratuito.

Y que te suscribas al canal de YouTube para seguir aprendiendo más sobre la placa de prototipado de Arduino.

Que es un Relé o Relevador

Los relevadores son interruptores eléctricos que utilizan el principio del electromagnetismo para convertir pequeños estímulos eléctricos provenientes del Arduino en corrientes más grandes.

Estas conversiones ocurren cuando el Arduino activa el electroiman del relé para cerrar o abrir un circuito alimentado con una potencia diferente superior a 5V, bien sea en voltaje directo o en voltaje alterno.

¿Por qué usar un relé?

Los relés son componentes muy versátiles que son tan efectivos en circuitos complejos como circuitos simples. Y son ampliamente utilizados en la industria para procesos de automatización.

Tipos de Relés

En el mercado existen tipos de relés los cuales en forma general tendran siempre una bobina y pueden tener diferentes contactos Normalmente Abiertos (NO) y normalmente cerrados (NC) con relación a uno o diversos pines en común.

Tipos de Relevadores

Relevador para Arduino

Existen diferentes módulos comerciales diseñados para Arduino o otro tipo de microcontrolador el cual nos facilita enormemente la vida al momento de usar estos componentes.

Como conectar un Relé Arduino

Existen módulos de un solo relé Arduino asi como módulos con diversos relays. En este caso usaremos el siguiente módulo de relay con Arduino, sin embargo al final del post te muestro una conexión para que puedas conectar un relevador arduino de 5 pines en una protoboard:

modulo relevador para arduino
Circuito Rele Arduino (Módulo Relevador)

El diagrama del Módulo rele para arduino mostrado anteriormente es bastante similar en los diversos módulos relevadores arduino que existen en el mercado. Y sirve para mostrar como conectar un modulo relé a Arduino.

Diagrama de un Relevador

El relevador del módulo posee 5 pines sin embargo puedes encontrar diferentes tipos de relevadores con más pines, pero en forma general el diagrama es parecido, encontrando siempre sus dos bobinas y los contactos normalmente abiertos y cerrados.

Diagrama de relevador

La forma de como conectar un relevador de 5 pines en protoboard consiste en colocar una punta de la bobina a positivo (+5v) y la otra punta al colector de un transistor el cual es activado por el arduino. Y la carga debe ser conectado desde el pin Común y el Pin Normalmente Abierto.

Si te interesa puedes adquirir estos productos directamente desde china en Aliexpress a un precio muy bajo. A continuación te muestro diversos modulos relevadores para arduino:

Activar relevador con arduino

Bien sea que poseas un módulo de relé, o que desees montar el relé en una protoboard, vamos a necesitar de un transistor para que active la bobina de nuestro relé.

Presta mucha atención, pues voy a mostrarte la forma correcta de activar un relé con Arduino.

En este caso el transistor será usado como interruptor y lo más importante a ser calculado en este circuito será la resistencia de base del transistor (Este procedimiento no es necesario en caso que tengas el módulo, ya que el módulo ya viene listo para ser usado).

Calculo de la resistencia de base del transistor – Relé Arduino

El modulo relé que usamos con arduino utiliza un transistor J3Y con un h_{FE}=300 y un relé de 5v. Corroboremos la resistencia de base del modulo relevador arduino con los cálculos mostrados anteriormente.

I_c=\dfrac{V_{cc}}{R_R}=\dfrac{5v}{70\Omega}=71.4mA
I_b=\dfrac{I_c}{h_{FE}}=\dfrac{71.4mA}{300}=238\mu A

El módulo rele arduino posee un led entre la señal del arduino y la resistencia de base del transistor. Entonces, el voltaje que cae en el led es de 1.95v.

De esa forma sabemos que la resistencia tendrá una caída de voltaje de:

V_{RB}=5v-1.95v-0.7v = 2.35v
R_B=\dfrac{V_{RB}}{I_b}=\dfrac{2.35v}{238\mu A}=9.873k\Omega

Esto nos indica, que podremos colocar cualquier resistencia que NO sea superior a R_B=9.873k\Omega.

En el caso del modulo se encuentra instalado una resistencia de R_B=150\Omega lo cual está debajo del valor calculado y por lo tanto permite que el transistor trabaje en saturación. Además este valor permite una alta luminosidad en el led que indica el envio de la señal desde el arduino.

Relé con Arduino Ejemplo

Vamos a encender y apagar un foco o bombillo con el Arduino y un relevador conectados al PIN3 cada que se presione un pulsador conectado al PIN2 con la resistencia PULLUP activa.

Vamos a valernos del proteus para la simulación, y en este caso usaremos el relevador en proteus, la lampara en proteus y la librería de Arduino en proteus.

La conexión del Módulo rele Arduino es:

  • + Pin 5v
  • S Pin 3
  • Pin GND

El esquema del proyecto se muestra a continuación, donde puedes apreciar el circuito relé de Arduino, el cual viene incorporado dentro del módulo relevador Arduino.

Lampara Arduino
Relevador Arduino para encender y apagar una lampara AC

Recuerda que si en tu proyecto, necesitas activar diversas cargas, entonces puedes conseguir en el mercado, como te lo mostré anteriormente en el sitio de Aliexpress un módulo de relevadores para arduino el cual sigue exactamente el mismo procedimiento de programación aquí tratado.

/******************************************************
 * ****************************************************
 * ****  CONTROL LAMPARA CON RELÉ                 *****
 * ****  By: SERGIO ANDRES CASTAÑO GIRALDO        *****
 * ****  https://controlautomaticoeducacion.com/  *****
 * ****                                           *****
 * ****************************************************
 */
 //Definiciones
#define Rele 3
#define Push 2
void setup() {
  pinMode(Rele,OUTPUT);
  pinMode(Push,INPUT_PULLUP);
}
void loop()
{
   bool RUN=0;
   while(1)                // Haga por siempre
   {
      //Pregunta por el botón
      if( ! digitalRead(Push) )
      {
         delay(200);       //Anti-Debounce
         //Instrucción para contabilizar una pulsación del botón
         while( ! digitalRead(Push) )
         {
            delay(200);       //Anti-Debounce
         }
         RUN = !RUN;      //Cambia el estado lógico de RUN
      }
      
      //Activa o desactiva el relé
      if(RUN)
         digitalWrite(Rele,HIGH);    //Activa Rele
      else 
         digitalWrite(Rele,LOW);  //Desactiva rele
   }
}

Eso es todo por la entrada del dia de hoy, espero les haya gustado y hayan aprendido algo nuevo. Si te ha servido el contenido de esta entrada, de los videos y los códigos de implementación y deseas apoyar mi trabajo invitandome a un café super barato, puedes hacerlo en el siguiente link:

👉 Invitar a Sergio a un Café ☕️

Que esten muy bien, nos vemos en la siguiente entrada.

Entradas relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Comentarios (9)

Hola Sergio. Necesito realizar una consulta ya que tu explicación de código me ha servido para mi trabajo de clase. Necesito saber como realizar lo siguiente: una vez que el Relé se activó (High) luego de un tiempo transcurrido (fijo) se apague. Solo el Relé. Que el sistema siga funcionando igual. Es decir que al presionar el botón se apague el Relé y al presionarlo nuevamente se encienda, poniendo a cero ese timer (o como se llame) para contar el tiempo fijo hasta que se apague.
Ojalá puedas ayudarme. Desde ya muchas gracias! Apareces en la bibliografía de mi trabajo. Genio

Responder

Es fantástico saber que el código proporcionado ha sido de utilidad en tu trabajo académico. Respecto a su consulta sobre modificar el código para que el relé se apague automáticamente después de un tiempo fijo tras ser activado, manteniendo la capacidad de control manual con el botón, se puede realizar añadiendo una variable que funcione como temporizador. Aquí le muestro cómo se podría modificar el código:


/******************************************************
* ****************************************************
* **** CONTROL LAMPARA CON RELÉ *****
* **** By: SERGIO ANDRES CASTAÑO GIRALDO *****
* **** https://controlautomaticoeducacion.com/ *****
* **** *****
* ****************************************************
*/
// Definiciones
#define Rele 3
#define Push 2
unsigned long tiempoInicio = 0; // Variable para almacenar el tiempo en que se activa el relé
const unsigned long tiempoEspera = 10000; // Tiempo de espera en milisegundos (10 segundos en este caso)
bool RUN = 0;

void setup() {
pinMode(Rele,OUTPUT);
pinMode(Push,INPUT_PULLUP);
}

void loop()
{
// Haga por siempre
while(1)
{
// Pregunta por el botón
if( !digitalRead(Push) )
{
delay(200); // Anti-Debounce
// Instrucción para contabilizar una pulsación del botón
while( !digitalRead(Push) )
{
delay(200); // Anti-Debounce
}
RUN = !RUN; // Cambia el estado lógico de RUN

// Si se activa el relé, guardar el tiempo de inicio
if (RUN)
{
tiempoInicio = millis();
}
}

// Activa o desactiva el relé
if(RUN)
{
digitalWrite(Rele,HIGH); // Activa Rele
// Comprueba si ha pasado el tiempo de espera
if (millis() - tiempoInicio >= tiempoEspera)
{
RUN = false;
digitalWrite(Rele, LOW); // Desactiva rele
}
}
else
{
digitalWrite(Rele,LOW); // Desactiva rele
}
}
}

Responder

Buenas tardes y pedir disculpas por la consulta que voy a realizar

Mi objetico es poder encender un foco a través de un modulo esp8266 con rele arduino

He conseguido cargar un programa, pero el rele no hace nada de nada

Puede ayudarme para conseguir este objetivo, si usted dispone de algún código que pueda cargar y probar sería estupendo

Mis conocimientos de Arduino son casi nulos

Responder

EL modulo del rele ya viene dentro de las librerias de proteus, oh se tiene que armar pieza por pieza, necesito hacer una PCB pero en mi proyecto ocupo el modulo de un rele de 10 amperes. gracias.

Responder

Donde compralo Gracias

Responder

Hola Sergio Andrés
MÍ nombre Jose dese España
En primer lugar darte la gracias por tus videos
Mi pregunta es como hacer que pueda encender o apagar 32 relés que controla mi maqueta de trenes y hacerlo desde un Arduino Mega2560 R3 teclado Membrana 4×4 y un CLD 16×2 con modulo ic2
gracia de antemano
un saludo
Jose

Responder

Hola Jose, pues es exactamente igual a como lo hemos hecho aquí para activar los relés, el Arduino será el encargado de activar los relés, y en la etapa de potencia debes tener conectado lo que deseas que se accione y una fuente de alimentación externa que tenga la corriente suficiente para mover toda tu carga. Aquí en el sitio web y en el canal ya hemos también explicado como programar los teclados 4×4 y los LCD via I2C, eso solo darle un vistazo. Éxitos.

Responder

Y para implementar un botón con enclavamiento tipo paro de emergencia, cómo sería? Gracias de antemano

Responder

Para implementar un botón de paro de emergencia con enclavamiento en tu código de Arduino, necesitarías una lógica que mantenga el relé desactivado hasta que se restablezca manualmente el sistema después de haber sido activado. Esto generalmente se logra utilizando una variable que recuerde el estado de ’emergencia’ incluso después de que el botón haya sido liberado.

#define Emergencia 4

Dentro del código:

// Revisa el botón de emergencia
if (!digitalRead(Emergencia)) {
estadoEmergencia = true; // Establece el estado de emergencia
RUN = false; // Asegura que el relé se desactive
delay(200); // Anti-rebote
}
// Activa o desactiva el relé basado en RUN y el estado de emergencia
if (RUN && !estadoEmergencia)
digitalWrite(Rele, HIGH); // Activa Rele
else
digitalWrite(Rele, LOW); // Desactiva rele

Responder