jueves, 1 de octubre de 2015

Activación de una lámpara de 220V con Arduino



En esta primera parte vamos a explicar cómo conmutar una lámpara, o cualquier otro pequeño electrodoméstico enchufado a la red eléctrica de nuestra casa, gracias a las ordenes suministrada por nuestro Arduino, para luego poder hacerlo de forma remota a través de Internet.

Para eso vamos a necesitar 
  • nuestro Arduino, la versión que tengáis más a mano, 
  • un relé de 5V y 220V, 
  • diodo 1N4001 (o equivalente) 
  • una resistencia de 2,2K (de cualquier tolerancia y potencia), 
  • un transistor del tipo BC546, 547, 548 o 550, y 
  • una lámpara a la que podáis cortar el cable de alimentación.


Si no sabéis o no recordáis, qué es cada cosa, marcar sobre lo que tengáis dudas y saltareis a la entrada donde explicábamos los detalles de cada

Vamos a hacerlo por partes para que entendamos mejor la contribución de cada componente en el proyecto.

1.- ENCEDER UN LED

Como ya vimos en nuestra entrada ¡Hola! con un simple PIN digital podemos hacer que Arduino encienda y apague un LED sin mucha dificultad.


Esto lo podemos conseguir, porque el LED consume muy poca corriente y los pines digitales del Arduino es capaz de suministrar la potencia requerida. 


2.- ENCEDER UNA LÁMPARA

Pero ¿qué sucede si en lugar de un LED, que funciona normalmente en el rango 1,8V-3V, quisiéramos hacer funcionar una lámpara de 100W? Pues bien en este caso el sistema sería el equivalente a lo que sucede para mover un ascensor.

Todos sabemos que un ascensor pesa mucho, pero sin embargo cualquier tiene fuerza para hacerlo mover, ¿por qué? Porque con la fuerza de nuestro dedo, accionamos un mecanismo que haciendo uso de energía externa, acciona un motor con la suficiente potencia como para realizar la operación deseada.

Pues bien, nuestro Arduino necesita hacer lo mismo que nosotros, primero necesita un interruptor que pueda accionar y no se electrocute en el intento, esta será la función del relé, y además necesitará una instalación eléctrica independiente que tenga la tensión requerida por encender la lámpara que hemos seleccionado.





¿A que parece sencillo? Pues sí que lo es, solo nos quedaría pulir algunos detalles.


DETALLE 1 - Energía de activación

Aunque parezca poca cosa, para apretar el botón del ascensor, hay que hacer cierta fuerza. Algunas veces basta con apoyar el dedo, pero en los montacargas viejos, era común encontrarse con botones bien duros. Pues bien, lo primero que tenemos que ver es qué fuerza hace falta para accionar este mecanismo que hemos puesto.

Como decíamos en la entrada asociada al funcionamiento del relé, un relé no es más que una electroimán xxx que se magnetiza al paso de una corriente y acciona el mecanismo seleccionado.

Pues es justo eso lo que tenemos que ver en la hoja de datos de nuestro relé, cual es la corriente que debe fluir por el bobinado del relé para que pueda hacer accionar el mecanismo.


Si miramos en la hoja de datos del relé que hemos escogido para nuestro proyecto veremos que:



Y esto ¿qué significa?, pues que para imantar el electroimán de nuestro relé, necesitamos una corriente de 72mA, y ahí está el primer problemilla.  Si nuestro Arduino solo entrega una corriente de 40mA máximo por PIN, ¿de dónde voy a sacar más energía?.

Aquí es donde tenemos que recordar lo que aprendimos en la entrada que hicimos sobre los transistores. Si recordáis, ahí lo que explicábamos es que un transistor es un componente que actúa como la llave de un grifo, y que permite con un flujo pequeño de corriente gestionar una corriente mucho más alta


¿y cuánta más corriente es capaz de suministrar? Pues depende del transistor.

Recordemos que la definición del parámetro ganancia de un transistor venía definido por



