Saltar al contenido
GEEKnodes

Electrónica

Cómo usar un relé con Arduino o ESP32: conexión, módulos y seguridad

Qué es un relé, contactos NA, NC y COM, cómo conectarlo a Arduino o ESP32 con transistor y diodo flyback, módulos activos a nivel bajo y seguridad con 230 V.

Un relé permite que un Arduino o un ESP32 encienda una lámpara, una bomba o un calefactor que funcionan a otra tensión, incluso a 230 V. El problema es que no se puede conectar directamente a un pin y que los módulos baratos tienen detalles que confunden a casi todo el mundo. Aquí verás cómo funciona por dentro, cómo conectarlo bien y qué precauciones tomar.

En resumen

  • La bobina de un relé de 5 V consume del orden de 70 mA: hace falta un transistor y un diodo flyback.
  • Casi todos los módulos con optoacoplador son activos a nivel bajo: LOW activa el relé.
  • Con un ESP32 a 3,3 V, un módulo pensado para 5 V puede no apagarse; usa un transistor propio o un módulo compatible con 3,3 V.

Qué es un relé y cómo funciona

Un relé electromecánico es un interruptor movido por un electroimán. Tiene dos partes aisladas entre sí:

  • La bobina: al pasar corriente crea un campo magnético que atrae una pieza metálica (la armadura).
  • Los contactos: la armadura mueve una lámina que cierra o abre el circuito de la carga.

Como la bobina y los contactos no están unidos eléctricamente, una señal de 5 V puede gobernar un circuito de 12 V, 24 V o de red. Ese aislamiento es la gracia del relé.

Contactos COM, NA y NC

Los relés de los módulos para Arduino suelen ser de tipo SPDT (un circuito, dos posiciones) y tienen tres terminales de salida:

TerminalNombreEstado sin alimentar la bobinaEstado con la bobina activada
COMComún——
NA (NO)Normalmente abiertoDesconectado de COMConectado a COM
NCNormalmente cerradoConectado a COMDesconectado de COM

La regla práctica: si quieres que la carga esté apagada cuando el microcontrolador está apagado o se reinicia, usa COM y NA. NC solo tiene sentido cuando la carga debe funcionar por defecto y el relé sirve para cortarla.

Por qué no se conecta directamente a un pin

Un relé típico de 5 V para módulos tiene una bobina de unos 70 Ω, así que consume alrededor de 70 mA (5 V / 70 Ω). Comprueba el valor en la hoja de datos de tu modelo, pero rara vez baja de 50 mA.

En el Arduino Uno, cada pin tiene un máximo absoluto de 40 mA y lo recomendable es no pasar de 20 mA. El ESP32 tampoco está pensado para alimentar cargas de ese tamaño, y además trabaja a 3,3 V, insuficiente para una bobina de 5 V.

Hay un segundo problema: la bobina es una inductancia. Cuando cortas su corriente, genera un pico de tensión inversa que puede superar con facilidad decenas de voltios y destruir el pin o el transistor que la controla.

Conexión con transistor y diodo flyback

Si usas un relé suelto (sin módulo), el circuito mínimo es un transistor NPN en el lado bajo y un diodo en paralelo con la bobina:

   +5 V ───────┬──────────────┐
               │              │
            [BOBINA]      diodo 1N4007
               │          (cátodo a +5 V)
               ├──────────────┘
               │
            colector
  pin ─[R]─ base      (NPN: 2N2222, BC337…)
            emisor
               │
  GND ─────────┴──── GND común con Arduino/ESP32
Esquema: bobina del relé entre +5 V y el colector de un NPN, diodo en paralelo con cátodo a +5 V y resistencia del pin a la base
El NPN da la corriente de la bobina y el diodo en inversa absorbe el pico al apagar

Cálculo de la resistencia de base

Para que el transistor trabaje en saturación se usa una ganancia forzada de 10: la corriente de base será una décima parte de la corriente de la bobina.

  1. Corriente de bobina: 70 mA, por tanto corriente de base de 7 mA.
  2. Con Arduino a 5 V: R = (5 − 0,7) / 0,007 ≈ 614 Ω. Usa 560 Ω.
  3. Con ESP32 a 3,3 V: R = (3,3 − 0,7) / 0,007 ≈ 371 Ω. Usa 330 Ω.

La bobina sigue alimentándose a 5 V; el ESP32 solo controla la base. Por eso este montaje funciona igual de bien con 3,3 V. El BC547 admite 100 mA de colector, muy justo para 70 mA; un 2N2222 o un BC337 dan más margen. Si quieres repasar el cálculo con más detalle, está en la guía del transistor como interruptor.

El diodo de rueda libre (flyback)

El diodo se coloca en paralelo con la bobina y en inversa: cátodo (la banda) hacia +5 V, ánodo hacia el colector. En funcionamiento normal no conduce. Al apagar, la corriente de la bobina circula por él y el pico desaparece. Un 1N4007 o un 1N4148 sirven para relés pequeños.

Módulos de relé con optoacoplador

Los módulos de 1, 2, 4 u 8 canales ya incluyen transistor, diodo y LED indicador. Muchos añaden un optoacoplador (un LED y un fototransistor en el mismo encapsulado) entre el pin IN y el transistor.

Lógica activa a nivel bajo

En la mayoría de estos módulos, el LED del optoacoplador va de VCC al pin IN. Circula corriente cuando IN está a 0 V, así que:

  • digitalWrite(pin, LOW) → relé activado.
  • digitalWrite(pin, HIGH) → relé desactivado.

