viernes, 3 de octubre de 2008

ReleShield para Arduino

Este es un proyecto patrocinado por ElectroLabo, distribuidor de Arduino en México


Para las personas que ya están más familiarizadas con el Arduino este proyecto lo pueden encontrar interesante.
Se trata de un prototipo para el Arduino usando un protoshield y algunos otros componentes, la finalidad es simple pero muy útil. ¿Alguna vez has deseado controlar las luces de tu casa desde la computadora? O tal vez algún otro electrodoméstico de la casa. Bueno pues este proyecto va más o menos dirigido a eso. El ReleShield tiene la capacidad de activar/desactivar hasta tres dispositivos al mismo tiempo pero independientemente uno del otro, los cuales requieran estar conectado a la corriente alterna, siendo que el ReleShield es de corriente directa. ¿Cómo lo hace? El relé o relevador (del francés relais, relevo) es un dispositivo electromecánico, que funciona como un interruptor controlado por un circuito eléctrico en el que, por medio de un electroimán, se acciona un juego de uno o varios contactos que permiten abrir o cerrar otros circuitos eléctricos independientes (wikipedia), entonces con las salidas digitales del Arduino podemos controlar varios relés.

Material necesario:

1 placa ProtoShield para Arduino
3 Relés RAS-0510 (puede ser cualquier otro pero tienes que conocer sus especificaciones)
6 terminales dobles
2 sensores LM35 (opcional)
Cable el necesario para soldar y cable plano
Tira de pines (28 aprox)
5 leds (opcional)

Manos a la obra!

Anteriormente ya había hecho un circuito similar donde únicamente conectaba las terminales al relé y a un par de pines para conectarlo al Arduino, por lo tanto ya estoy un poco familiarizado en cuanto a como hay que hacer las conexiones, el funcionamiento y la programación para éstos, por ello hice algo que no tenía que hacer y que fue brincarme un paso. Monté todo como fuera cayendo y no realicé un esquemático previo a armarlo. Así que yo recomiendo altamente que hagan un esquemático para facilitar el trabajo de soldar y evitar cruzar tantos cables. De todas formas hice el mío después de terminarlo, siempre es bueno hacerlo y tenerlo a la mano para futuras referencias.


Bien, ahora empecemos a armar el ReleShield.

Primero soldamos los pines sobre el protoshield para los pines digitales y el power, únicamente.
Aprovechamos para soldar también las terminales en los lados correspondientes como se muestra en la imagen.
Después, montamos los relés, esta parte puede ser un poco difícil ya que la orientación de los pines de los relés no coinciden del todo bien con las perforaciones del protoshield, así que hay que ayudarse de una pinzas de punta para doblar un poco las patitas y lograr meterlos. Como se puede notar en la imagen, existe una separación entre cada componente que hasta ahora hemos colocado, normalmente cualquiera pudiera pensar que lo mejor es ahorrar espacio y posiblemente agregar más componentes, pero la razón de hacerlo de esta forma es porque conforme se va armando el prototipo hay que ir pensando hacia delante, es decir el siguiente paso ha realizar que es hacer todas las conexiones, soldando, por debajo de la placa (preferentemente), y el tener los componentes demasiado cerca puede complicar esa tarea.
Una vez que ya tenemos colocado los tres relés, volteamos la placa y soldamos primero el pin (2) de cada relé que tiene que ir a tierra (cable verde), después conectamos los pines (1) que van del relé a los pines digitales del Arduino (2, 3, 4), finalmente terminamos las demás conexiones de los pines (3, 4, 5) de los relés hacia las terminales, como se ve en el esquemático.


