Tutorial de relés para Arduino, ESP8266 y ESP32

En este tutorial aprenderás qué es un relé y cómo utilizarlo para controlar hasta 250V con tu microcontrolador Arduino, ESP8266 o ESP32.

Si utilizas un relé, puedes controlar hasta 250V con tu microcontrolador basado en Arduino, ESP8266 o ESP32.

En este tutorial aprenderás:

  • ¿Qué es un relé y cómo utilizarlo?
  • ¿Cómo funciona un relé?
  • Cómo controlar un relé con tu microcontrolador para encender y apagar una bombilla.

Advertencia para voltajes de CA más altos: Trabajar con relés en combinación con voltajes de CA más altos es peligroso y puede causar lesiones personales o incendios. Por lo tanto, está destinado a personas con experiencia y conocimientos sobre voltajes de CA más altos. Para uso permanente, asegúrese de usar un relé para tecnología de carcasa y no microelectrónica.

¿Qué es un relé y por qué lo usamos?

Construcción de relés

Un relé es un interruptor eléctrico que se enciende y apaga al energizar una bobina. La bobina está hecha de alambre enrollado alrededor de un núcleo de hierro para proporcionar baja resistencia al flujo magnético. Ambos extremos de la bobina son accesibles desde el exterior del relé a través de los pines (1, 2). Estos dos pines están conectados a la señal de baja potencia para encender y apagar el relé.

Hay otros 3 pines accesibles desde el exterior. Un pasador (3) está conectado a un marco de hierro móvil que se mantiene en su lugar mediante un resorte. Como la armadura de hierro no está conectada a la bobina, los dos circuitos eléctricos están aislados eléctricamente. El otro lado del marco de hierro está conectado a cualquiera de los dos pines restantes (4, 5).

Diferentes tipos de relés

  • Tradicionalmente escribe con un electroimán para abrir o cerrar contratos.
  • Relés de estado sólido modernos sin partes móviles.

Configuraciones de un relé electromagnético

Como otros interruptores, los relés tienen diferentes configuraciones. Básicamente, existen dos atributos para diferenciar los relés electromagnéticos: Pole y Throw

La siguiente imagen muestra las combinaciones entre Pole y Throw.

Lanzamiento de poste de relé

El polo describe la cantidad de circuitos individuales que pueden ser controlados por un relé.

  • Unipolar (SP): un relé controla un circuito.
  • Bipolar (DP): un relé controla dos circuitos individuales. Esto se logra mediante dos interruptores interconectados, cada interruptor está conectado a uno de los dos circuitos. Si se alterna el relé, ambos interruptores se ven afectados al mismo tiempo.

Throw describe la cantidad de rutas de circuito proporcionadas por el conmutador.

  • Tiro único (ST): solo se proporciona una ruta de circuito.
  • Doble tiro (DT): Se pueden conmutar dos circuitos individualmente, pero también es posible desconectar los dos circuitos. Por lo tanto, el interruptor debe tener una posición central.

En este tutorial, usamos un relé de electroimán unipolar y unidireccional SRD-05VDC-SL-C. La siguiente tabla muestra las especificaciones técnicas. Encuentra la ficha técnica completa en este sitio.

Como existen diferentes versiones del relé, la tabla solo muestra la especificación del SRD-05VDC-SL-C.

Especificación de criterios de SRD-05VDC-SL-C

Parámetro técnico del relé Valor de especificación Detalle de seguridad y aplicación
Tensión nominal de la bobina 5 V DC (rango operativo: 3,8 V a 6,5 V) Consumo nominal de ~70 mA a 5 V; requiere excitación por transistor o driver
Potencia de la bobina 0,36 W (360 mW) Imposible alimentar directamente desde un GPIO (límite de 20 mA a 40 mA)
Tensión máxima de conmutación 250 V AC / 30 V DC Contactos mecánicos aptos para tensión de red eléctrica doméstica
Corriente máxima de conmutación 10 A (carga resistiva a 250 V AC) Para cargas inductivas (motores, bombas), aplicar un desclasado de seguridad del 50 % (máx. 5 A)
Resistencia de contacto ≤ 100 mΩ Contactos de aleación de plata (AgCdO / AgSnO2) de baja resistencia
Tiempo de conmutación mecánico Pull-in: ~10 ms / Drop-out: ~5 ms Incluye rebotes de contacto mecánicos de 1 ms a 3 ms comprobables con osciloscopio

¿Por qué necesitamos un relé?