Para evitar un chasquido al arrancar, escribe el nivel de reposo antes de configurar el pin como salida:

const int PIN_RELE = 7;

void setup() {
  digitalWrite(PIN_RELE, HIGH);  // reposo: relé apagado
  pinMode(PIN_RELE, OUTPUT);
}

void loop() {
  digitalWrite(PIN_RELE, LOW);   // activa el relé
  delay(2000);
  digitalWrite(PIN_RELE, HIGH);  // lo desactiva
  delay(2000);
}

El jumper JD-VCC

Muchos módulos tienen tres pines junto al conector: GND, VCC y JD-VCC, con un jumper que une VCC y JD-VCC.

  • Con el jumper puesto: el optoacoplador y las bobinas comparten alimentación. Es cómodo, pero no hay aislamiento real.
  • Sin el jumper: VCC (desde el Arduino) alimenta solo el LED del optoacoplador, y JD-VCC con su GND reciben una fuente de 5 V separada para las bobinas. Para mantener el aislamiento, no unas ese GND con el del Arduino.

Quitar el jumper es buena idea con varios relés: cuatro bobinas son cerca de 300 mA que ya no salen del regulador de la placa.

Relés de 5 V con ESP32 a 3,3 V

Este es el fallo más consultado. Con el módulo alimentado a 5 V y el ESP32 dando 3,3 V en HIGH, entre VCC e IN quedan unos 1,7 V. Según el módulo, eso basta para mantener encendido el LED del optoacoplador, y el relé no se apaga o queda en un estado dudoso. Además, el pin del ESP32 no es tolerante a 5 V.

Soluciones fiables:

  1. Transistor propio como en el esquema anterior: funciona con 3,3 V sin trucos.
  2. Módulo con jumper JD-VCC: VCC a 3,3 V y JD-VCC a 5 V. Funciona con muchos módulos, pero depende de las resistencias que lleve; pruébalo antes de darlo por bueno.
  3. Módulo compatible con 3,3 V o relé con bobina de 3 V.

Elige bien el pin: evita los pines de arranque del ESP32 (GPIO0, GPIO2, GPIO5, GPIO12, GPIO15) y los de la UART (GPIO1, GPIO3), porque cambian de estado al arrancar. GPIO25, GPIO26, GPIO27, GPIO32 o GPIO33 son opciones seguras en el ESP32 clásico.

Seguridad con 230 V

La tensión de red puede matar. Si no tienes formación en instalaciones eléctricas, quédate en baja tensión (12 o 24 V) o usa un enchufe inteligente homologado.

  • Nunca montes la parte de 230 V en una protoboard ni con cables Dupont.
  • Mete todo en una caja cerrada y aislante, con regletas atornilladas y prensaestopas.
  • Corta la fase, no el neutro, y añade un fusible adecuado a la carga.
  • El «10 A 250 VAC» impreso en el relé es para cargas resistivas. Las pistas de muchos módulos baratos no soportan esa corriente; deja mucho margen.
  • Motores, compresores y fuentes conmutadas tienen picos de arranque muy superiores a su consumo nominal.
  • Desconecta la red antes de tocar nada, aunque el relé esté «abierto».

Relés de estado sólido (SSR)

Un SSR conmuta con semiconductores en lugar de contactos: optoacoplador más triac (para alterna) o MOSFET (para continua).

CaracterísticaRelé electromecánicoRelé de estado sólido
RuidoClic audibleSilencioso
DesgasteContactos con vida limitadaSin piezas móviles
Corriente de controlDecenas de mA (bobina)Pocos mA (LED interno)
Corriente de fuga en reposoNulaAlgunos mA
Caída de tensiónCasi nulaAprox. 1–1,6 V, se calienta
Tipo de cargaAlterna y continuaSolo la indicada (AC o DC)
Conmutación rápida y PWM lentoMalaBuena

Detalles que conviene saber:

  • Un SSR de alterna con paso por cero no sirve para continua: una vez activado, no se apaga.
  • La corriente de fuga puede hacer que una bombilla LED brille débilmente con el SSR apagado.
  • A partir de unos pocos amperios necesita disipador.
  • Muchos SSR aceptan 3–32 V en la entrada, lo que facilita usarlos con ESP32. Comprueba la hoja de datos; hay clones con capacidades exageradas.

Errores habituales

ErrorSíntomaSolución
Relé conectado directamente al pinArduino se reinicia o el pin se dañaTransistor o módulo
Sin diodo flybackReinicios, transistor quemadoDiodo en paralelo con la bobina
Lógica invertidaEl relé está activado cuando debería estar apagadoEl módulo es activo a nivel bajo: HIGH lo apaga
Módulo de 5 V con ESP32El relé no se apagaTransistor propio o JD-VCC a 5 V
Bobinas alimentadas desde el USBReinicios al activar varios relésFuente de 5 V separada
Carga en NC por errorLa carga funciona con el relé apagadoUsa COM y NA
Pin de arranque del ESP32El relé se activa al encenderUsa otro GPIO

Relacionados

Preferencias de accesibilidad

Perfiles rápidos

Texto y lectura

Tamaño del texto
Por defecto
Altura de línea
Por defecto
Espaciado entre letras
Por defecto
Espaciado entre palabras
Por defecto

Color

Movimiento y orientación

Cursor