Por qué el módulo relé es la pieza puente

La Raspberry Pi Pico (igual que el ESP32, Arduino, etc.) trabaja con 3.3 V y unos pocos miliamperes por GPIO. Conectarle directamente una lámpara, una bomba de agua o cualquier cosa que enchufes al muro es directamente un puente al cementerio del microcontrolador. El relé es el componente que rompe esa brecha eléctrica: el lado de bajo voltaje recibe la orden del GPIO (3.3 V, microamperes), y eso mueve un electroimán que cierra/abre un contacto físico capaz de manejar corriente alta. 10 A a 250 V AC, típicamente.

Si dominaste prender un LED con la Pico (Pin.value(1)), ya sabes programar un relé. El control desde código es idéntico: HIGH para activar, LOW para desactivar. La complejidad real está en el circuito de potencia y la seguridad eléctrica del lado caliente del relé, no en el firmware.

Lo que vas a saber al final:

  • Cómo leer el pinout de un módulo relé típico (1, 2, 4 u 8 canales)
  • La diferencia entre conexión Normally Open (NO) y Normally Closed (NC), y cuándo usar cada una
  • Cómo cablear el módulo a la Pi Pico y a una carga DC de 12 V
  • Cómo controlar el relé con MicroPython desde un loop básico
  • Cómo extender el proyecto a un sistema de riego automatizado con MQTT (sección de variantes)

Raspberry Pi Pico controlando un módulo relé con MicroPython

Anatomía del módulo relé

Un módulo relé comercial chino (que es lo que vas a encontrar en cualquier tienda de electrónica) ya integra todo lo necesario: el relé mecánico, un transistor de driver, un optoacoplador para aislar el microcontrolador, un LED indicador y diodos flyback para proteger contra el back EMF del electroimán. Tú solo tienes que conectar las señales correctas.

Módulos relé de 1, 2 y 8 canales para microcontroladores

Los módulos vienen en 1, 2, 4, 8 o hasta 16 canales. el número de relés independientes que puedes controlar. Para este tutorial nos basta uno de 1 o 2 canales. Si vas a controlar varias luces o varios circuitos por separado, sumas canales.

Lado de alta tensión: NO, COM, NC

Conexiones de alta tensión del módulo relé: NO, COM, NC

Cada canal del relé tiene tres bornes de tornillo:

  • COM (Común): el borne central. Aquí llega la corriente que querés conmutar.
  • NC (Normally Closed): por defecto está conectado al COM. Cuando le mandás señal HIGH al IN, se DESCONECTA del COM. Útil para circuitos que querés que estén encendidos por defecto (ej. luz de seguridad nocturna que se apague solo cuando algo activa el relé).
  • NO (Normally Open): por defecto está DESCONECTADO del COM. Cuando le mandás señal HIGH (o LOW, según el módulo), se CONECTA. Es la configuración típica para "encender algo on demand": bomba de agua, lámpara, ventilador.

En este tutorial usamos NO porque queremos que la lámpara esté apagada por defecto y solo se prenda cuando la Pico decida.

Lado de baja tensión: pines de control

Pines de control del módulo relé: VCC, GND, IN1, IN2

  • VCC: alimentación del módulo. Típicamente 5 V (el VBUS de la Pico al USB), aunque hay módulos 3.3 V (3V3(OUT) de la Pico).
  • GND: tierra común con la Pico.
  • IN1, IN2, ...: una entrada por canal. Aquí va el GPIO de la Pico que controla ese relé.

Lógica de los pines IN: la mayoría de los módulos comerciales son "active LOW" (el relé se activa con señal LOW). Otros son "active HIGH". Lo descubres rápido: si al hacer Pin.value(1) el LED del módulo NO se enciende y al Pin.value(0) sí, es active LOW. invierte la lógica en tu código.

Configuración del jumper VCC/JD VCC

Selector de alimentación del módulo: VCC vs JD VCC con jumper

Los módulos buenos tienen un jumper (capucha amarilla normalmente) que une los pines VCC y JD VCC. Con el jumper puesto, el electroimán se alimenta del mismo VCC que la lógica. más simple, pero NO hay aislamiento galvánico real entre la Pico y el relé.

Si lo sacas y alimentas JD VCC con una fuente independiente (otra fuente 5 V dedicada), el optoacoplador aísla físicamente la Pico del circuito del electroimán. Recomendado para cualquier proyecto que controle red eléctrica.

Hardware necesario

  • Raspberry Pi Pico (Pico W, Pico 2 o Pico 2 W. todas funcionan)
  • Módulo Relé 5 V de 1 o 2 canales con optoacoplador
  • Lámpara LED 12 V o bomba DC 12 V (la carga de prueba)
  • Fuente DC 12 V o adaptador a jack DC para alimentar la carga
  • Cables Dupont (jumpers macho hembra) para conectar Pico ↔ módulo relé
  • Cable Micro USB para programar la Pico desde el PC

⚠️ Aviso de seguridad: si vas a controlar 220 V AC (la red eléctrica chilena), hazlo bajo supervisión de alguien con experiencia eléctrica. Para el tutorial usamos 12 V DC porque es educacionalmente más seguro y muestra el mismo principio. NO conectes ni desconectes nada del lado de alta tensión con el circuito energizado.

Paso 1: Firmware MicroPython en la Pico

Necesitas tener MicroPython flasheado en la Pico y Thonny IDE instalado en tu PC. Si nunca lo hiciste:

  1. Descarga el firmware MicroPython más reciente para tu modelo desde micropython.org/download/RPI_PICO (o Pico 2 si corresponde).
  2. Aprieta el botón BOOTSEL de la Pico mientras la conectas al USB.
  3. Aparece como una pendrive llamada RPI RP2. Arrastra el archivo .uf2 descargado adentro.
  4. La Pico se reinicia con MicroPython corriendo.
  5. Abre Thonny → menú Run → Configure Interpreter → "MicroPython (Raspberry Pi Pico)" → puerto USB.