Cabe mencionar que los relevadores que se usaron en este proyecto tienen las siguientes especificaciones: Relevador 1 polo, 2 tiros, bobina de 5 VDC, contactos de 120 VAC/10 Amp., 250 VAC/7 Amp. y/o 24 VDC/10 Amp. (http://www.sunhold.com/ras2.html)
Esto quiere decir que el relevador se conmuta con señales TTL (5v) y que del lado de potencia soporta 120v a 10 amperes, 250v a 7 amperes o 24v a 10amp, prácticamente nos puede servir para casi cualquier electrodoméstico.

Listo!

Hasta este momento ya tenemos la primera parte del ReleShield terminada. Lo cual quiere decir que ya podemos montar sobre el Arduino el ReleShield y hacer las primeras pruebas.
Para hacer una pequeña prueba y ver que todo quedó bien conectado, corremos el siguiente código en el Arduino.
int Re1Pin = 2; //indicamos los pines que se van a usar
int Re2Pin = 3;
int Re3Pin = 4;

void setup(void){ //se configuran como salida para mandar las señales
pinMode(Re1Pin, OUTPUT);
pinMode(Re2Pin, OUTPUT);
pinMode(Re3Pin, OUTPUT);
}

void loop(void){

digitalWrite(Re1Pin, HIGH); //se activa el Relé 1, el 2 y 3 desactivado
digitalWrite(Re2Pin, LOW);
digitalWrite(Re3Pin, LOW);
delay(200);
digitalWrite(Re1Pin, LOW); //se activa el Relé 2, el 1 y 3 desactivado
digitalWrite(Re2Pin, HIGH);
digitalWrite(Re3Pin, LOW);
delay(200);
digitalWrite(Re1Pin, LOW); //se activa el Relé 3, el 1 y 2 desactivado
digitalWrite(Re2Pin, LOW);
digitalWrite(Re3Pin, HIGH);
delay(200);

}
Con este código, se hará que cada relé se active solo por 200 milisegundos uno tras del otro, de esta forma con el multímetro podemos checar que las conexiones en la terminales sean las correctas. Si todo sale lo correcto, entonces ya podemos empezar a usar el ReleShield.

Sin embargo, aun se puede mejorar más el proyecto, en esta segunda parte agregaremos un par de sensores de temperatura LM35 y unos cuantos LEDs. La segunda parte es totalmente opcional, ya que el ReleShield ya está 100% funcional y cumple su objetivo principal. Pero si queremos algo más robusto, agregamos algunos LEDs que nos indiquen alguna parte del proceso en el que se encuentra el Arduino. Y si además queremos hacer un control basado en la temperatura ambiente, ya sea una habitación o un electrodoméstico como un refrigerador, agregamos un sensor de temperatura LM35.

¿Para que poner un sensor de temperatura?

Bueno, la principal razón es para controlar ciertos dispositivos de acuerdo a la temperatura ambiente o artificial. En mi caso fue porque mi refrigerador se descompuso y trabaja sin apagarse, es decir, el termostato no está regulando bien, es por eso que incorporé dos sensores, uno interno (soldado en el ReleShield) y otro externo con una extensión de cable plano para conectarlo al ReleShield y colocarlo en zonas donde no conviene exponer el Arduino y el ReleShield. Igualmente, otras ideas puede ser: activar un ventilador o un aire acondicionado si hace mucho calor, o activar un calentador si hace frio, etc.
Además, el sensor externo se puede quitar y usar cualquier otro sensor que mande señales analógicas.

Finalmente así queda la configuración final:

¿Cómo crees que se pueda mejorar el ReleShield?

2 comentarios:

Vincent dijo...

Hola,

este proyecto me parece muy genial. Espero que vas a poder crear un kit pronto a partir de esta idea.

Me gustaria utlisar tu proyecto para controllar 220v lights desde mi ordenador. Pero, queria tener un "command line" software que se utilisaria asi (con serial communication): ./releshield --relais1 ON --relais2 ON --relais3 OFF.
Intente hacerlo pero tengo el problema de la reinitialisacion del arduino cada vez que inicio la communicacion en seria.

Dejame saber si tienes algunas ideas para ese problema.

saludos,

Vincent (desde Londres, UK).

Mau dijo...

Vincent

thank you very much for your comment.
first of all, my design is kind of dangerous because it need diodes or maybe some darlington-transistor, i'll improve the design soon.
second, yes i can help you, but let me some time, i think a solution with Processing that it can handle serial communication.
Can i get your e-mail? to notice when i have something.
btw, your spanish it's no so bad, well is better than my english hehe