.. note:: ¡Hola! Bienvenido a la comunidad de entusiastas de SunFounder para Raspberry Pi, Arduino y ESP32 en Facebook. Únete para profundizar en Raspberry Pi, Arduino y ESP32 junto a otros apasionados. **¿Por qué unirse?** - **Soporte de expertos**: Resuelve problemas postventa y desafíos técnicos con la ayuda de nuestra comunidad y equipo. - **Aprender y compartir**: Intercambia consejos y tutoriales para mejorar tus habilidades. - **Acceso exclusivo**: Obtén primicias sobre nuevos productos y adelantos. - **Descuentos especiales**: Disfruta de descuentos exclusivos en nuestros productos más recientes. - **Promociones festivas y sorteos**: Participa en sorteos y promociones de temporada. 👉 ¿Listo para explorar y crear con nosotros? Haz clic en [|link_sf_facebook|] y únete hoy mismo. 1.3.4 Relé ============ Introducción --------------- En esta lección, aprenderemos a utilizar un relé. Es uno de los componentes comúnmente usados en sistemas de control automático. Cuando el voltaje, corriente, temperatura, presión, etc., alcanza, supera o se encuentra por debajo de un valor predeterminado, el relé conectará o interrumpirá el circuito para controlar y proteger el equipo. Componentes -------------- .. image:: img/list_1.3.4.png Principio ------------ **Diodo** Un diodo es un componente electrónico de dos terminales que permite el flujo de corriente en una sola dirección. Ofrece baja resistencia en la dirección de flujo de corriente y alta resistencia en la dirección opuesta. Los diodos se utilizan principalmente para prevenir daños a componentes, especialmente debido a fuerzas electromotrices en circuitos polarizados. .. image:: img/image344.png Los dos terminales de un diodo están polarizados, con el extremo positivo denominado ánodo y el extremo negativo denominado cátodo. El cátodo suele estar marcado con una banda de color o en plata. Controlar la dirección del flujo de corriente es una de las características clave de los diodos: la corriente en un diodo fluye del ánodo al cátodo. El comportamiento de un diodo es similar al de una válvula de retención. Una de las características más importantes de un diodo es su voltaje de corriente no lineal. Si se conecta un voltaje mayor al ánodo, entonces la corriente fluye del ánodo al cátodo; a este proceso se le conoce como polarización directa. Sin embargo, si el voltaje mayor se conecta al cátodo, el diodo no conduce electricidad, y el proceso se llama polarización inversa. **Relé** Como sabemos, el relé es un dispositivo utilizado para proporcionar conexión entre dos o más puntos o dispositivos en respuesta a la señal de entrada aplicada. En otras palabras, los relés proporcionan aislamiento entre el controlador y el dispositivo, ya que los dispositivos pueden funcionar tanto en CA como en CC. Sin embargo, reciben señales de un microcontrolador que funciona en CC, por lo que se requiere un relé para cerrar esa brecha. El relé es extremadamente útil cuando se necesita controlar una gran cantidad de corriente o voltaje con una señal eléctrica pequeña. Un relé tiene 5 partes: **Electroimán** - Consiste en un núcleo de hierro envuelto en una bobina de alambre. Cuando pasa electricidad, se vuelve magnético, por lo que se le llama electroimán. **Armadura** - La tira magnética móvil se conoce como armadura. Cuando la corriente fluye a través de ella, la bobina se energiza, produciendo un campo magnético que se utiliza para abrir o cerrar los puntos normalmente abiertos (N/O) o normalmente cerrados (N/C). La armadura puede ser accionada tanto por corriente continua (CC) como por corriente alterna (CA). **Resorte** - Cuando no hay corriente en la bobina del electroimán, el resorte aleja la armadura, evitando que el circuito se complete. Conjunto de **contactos eléctricos** - Existen dos puntos de contacto: - Normalmente abierto: conectado cuando el relé está activado, y desconectado cuando está inactivo. - Normalmente cerrado: no conectado cuando el relé está activado, y conectado cuando está inactivo. **Marco moldeado** - Los relés están cubiertos con plástico para protección. **Funcionamiento del Relé** El principio de funcionamiento del relé es sencillo. Cuando se alimenta el relé, la corriente comienza a fluir a través de la bobina de control; como resultado, el electroimán se energiza. Entonces, la armadura es atraída hacia la bobina, uniendo el contacto móvil con los contactos normalmente abiertos, energizando el circuito de carga. Para interrumpir el circuito, el contacto móvil se mueve hacia los contactos normalmente cerrados por la fuerza del resorte. De esta forma, el encendido y apagado del relé puede controlar el estado de un circuito de carga. .. image:: img/image142.jpeg Diagrama Esquemático --------------------------- .. image:: img/image345.png Procedimientos Experimentales --------------------------------- **Paso 1:** Construye el circuito. .. image:: img/image144.png :width: 800 Para Usuarios de Lenguaje C ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **Paso 2**: Abre el archivo de código. .. raw:: html .. code-block:: cd ~/davinci-kit-for-raspberry-pi/c/1.3.4 **Paso 3:** Compila el código. .. raw:: html .. code-block:: gcc 1.3.4_Relay.c -lwiringPi **Paso 4:** Ejecuta el archivo compilado. .. raw:: html .. code-block:: sudo ./a.out Después de ejecutar el código, el LED se encenderá. Además, puedes escuchar un "tic-tac" causado por la apertura del contacto normalmente cerrado y el cierre del contacto normalmente abierto. .. note:: Si no funciona después de ejecutarlo, o aparece un mensaje de error: "wiringPi.h: No such file or directory", consulta :ref:`faq_c_nowork`. **Código** .. code-block:: c #include #include #define RelayPin 0 int main(void){ if(wiringPiSetup() == -1){ //si la inicialización de wiring falla, imprime mensaje en pantalla printf("setup wiringPi failed !"); return 1; } pinMode(RelayPin, OUTPUT); //configura GPIO17 (GPIO0) como salida while(1){ // Tick printf("Relay Open......\n"); delay(100); digitalWrite(RelayPin, LOW); delay(1000); // Tock printf("......Relay Close\n"); delay(100); digitalWrite(RelayPin, HIGH); delay(1000); } return 0; } **Explicación del Código** .. code-block:: c digitalWrite(RelayPin, LOW); Configura el puerto I/O a nivel bajo (0V), por lo que el transistor no se energiza y la bobina no recibe energía. No hay fuerza electromagnética, por lo que el relé se abre y el LED no se enciende. .. code-block:: c digitalWrite(RelayPin, HIGH); Configura el puerto I/O a nivel alto (5V) para energizar el transistor. La bobina del relé recibe energía y genera fuerza electromagnética; el relé se cierra y el LED se enciende. Para Usuarios de Lenguaje Python ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **Paso 2:** Abre el archivo de código. .. raw:: html .. code-block:: cd ~/davinci-kit-for-raspberry-pi/python **Paso 3:** Ejecuta. .. raw:: html .. code-block:: sudo python3 1.3.4_Relay.py Mientras el código se ejecuta, el LED se enciende. Además, puedes escuchar un "tic-tac" causado por la apertura del contacto normalmente cerrado y el cierre del contacto normalmente abierto. **Código** .. note:: Puedes **Modificar/Restablecer/Copiar/Ejecutar/Detener** el código a continuación. Antes de eso, necesitas dirigirte a la ruta del código fuente como ``davinci-kit-for-raspberry-pi/python``. .. raw:: html .. code-block:: python import RPi.GPIO as GPIO import time # Configurar GPIO17 como pin de control relayPin = 17 # Definir una función de configuración inicial def setup(): # Configurar los modos de GPIO al sistema de numeración BCM GPIO.setmode(GPIO.BCM) # Configurar el modo de relayPin a salida, # y el nivel inicial en alto (3.3V) GPIO.setup(relayPin, GPIO.OUT, initial=GPIO.HIGH) # Definir la función principal para el proceso principal def main(): while True: print ('Relay open...') # Tick GPIO.output(relayPin, GPIO.LOW) time.sleep(1) print ('...Relay close') # Tock GPIO.output(relayPin, GPIO.HIGH) time.sleep(1) # Definir una función destroy para limpiar todo al # terminar el script def destroy(): # Apagar el LED GPIO.output(relayPin, GPIO.HIGH) # Liberar recursos GPIO.cleanup() # Si ejecutas este script directamente, haz: if __name__ == '__main__': setup() try: main() # Cuando se presiona 'Ctrl+C', el programa secundario # destroy() se ejecutará. except KeyboardInterrupt: destroy() **Explicación del Código** .. code-block:: python GPIO.output(relayPin, GPIO.LOW) Configura los pines del transistor a nivel bajo para abrir el relé, y el LED no se enciende. .. code-block:: python time.sleep(1) Espera durante 1 segundo. .. code-block:: python GPIO.output(relayPin, GPIO.HIGH) Configura los pines del transistor a nivel alto para activar el relé; el LED se enciende. Imagen del Fenómeno ------------------------ .. image:: img/image145.jpeg