Los relés se utilizan principalmente por dos motivos diferentes:

  1. Cuando un circuito necesita ser controlado (encendido y apagado) por una señal de baja potencia independiente, por ejemplo, el pin de E / S digital de un microcontrolador. En la tabla de especificaciones técnicas puede ver que una tensión de bobina de 5 V puede conmutar una tensión máxima de 250 V AC. Por lo tanto, puede encender y apagar una bombilla con un microcontrolador, que veremos en el ejemplo más adelante en este tutorial.
  2. Cuando es necesario controlar varios circuitos con una sola señal. Los dos pines (4,5) corresponden a dos modos de funcionamiento diferentes del relé:
    • Pin 4: normalmente abierto (NO)
    • Pin 5: normalmente cerrado (NC)

Debido a que el pin 4 o el pin 5 cierran el circuito, puede encender o apagar dos circuitos diferentes alternativamente con un relé y, por lo tanto, una señal de control. O si su relé es capaz de doble tiro, puede cambiar dos circuitos individualmente.

¿Cómo funciona un relé?

Si el relé está en estado inactivo, no hay corriente fluyendo en el circuito de baja potencia. Por lo tanto, el resorte sostiene el marco de hierro móvil en su lugar.

  • El circuito de alta potencia con el pin normalmente cerrado (NC) está cerrado.
  • El circuito de alta potencia con el pin normalmente abierto (NO) está abierto.
Relé abierto
Relé cerrado

Si una corriente eléctrica pasa a través de la bobina, genera un campo magnético. Este campo magnético mueve la armadura de hierro contra la fuerza del resorte.

  • El circuito de alta potencia con el pin normalmente cerrado (NC) está abierto.
  • El circuito de alta potencia con el pin normalmente abierto (NO) está cerrado.

Si el circuito de potencia inferior está desenergizado, la armadura vuelve al estado inactivo por la fuerza del resorte.

Circuito de relés con componentes eléctricos adicionales

El siguiente circuito muestra cómo controlar un relé con su microcontrolador Arduino o ESP8266.

Precaución eléctrica y seguridad en conmutación de relés

Al manipular módulos de relé conectados a microcontroladores (Arduino, ESP32, ESP8266) y actuar sobre cargas de red, respeta estrictamente las siguientes medidas de seguridad:

  • Peligro mortal al conmutar red eléctrica doméstica (230 V AC / 50 Hz): al conectar los terminales de tornillo (COM, NO, NC) a enchufes o líneas de 230 V, existe riesgo severo de electrocución. Desconecta siempre el automático general de la vivienda antes de manipular los cables. En muchos módulos económicos, la separación física (creepage) en el cobre entre las pistas de 230 V y la zona de baja tensión es inferior a 2 mm (debe ser >6 mm para aislamiento reforzado). Si la placa no dispone de ranura de fresado de aislamiento bajo el relé, no la utilices para conmutar tensiones superiores a 48 V.
  • Incompatibilidad de 3,3 V en módulos activos a nivel bajo (ESP32 y ESP8266): los módulos comerciales alimentados a 5 V llevan el optoacoplador referenciado a 5 V. Cuando un pin GPIO de 3,3 V del ESP32 está en nivel ALTO (3,3 V), la diferencia de tensión es de 5 V - 3,3 V = 1,7 V, superando el umbral de disparo del optoacoplador y provocando que el relé nunca se desactive. Para solucionarlo, retira el jumper JD-VCC: alimenta la bobina conectando JD-VCC a una fuente de 5 V externa, y conecta VCC a la salida de 3,3 V del microcontrolador.
  • Riesgo crítico de cortocircuito por masa BNC en osciloscopios de sobremesa: la pinza de masa exterior de un osciloscopio de sobremesa estándar está unida a la tierra de protección de la red eléctrica (PE). Mide siempre de forma exclusiva en el lado de baja tensión DC del microcontrolador. NUNCA conectes la pinza de masa BNC a los terminales de 230 V AC del relé, ya que provocarás un cortocircuito directo de fase a tierra que destruirá el osciloscopio y puede electrocutarte. Para medir en la zona de red eléctrica utiliza un osciloscopio USB con aislamiento galvánico (como el Owon VDS1022I) o una sonda diferencial de alta tensión certificada.
Circuito de relés

No es posible conectar un pin de E / S digital directamente a la bobina del relé porque la bobina necesita una gran corriente de aproximadamente 150 mA para impulsar el relé. La corriente CC por pin para el Arduino está entre 20mA y 40mA dependiendo del modelo y para el ESP8266 12mA. Por lo tanto, usamos el voltaje de suministro de 5V para la bobina y usamos el transistor NPN para encender y apagar el circuito eléctrico de baja potencia. El transistor NPN está controlado por un pin de E / S digital del microcontrolador Arduino.

