Nota
¡Hola! Bienvenido a la Comunidad de Entusiastas de SunFounder para Raspberry Pi, Arduino y ESP32 en Facebook. Sumérgete en el mundo de Raspberry Pi, Arduino y ESP32 junto a otros entusiastas.
¿Por qué unirse?
Soporte Experto: Resuelve problemas postventa y desafíos técnicos con la ayuda de nuestra comunidad y equipo.
Aprende y Comparte: Intercambia consejos y tutoriales para mejorar tus habilidades.
Avances Exclusivos: Accede anticipadamente a anuncios de nuevos productos y adelantos exclusivos.
Descuentos Especiales: Aprovecha descuentos exclusivos en nuestros productos más recientes.
Promociones Festivas y Sorteos: Participa en sorteos y promociones especiales.
👉 ¿Listo para explorar y crear con nosotros? Haz clic en [Aquí] y únete hoy mismo.
1.3.4 Relé
Introducción
En este proyecto, aprenderemos a utilizar un relé, uno de los componentes más comunes en los sistemas de control automático. Cuando la tensión, corriente, temperatura, presión, etc., alcanza, supera o está por debajo de un valor predeterminado, el relé conecta o interrumpe el circuito para controlar y proteger el equipo.
Componentes Necesarios
En este proyecto, necesitamos los siguientes componentes.

Diagrama de Conexiones

Procedimientos del Experimento
Paso 1: Construye el circuito.

Paso 2: Abre el archivo de código.
cd ~/davinci-kit-for-raspberry-pi/python-pi5
Paso 3: Ejecuta el código.
sudo python3 1.3.4_Relay.py
Al ejecutar el código, el LED se encenderá. Además, podrás escuchar un tic-tac producido por la apertura del contacto normalmente cerrado y el cierre del contacto normalmente abierto.
Advertencia
Si aparece el mensaje de error RuntimeError: Cannot determine SOC peripheral base address
, consulta Si gpiozero no funciona.
Código
Nota
Puedes Modificar/Restablecer/Copiar/Ejecutar/Detener el código a continuación. Antes de eso, asegúrate de estar en la ruta del código fuente, como davinci-kit-for-raspberry-pi/python-pi5
. Después de modificar el código, puedes ejecutarlo directamente para ver el efecto.
#!/usr/bin/env python3
from gpiozero import OutputDevice # Importa la clase para controlar pines GPIO
from time import sleep # Importa la función sleep para añadir retardo
# Inicializa el relé conectado al pin GPIO 17
relay = OutputDevice(17)
try:
# Bucle para alternar continuamente el estado del relé cada segundo
while True:
print('Relay open...') # Informa que el relé está activado
relay.on() # Enciende el relé (suponiendo configuración activa baja)
sleep(1) # Mantén el relé encendido durante 1 segundo
print('...Relay close') # Informa que el relé está desactivado
relay.off() # Apaga el relé
sleep(1) # Mantén el relé apagado durante 1 segundo
except KeyboardInterrupt:
# Maneja una interrupción de teclado (Ctrl+C) para salir del bucle
relay.off() # Asegura que el relé esté apagado antes de salir
pass
Explicación del Código
Se importan
OutputDevice
degpiozero
para el control de pines GPIO ysleep
detime
para añadir retardos.#!/usr/bin/env python3 from gpiozero import OutputDevice # Importa la clase para controlar pines GPIO from time import sleep # Importa la función sleep para añadir retardo
Inicializa un objeto
OutputDevice
para el relé conectado al pin GPIO 17.# Inicializa el relé conectado al pin GPIO 17 relay = OutputDevice(17)
Dentro del bloque
try
, un buclewhile True
alterna continuamente el estado del relé. El relé se enciende y apaga con un retardo de 1 segundo entre cada estado, acompañado de mensajes en la consola.try: # Bucle para alternar continuamente el estado del relé cada segundo while True: print('Relay open...') # Informa que el relé está activado relay.on() # Enciende el relé (suponiendo configuración activa baja) sleep(1) # Mantén el relé encendido durante 1 segundo print('...Relay close') # Informa que el relé está desactivado relay.off() # Apaga el relé sleep(1) # Mantén el relé apagado durante 1 segundo
Captura una interrupción de teclado (como Ctrl+C) para permitir una finalización del script de forma segura. El relé se apaga antes de salir del script.
except KeyboardInterrupt: # Maneja una interrupción de teclado (Ctrl+C) para salir del bucle relay.off() # Asegura que el relé esté apagado antes de salir pass