Paso 2: Cableado

Diagrama de cableado: Pi Pico controlando lámpara 12V vía relé

Lado de baja tensión (Pico → módulo relé):

  • Relé IN1 → Pico GPIO 0
  • Relé GND → Pico GND
  • Relé VCC → Pico VBUS (5 V cuando la Pico está enchufada por USB)

Si tu módulo es 3.3 V, conecta VCC al pin 3V3(OUT) de la Pico en vez de VBUS.

Lado de alta tensión (carga + fuente 12 V):

Cableado completo: Pi Pico + módulo relé + fuente 12V + lámpara

  • Borne (+) del jack DC 12 V → relé COM
  • Relé NO → terminal 1 de la lámpara
  • Terminal 2 de la lámpara → borne (-) del jack DC 12 V

Resultado: cuando el relé está abierto (LOW si es active LOW), no fluye corriente. Cuando el relé cierra el contacto NO COM, la lámpara prende.

Paso 3: Código MicroPython

Este script enciende el relé 10 segundos, lo apaga 10 segundos y repite. Es la versión mínima para probar que el hardware funciona; en la sección de variantes lo extendemos a algo útil de verdad.

Python
# Rui Santos & Sara Santos - Random Nerd Tutorials
# Complete project details at https://RandomNerdTutorials.com/raspberry-pi-pico-relay-micropython/

from machine import Pin
from time import sleep

relay = Pin(0, Pin.OUT)

while True:
    relay.value(1)
    sleep(10)
    relay.value(0)
    sleep(10)

Sube el archivo a la Pico (Save As → MicroPython device → main.py) y reinicia. La lámpara debería empezar a parpadear cada 10 segundos.

Qué hace el código línea a línea

Python
from machine import Pin
from time import sleep

machine es el módulo de MicroPython para hablar con periféricos del SoC. Pin controla los GPIOs. sleep pausa la ejecución.

Python
relay = Pin(0, Pin.OUT)

Configuramos GPIO 0 como salida. Esa misma línea controlando un LED en vez del relé sería idéntica. el código no se entera de qué hay del otro lado.

Python
while True:
    relay.value(1)   # activa el relé (o lo desactiva si tu módulo es active LOW)
    sleep(10)
    relay.value(0)
    sleep(10)

Si el LED del módulo prende cuando value(1) y apaga cuando value(0), tu relé es active HIGH y el código funciona literal. Si es al revés, invierte (relay.value(0) para activar, relay.value(1) para apagar).

Variantes y mejoras

El loop básico cumple para validar el hardware, pero un relé que parpadea cada 10 s no resuelve nada útil. Estas extensiones convierten el proyecto en algo que puedes dejar montado en serio:

  1. Sistema de riego automatizado con timer + bomba (re angulación principal de este tutorial): reemplaza la lámpara 12 V por una bomba sumergible 12 V dentro de un balde con agua, dirigida a una maceta. Usa un timer real con el RTC interno de la Pico para activar la bomba 5 minutos cada mañana a las 7:00. por ejemplo. Combinas el relé con un sensor de humedad de suelo capacitivo y solo riegas si la humedad está bajo cierto umbral.

    Pseudocódigo:

    Python
    if humedad_suelo() < UMBRAL_SECO:
        relay.value(1)
        sleep(300)  # 5 minutos
        relay.value(0)
    
  2. Publicación por MQTT a Home Assistant: usando la Pico W o Pico 2 W (con WiFi nativo), publica el estado del relé a un broker MQTT. Te quedan dos cosas: control remoto desde Home Assistant ("¿está prendida la luz del jardín ahora mismo?") y triggers automáticos ("cuando llueve afuera, no riegues mañana"). La librería umqtt.simple viene con MicroPython.

  3. Pulsador físico local + control remoto: agrega un botón push en GPIO 1 para que puedas activar/desactivar el relé manualmente sin pasar por el celular. Con esto el sistema sigue siendo usable aunque caiga el WiFi.

  4. Alimentación 100% solar: para uso en jardín o terraza sin enchufe cercano, un panel solar 6 V 1 W + módulo TP4056 + batería 18650 alimenta la Pico W y el módulo relé. La bomba 12 V necesita su propia fuente o batería más grande.

Personalización para Chile

Componentes disponibles en MechatronicStore (busca por estos nombres):

  • Raspberry Pi Pico W o Raspberry Pi Pico 2 W. recomiendo W (con WiFi) para que después puedas conectarlo a Home Assistant o MQTT
  • Módulo Relé 5V de 2 canales con optoacoplador. el dual te deja extender a una segunda salida sin volver a comprar nada
  • Cable USB-A a Micro USB. para programar la Pico
  • Cables Dupont macho hembra 20cm. para Pico ↔ módulo relé
  • Bornera de 2 pines 5mm o jack DC hembra. para conectar la fuente 12 V de forma prolija
  • Protoboard 830 puntos. opcional, para prototipar antes de soldar en perma protoboard

No vendido en catálogo (consíguelo aparte): fuente DC 12 V (en electrónica casera basta una vieja fuente de router) y la lámpara LED 12 V o bomba 12 V según tu caso.

Equivalencias respecto al tutorial original: Random Nerd usa la Pi Pico básica (sin WiFi). Para los upgrades de MQTT/Home Assistant que sugerimos en variantes, vas a querer Pico W o Pico 2 W. la diferencia de costo es mínima y vale la pena.

Recursos

Versión chilena con componentes en stock local en MechatronicStore, basada en el tutorial original de Random Nerd Tutorials.