La cantidad específica de corriente CC por pin se presenta en cada tutorial de microcontrolador: Arduino Nano, Arduino Uno, Arduino Mega, ESP8266, ESP32.

Para evitar un cortocircuito en la base del transistor NPN, el pin digital del microcontrolador está protegido por una resistencia de 470Ω o 1kΩ.

También es importante colocar un diodo a través de la bobina como un diodo de rueda libre, ya que la energía del campo magnético que colapsa generaría un pico de voltaje. Este pico de voltaje es peligroso para los componentes electrónicos y el microcontrolador.

Cómo controlar un módulo de relé con un microcontrolador

Nous sommes chanceux que plusieurs entreprises proposent des modules de relais prêts à l’emploi qui ont le relais lui-même, la diode du volant, le transistor NPN et les résistances construites sur un PCB avec des broches accessibles pour votre microcontrôleur et le circuit haute potencia.

Hay varios módulos de relés en el mercado que van desde un solo relé en una placa hasta 8 relés consecutivos. Si compra un módulo de relé con más de un relé, debe haber un acoplador óptico eléctrico incorporado. El optoacoplador (un diodo emisor de luz (LED) acoplado a un fototransistor) se utiliza para aislar el controlador y los circuitos impulsados.

Tenga en cuenta que puede controlar tantos relés como los pines digitales y analógicos de su microcontrolador. Para los pines digitales, debe configurar los pines HIGH y los pines analógicos en 255 para activar el relé.

La mayoría de los módulos de relé necesitan una fuente de alimentación de 5 V para un funcionamiento estable. Para el microcontrolador Arduino, no tenemos ningún problema, porque el voltaje de trabajo de la mayoría de los microcontroladores Arduino es de 5V. Cuando usamos el microcontrolador ESP8266 o ESP32 con voltaje de trabajo de 3.3V, necesitamos usar la salida VIN o 5V de la conexión USB como fuente de alimentación para el módulo de relé y alimentar la placa ESP8266 o ESP32 a través de USB.

La siguiente imagen muestra el cableado entre el microcontrolador Arduino, ESP8266 y ESP32 más utilizado y un módulo de relé.

Cableado entre el módulo de relés y Arduino

Las siguientes imágenes muestran el cableado entre el módulo de relés y varias placas Arduino. Usamos la salida de 5V del Arduino para la fuente de alimentación del módulo de relés. Para controlar el módulo de relé, puede utilizar cualquier pin de E / S digital en la placa Arduino. En mi caso estoy usando el pin digital 7.

  • Arduino Nano
  • Arduino Pro Mini
  • Arduino Uno
  • Arduino Mega

Arduino Nano

Módulo de relé Arduino Nano

Para obtener más información sobre Arduino Nano, visite el tutorial de Arduino Nano.

Arduino Pro Mini

Mini módulo de relé Arduino Pro

Arduino Uno

Módulo de relé Arduino Uno

Para obtener más información sobre Arduino Uno, visite el tutorial de Arduino Uno.

Arduino Mega

Módulo Arduino Mega Relay

Para obtener más información sobre Arduino Mega, visite el tutorial de Arduino Mega.

Cableado entre módulo de relé y ESP8266

Para ESP8266, necesitamos usar una salida de 5 V para la fuente de alimentación del módulo de relé y la placa ESP8266 de alimentación desde USB. La siguiente lista muestra los pines de salida de 5 V de diferentes placas de microcontroladores ESP8266:

  • ESP8266 NodeMCU V2: VIN
  • ESP8266 NodeMCU V3: VU
  • ESP8266 WeMos D1 Mini: 5 V

Para controlar el módulo de relé, podemos usar un pin digital de 3.3V del ESP8266. Las siguientes imágenes muestran el cableado entre la placa ESP8266 y el módulo de relés.

ESP8266 NodeMCU
ESP8266 WeMos D1 Mini

ESP8266 NodeMCU

Módulo de relé ESP8266 NodeMCU

ESP8266 WeMos D1 Mini

Mini módulo de relé ESP8266 WeMos D1

Cableado entre módulo de relé y ESP32

La siguiente imagen muestra el cableado entre la placa ESP32 ESP-WROOM-32 y el módulo de relés. Para el consumo de energía usamos la salida de 5V de la conexión USB y para controlar el módulo de relés elegimos un pin de E / S digital del ESP32.

  • ESP32 ESP-WROOM-32

ESP32 ESP-WROOM-32

Módulo de relé ESP32 NodeMCU

Ejemplo de un relé para encender y apagar una bombilla