Por lo que para que podamos gestionar una corriente de colector de 70mA mínimo, teniendo en cuenta que la corriente de base sería la corriente máxima que podría suministrar nuestro Arduino, esto es 40mA, necesitaríamos un transistor al menos con una ganancia de 2. Y esto hoy en día no es un problema, como podemos ver más abajo podemos tener transistores con ganancias de más de 300. Pero como no necesitamos tanta corriente con cualquier transistor que pueda trabajar a 5voltios (VCE) nos podría valer. A continuación os pongo alguno de los candidatos que hemos seleccionado para que veáis como identificar en la hoja de datos del componente este parámetro




Entonces ¿cómo quedaría nuestro circuito original?

Pues de la siguiente manera:




Ahora sí que disponemos de corriente suficiente, bueno en verdad de demasiada.

Si la ganancia del transistor es de 100, estaríamos forzando a pasar una corriente de 70mA (la que requiere la bobina) x 100, o lo que es lo mismo de 7 Amperios. Suficiente para fundir todo nuestro proyecto en un instante. ¿Cómo lo resolvemos? Pues limitando la corriente en la base, y ¿cómo lo hacemos? Pues poniéndole una resistencia, y ¿de qué valor? Pues eso lo tendremos que calcular.


DETALLE 2 - Limitación de la corriente 

Más adelante, presentaremos algunas herramientas de simulación de circuitos con las que podremos tomar este tipo de decisiones basados en los resultados que nos aportan la aplicación. Ver ejemplo a continuación cómo es la propia aplicación la que una vez propuesto los componentes que vamos a usar en nuestro proyecto, no dice los niveles de corriente que vamos a obtener.



Pero como por ahora no tenemos todavía instalada ninguna herramienta de simulación, lo mejor es seguir el principio de prudencia, y empezar probando con valores de resistencias altas y hacer uso del multímetro para calcular la corriente generada. Recomiendo tener a mano un kit de resistencias de distintos valores para poder ir montando y desmontando hasta encontrar la adecuada, o bien un kit de resistencias configurables como el que presentaba en la entrada xxx.

Hecho esto, ya tenemos resuelto el problema de la energía necesaria para accionar el electroimán de la resistencia, y la “sintonización” de la corriente ajustando la resistencia de la base del transistor que hemos usado. Ahora cada vez que nuestro Arduino mande un pulso, se accionará el relé, que cerrará el circuito que alimenta la lámpara. Pero ¿qué pasa si por alguna razón nuestro Arduino manda la señal pero el relé no actúa?


DETALLE 3 - LED de control de señal

Lo primero que tenemos que ver es si le llega tensión al relé, si no le llega es que por la razón que sea el Arduino no está generando la señal de activación. Y como esa inquietud la solemos tener muy a menudo en nuestros proyectos, siempre que se pueda es aconsejable implementar un LED  testigo. Si se enciende y no actúa el relé, sabremos que el problema debe estar o bien en el relé o bien en el transistor.




Si vemos que el relé no se activa, lo aconsejable sería verificar la tensión en los pines del Arduino, o bien si os resulta más fácil, cambiar los pines asignados. Sucede que a veces, por errores en el pasado, algunos Arduino terminan medio chamuscados, y algunos pines que no fueron usados apropiadamente, terminan estando inutilizados. Si este es tu caso, verás rápidamente que al cambiar de PIN (tanto en la protoboard como en el sketch) el proyecto empieza a funcionar.



Pero qué pasa si por alguna razón nuestro Arduino tiene microinterrupciones en el PIN, pues si la corriente en la base se interrumpe, también se interrumpirá la alimentación de la bobina, y por lo tanto el relé podrá desactivar la lámpara. ¿Qué podemos hacer?



¿Hay algo más que debamos tener en cuenta?. Sí. Debemos gestionar el efecto de los transistorios provocados por la desactivación de la bobina.

Todo esto y más lo veremos en la continuación de este entrada.