Utilizando un relé en Arduino
Llega un momento en nuestros proyectos en los que que nos gustaría tener la posibilidad de encender y apagar diferentes tipos de dispositivos eléctricos o componentes. Algo así como un interruptor que pueda controlar una serie de leds, encender un aparato de luz, el motor de una persiana, etc.. Ese interruptor tiene el nombre de “relé” y es el que presentamos en esta sesión.
Es muy habitual encontrar instalado un relé en cualquier autómata doméstico como termostatos de calefacción que puedan ser iniciados por internet, iluminación, bombas, etc.. con la particularidad además de que podremos conectar aparatos que funcionen como la red eléctrica, a 220V.
Podemos comprar de 2 o 4 canales por ejemplo para controlar diferentes dispositivos.
Como se puede ver a continuación, el esquema de montaje es sencillo, pero merecen una explicación más detallada la conexión de los polos de carga a los terminales NC y NO. De forma resumida, un interruptor está NO (normalmente abierto) si cuando no se actúa sobre él está abierto, y por lo tanto no permitirá el paso de la corriente hasta que se actúe sobre el. NC (normalmente cerrado) funciona justo al revés: deja pasar la corriente hasta que se actúe sobre el, cerrando el paso.
La primera práctica de montaje que proponemos para probar su funcionamiento es la de encendido de un led en función de si “abrimos” o no el relé. El esquema sería el siguiente:
Donde realizaremos las siguientes conexiones:
Ground y 5V a sus respectivos puertos en Arduino
Señal: el pin digital que estamos utilizando para controlar el relé
Común: a 5V
N.Abierto: conectaremos el cable desde el positivo del led
N.Cerrado: en esta ocasión no conectamos nada. Aquí podríamos poner un segundo led para que cuando el relé no sea accionado.. entonces se encienda este segundo led.
En cuanto al programa, podríamos utilizar el mismo BLINK ya que utiliza la misma instrucción para encender o apagar el relé que para encender o apagar un LED:
int rele=7;
void setup() {
pinMode(rele, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(rele, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(rele, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a secon
}
Una vez hecho una prueba de funcionamiento con un sencillo led, podríamos probar con un foco, que ya trabaja a 220V y que siempre da un poco más de respeto al principio. En el esquema siguiente se puede ver el montaje, que básicamente se trata de conectar la salida que esta normalmente abierta al foco y la otra a la alimentación. Y ya solo faltaría conectar el cable que falta del foco a la alimentación y tendríamos el circuito terminado.
Para hacer algo parecido a un semáforo, podríamos añadir un segundo foco al polo de conexión NC de tal forma que cuando abriéramos el relé se encendería nuestro primer foco y se apagaría después de la pausa, y si está cerrado se encendería la segunda.