En el siguiente ejemplo, queremos usar un módulo de relé para encender y apagar una bombilla en un circuito de 230V. La siguiente imagen muestra el circuito en este ejemplo.

Módulo de relé Arduino Uno World

Ya conocemos la parte de bajo nivel de este circuito con el microcontrolador Arduino y el módulo de relés. Para la parte de alta potencia, conectamos un casquillo de la bombilla con el cable positivo de los casquillos. El segundo portalámparas está conectado al pin normalmente abierto del relé. El pin común del relé está conectado al cable negativo de la toma de corriente para cerrar el circuito eléctrico.

Debido a que conectamos el pin normalmente abierto del relé, la luz se apaga cuando el pin digital está BAJO. Si queremos encender la luz, tenemos que tirar del pin digital HIGH.
Si conectamos el pin normalmente cerrado del relé, esta lógica sería la inversa: la luz estaría encendida si el pin digital está BAJO y apagada si el pin se jala HIGH.
La siguiente tabla resume esta lógica, porque es importante que su sitio de alta potencia esté activo si comienza su boceto.

Normalmente abierto (NO) conectado Normalmente cerrado (NC) conectado

Estado lógico del pin digital (Módulo Active LOW) Contacto Normalmente Abierto (NO / NA) Contacto Normalmente Cerrado (NC) Estado de la bobina electromagnética
Nivel BAJO (LOW / 0 V) Circuito CERRADO (Activo) Circuito ABIERTO (Inactivo) Bobina energizada (~70 mA)
Nivel ALTO (HIGH / 5 V o 3,3 V) Circuito ABIERTO (Inactivo) Circuito CERRADO (Activo) Bobina desenergizada (0 mA)

El esquema del programa es muy simple. Solo tenemos que controlar el pin digital del microcontrolador. En mi boceto, estoy usando el pin digital 7 en el Arduino Uno, pero puede elegir el pin que desee.

El código del programa también contiene las líneas para el microcontrolador ESP8266 o ESP32. Todo lo que necesita hacer es editar las primeras tres líneas para comentarios.

int relay = 7; // for Arduino microcontroller
//int relay = D7; // for ESP8266 microcontroller
//int relay = 21; // for ESP32 microcontroller

void setup() {
  pinMode(relay, OUTPUT);
}

void loop() {
  digitalWrite(relay, HIGH);
  delay(10000);
  digitalWrite(relay, LOW);
  delay(10000);
}

El programa comienza encendiendo la luz y espere 10 segundos. Pasado este tiempo, la luz se apaga y esperamos otros 10 segundos antes de que vuelva a empezar la función de bucle.

El siguiente video muestra cómo controlo la luz en un globo con el relé.

Criterios de diseño y aislamiento para controlar relés

Al diseñar proyectos de automatización del hogar, control industrial o robótica con relés y microcontroladores, aplica siempre los siguientes criterios técnicos:

  • Separa la alimentación de potencia de la lógica: retira el jumper JD-VCC del módulo de relés y alimenta las bobinas desde una fuente independiente de 5 V. Si alimentas las bobinas desde el pin de 5 V de Arduino o ESP32, la conmutación inductiva inducirá caídas de tensión que congelan la CPU.
  • Emplea aislamiento galvánico por optoacoplador: no unas las masas (GND) del microcontrolador y de la bobina del relé si usas la configuración con JD-VCC independiente; de este modo el circuito de control queda completamente aislado ópticamente de la carga conmutada.
  • Instala amortiguadores (snubbers) en los contactos: al conmutar cargas inductivas en 230 V AC (bombas de agua, motores, transformadores), salta un arco eléctrico que carboniza los contactos mecánicos y genera ruido electromagnético (EMI). Conecta una red RC en serie (100 Ω + 100 nF clase X2) en paralelo con los contactos del relé para absorber el arco.
  • Prefiere relés de estado sólido (SSR) para conmutaciones frecuentes: si tu sistema requiere conmutar varias veces por minuto o gobernar cargas por modulación PWM lenta, sustituye el relé electromagnético por un relé de estado sólido con cruce por cero (zero-crossing), eliminando el desgaste mecánico y los rebotes de contacto.

Diagnóstico de rebotes de contacto y picos inductivos con osciloscopio

