Proyecto 22: Relé de 5V

Descripción
El módulo relé se usa para controlar corrientes o voltajes altos en un circuito. Consiste en una bobina y un contacto. Cuando la bobina se energiza, los contactos se cierran, y entonces el circuito se conecta. Cuando la bobina se apaga, el contacto se desconecta, rompiendo así el circuito.
En este proyecto, controlamos el módulo relé de 5V a través de la placa de desarrollo Arduino, para así realizar el control de encendido y apagado de un circuito o equipo externo. Cuando Arduino emite un nivel alto, el relé se activa y el contacto normalmente abierto se cierra, conectando el circuito externo; cuando Arduino emite un nivel bajo, el relé vuelve a su estado inicial y desconecta el circuito externo.
Hardware
Placa de desarrollo UNO R3 (ch340) x1
Relé de 5V x1
LED x1
Resistencia de 220 ohmios x1
Cables DuPont
Principio de Funcionamiento
En el núcleo de un relé hay un electroimán (una bobina de alambre que se convierte en un imán temporal cuando pasa electricidad por ella). Un relé puede considerarse como una palanca eléctrica; se activa con una corriente relativamente pequeña, y activa otro dispositivo con una corriente mucho mayor.
Fundamentos del Relé
Aquí hay una pequeña animación que muestra cómo un relé conecta dos circuitos juntos.
Para ilustrar, piensa en dos circuitos simples: uno con un electroimán y un interruptor o sensor, y el otro con un interruptor magnético y una bombilla.
Inicialmente, ambos circuitos están abiertos, sin corriente fluyendo por ellos.
Cuando una pequeña corriente fluye por el primer circuito, el electroimán se energiza, creando un campo magnético a su alrededor. El electroimán energizado atrae el contacto del segundo circuito, cerrando el interruptor y permitiendo que fluya una corriente grande.
Cuando la corriente en el primer circuito deja de fluir, el contacto vuelve a su posición original, reabriendo el segundo circuito.
Especificaciones
Voltaje de alimentación – 3.3V a 5V
Corriente en reposo: 2mA
Corriente cuando el relé está activo: ~70mA
Voltaje máximo de contacto del relé – 250VAC o 30VDC
Corriente máxima del relé – 10A
Pinout

GND es el pin de tierra común.
El pin VCC suministra energía al módulo.
S se usa para controlar el relé. Este es un pin activo bajo, lo que significa que llevarlo a LOW activa el relé y llevarlo a HIGH lo desactiva.
Terminales de salida:
El terminal COM se conecta al dispositivo que deseas controlar.
El terminal NC está normalmente conectado al terminal COM, a menos que actives el relé, lo que rompe la conexión.
El terminal NO está normalmente abierto, a menos que actives el relé, que lo conecta al terminal COM.
Diagrama de Conexiones
1. Conecta el pin VCC del relé al 5V del Arduino
2. Conecta el pin GND del relé al GND del Arduino
3. Conecta el pin S del relé al pin digital D3 del Arduino
4. Conecta un circuito o dispositivo externo a los contactos normalmente abiertos y común del relé
Las conexiones de alto voltaje pueden hacerse a este terminal de tornillo. Por ejemplo: bombilla, ventilador de techo, etc. Pero en este proyecto solo usamos un LED.
Cuando haces la conexión entre a) y b), el LED conectado está siempre ENCENDIDO hasta que recibe una señal del Arduino para apagarlo.
Cuando haces la conexión entre b) y c), el LED conectado está APAGADO hasta que recibe una señal del Arduino para encenderlo.

Código de Ejemplo
/*
Electronics Learning Starter Kit for Arduino
Project 22
5V Relay
Edit By Keyes
*/
const int relayPin = 3; // set relay pin
void setup() {
pinMode(relayPin, OUTPUT); // set pin to output
}
void loop() {
digitalWrite(relayPin, HIGH); // output high to trigger the relay
delay(1000); // delay 1s
digitalWrite(relayPin, LOW); //output low to disable the relay
delay(1000); // delay 1s
}
Explicación del Código
Primero, comencemos con la primera línea del código:
const int relayPin = 3; // set relay pin
Esta línea define una constante llamada relayPin y le asigna el valor 3. En Arduino, const int se usa para definir una constante entera, lo que significa que una vez asignada, relayPin no puede cambiarse durante la ejecución del programa. El número 3 aquí indica que el relé está conectado al pin digital I/O 3 en la placa Arduino.
Luego está la función setup():
void setup() {
pinMode(relayPin, OUTPUT); // set pin to output
}
La función setup() es una parte obligatoria de cada programa Arduino. Se ejecuta solo una vez y se usa para la inicialización. En esta función, llamamos a pinMode(), que es una función incorporada en el lenguaje Arduino usada para configurar el modo de un pin específico. La función pinMode() toma dos parámetros: el número de pin y el modo. Aquí, configuramos el modo de relayPin (es decir, el pin digital 3) como OUTPUT, lo que significa que este pin se usará como salida para enviar voltaje.
Luego viene la función loop():
void loop() {
digitalWrite(relayPin, HIGH); // output high to trigger the relay
delay(1000); // delay 1s
digitalWrite(relayPin, LOW); //output low to disable the relay
delay(1000); // delay 1s
}
La función loop() es el núcleo del programa Arduino. Se ejecuta repetidamente después de que la placa Arduino se enciende. En esta función, usamos la función digitalWrite() para controlar el relé. La función digitalWrite() también toma dos parámetros: el número de pin y el estado (HIGH o LOW). Primero, configuramos relayPin a HIGH, lo que envía un voltaje de 5V al relé, activándolo para que se cierre. Luego, el programa se pausa durante 1000 milisegundos (es decir, 1 segundo) usando delay(1000);, para que el relé permanezca cerrado un tiempo.
Después de eso, digitalWrite(relayPin, LOW); configura el estado del pin a LOW, cortando el suministro de voltaje al relé, lo que hace que vuelva al estado abierto. La función delay(1000); se llama nuevamente para pausar el programa por 1 segundo, y luego este ciclo comienza de nuevo.
Resultado del Proyecto
Después de subir el código, el relé cambia su estado (encendido o apagado) cada segundo. Cuando el relé está encendido, NO se conecta a COM y el circuito externo se cierra. Cuando el relé está apagado, NO se desconecta de COM y el circuito se abre.