El osciloscopio permite verificar la integridad eléctrica del circuito de conmutación, evaluar la eficacia del diodo volante y medir la dinámica mecánica del relé:

  1. Medición del rebote de contacto mecánico (contact bounce): conecta el Canal 1 a la señal digital de control del microcontrolador (pin GPIO) y el Canal 2 a los contactos de conmutación del relé (empleando una tensión de prueba DC de 5 V o 12 V con una resistencia pull-up). Al conmutar el relé, en el Canal 2 se observa el retardo de activación mecánica (pull-in time, típicamente de 6 ms a 12 ms) seguido de un tren de rebotes mecánicos de 1 ms a 3 ms antes de estabilizar el contacto cerrado. Medir este rebote es fundamental para programar retardos de filtrado por software y evitar conteos falsos en sistemas de control.
  2. Comprobación del pico inductivo de corte (flyback): al desconectar la bobina del relé, el campo magnético colapsa bruscamente generando un pico de tensión inversa muy elevado ($V = -L \cdot \frac{di}{dt}$). Conectando la sonda en el colector del transistor de excitación, el osciloscopio debe mostrar cómo el diodo volante (1N4148 / 1N4007 en antiparalelo) recorta la sobretensión a un valor seguro de $V_{CC} + 0,7\text{ V}$. Si el diodo está ausente o dañado, capturarás una espiga de más de 80 V que perforará el transistor y reseteará el microcontrolador.
  3. Detección de micro-cortes y rizado en la alimentación de 5 V: en el instante en que el relé se energiza, la bobina absorbe de golpe entre 70 mA y 100 mA. Si la fuente de alimentación no responde con suficiente rapidez, el carril de 5 V experimenta una caída de tensión momentánea (voltage sag) que suele provocar el reinicio por caída de tensión (brownout reset) de placas ESP32 y ESP8266. Con el osciloscopio en acoplamiento AC y disparo por flanco descendente (falling edge), podrás medir la magnitud de la caída y calcular el condensador de desacoplo necesario (típicamente 470 μF en paralelo con 100 nF). Revisa también nuestra guía sobre cómo elegir un osciloscopio para proyectos Arduino.

Osciloscopios recomendados para electrónica de potencia y conmutación

Para depurar circuitos de potencia, transitorios inductivos y aislamiento en montajes con microcontroladores, estos son los osciloscopios más recomendados:

Modelo recomendado Formato / Arquitectura Ancho de banda / Muestreo Canales y Memoria Función clave para Relés y Conmutación de Potencia Oferta
Sobremesa digital laboratorio 50 MHz (ampliable) / 1 GSa/s 4 canales / 24 Mpts 4 canales simultáneos para correlacionar señal lógica GPIO, tensión en la bobina, caída en la línea de 5 V y cierre del contacto VER MEJOR PRECIO
Sobremesa con tecnología SPO (Super Fósforo) 200 MHz / 1 GSa/s 2 canales / 14 Mpts Alta velocidad de captura para registrar espigas inductivas de alta tensión y rebotes de arco eléctrico en microsegundos VER MEJOR PRECIO
Módulo USB aislado para PC 25 MHz / 100 MSa/s 2 canales / 5 kpts Aislamiento galvánico USB de 1.000 V: protección indispensable contra bucles de masa y sobretensiones accidentales al medir relés conectados al PC VER MEJOR PRECIO
Sobremesa compacto 100 MHz / 1 GSa/s 2 canales / 40 kpts Opción económica de 100 MHz con disparo de pulso y medición precisa de retardos mecánicos (pull-in time) VER MEJOR PRECIO

Preguntas frecuentes sobre módulos de relé y reinicios en Arduino/ESP32

¿Por qué se reinicia el Arduino o se borra la pantalla LCD cuando el relé conmuta una bomba o motor?

Al abrirse los contactos mecánicos del relé bajo una carga inductiva (motor, electroválvula o transformador), salta un arco eléctrico interno cuya radiación electromagnética (EMI) se acopla a los cables del microcontrolador. Instala un filtro RC snubber (en cargas AC) o un diodo flyback 1N4007 en antiparalelo (en cargas DC) directamente sobre los bornes de la carga, y usa aislamiento por optoacoplador retirando el jumper JD-VCC.

¿Por qué un relé de 5 V hace un chasquido débil o no se activa con un ESP8266 o ESP32 (3,3 V)?

Porque muchos módulos de relé llevan en serie el LED del optoacoplador (caída de ~1,2 V) más un LED indicador visual (~1,8 V) conectados a 5 V: con una salida GPIO de 3,3 V no circula corriente suficiente para saturar el optoacoplador. Utiliza módulos específicos de 3,3 V o excita la entrada mediante un transistor NPN externo (2N2222 / BC547).

1 comentario en «Tutorial de relés para Arduino, ESP8266 y ESP32»

  1. Buenas tardes, no puedo conectar una placa ESP32 a un modulo de reles de cuatro canales.
    Podrían ayudarme.

    Responder

Deja un comentario