[Proteus versión 8.1]
En las primeras lecciones de este curso abordamos el tema de las salidas digitales. En la lección de hoy queremos profundizar y ampliar nuestros conocimientos un poco más allá. Cuando tratamos el asunto de las salidas digitales, lo hicimos siempre, por motivos pedagógicos puesto que estábamos empezando, como si en el mundo todo funcionara con tensiones de corriente contínua de 5V. Esta simplificación fue muy conveniente, pero dista mucho de ser la realidad del día a día.
La mayoría de los equipos útiles que podemos gobernar con nuestro Arduino funcionarán con alimentaciones diferentes.Si queremos controlar el motor que se encarga de la apertura y cierre de la puerta del garaje, la bomba que alimenta de agua un depósito desde el que regamos nuestra huerta, el encendido y apagado autómatico de las luces de nuestro porche, sólo por citar algunos ejemplos, la posibilidad de que estos elementos funciones con una corriente contínua de 5V es prácticamente nula. Así pues, nos tenemos que enfrentar a la problemática en la que nuestro arduino se ve obligado a gestionar elementos externos que funcionan con otras tensiones y/o que tienen un consumo de corriente más elevado que el que se puede gestionar directamente con una salida digital.
Afortunadamente tenemos a nuestra disposicion numerosas técnicas que nos permiten afrontar esta problemática eligiendo la mejor opción en cada caso para nuestro problema. El aspecto más importante que tenemos que tener en cuenta es mantener la independencia entre uno y otro circuito. Por un lado, se encuentra el circuito de mando (gestionado por nuestro Arduino y que, por fuerza, debe funcionar con las especificaciones de tensión y corriente de las placas Arduino) y por otro lado, debemos diseñar el circuito de potencia (que alimentará o dejará sin alimentación el equipo gobernado). Nuestro objetivo es interelacionar los dos circuitos, pero manteniendo aislados el uno del otro. Precisamente, el nivel de seguridad que deseemos obtener respecto al aislamiento de los dos circuito, nos determinará la solución que debemos seleccionar en cada caso.
Primera solución: Utilizar un transistor (o componente similar) para relacionar un circuito con otro.
Este es, posiblemente el caso más sencillo. Supongamos que queremos controlar con nuestro arduino, con ayuda de un interruptor, una lámpara de incandescencia que funciona a 220VAC y que consume 60W. Antes de empezar con nuestro equipo Arduino, queremos hacer aquí un inciso referente a la simulación con Proteus. La forma más gráfica de simular un circuito que alimente una bombilla de 220VAC se muestra en la imagen siguiente:
Hemos utilizado un componente del tipo LAMP (al que configuramos para que funcione a 220VAC y 50Hz) para simulara la bombilla y un componente tipo ALTERNARTOR (al que también configuramos para que funcione a 220VAC y 50Hz) para simular la alimentación de la red. En este caso hemos puesto un interruptor para encender y apagar, así el lector puede comprobar que todo funciona correctamente. Por último queremos destacar el hecho de que hemos cerrado el circuito alternador y lámpara uniendo los dos extremos a un terminal de tierra. Esto puede parecer chocante y muchos hubieran optado por cerrar directamente el alternador con la lámpara sin usar el terminal de tierra. Sin embargo, cuando se utilizan simuladores siempre es muy conveniente fijar todos los potenciales para facilitar la tarea de resolución de los circuitos al motor del simulador. Por eso es una buena práctica colocar un terminal del generador a GND. Como en Proteus todos los terminales del mismo potencial están unidos internamente, nos ha bastado con poner el extremo libre de la lámpara también unido a un terminal de tierra para que todo el circuito esté cerrado y funcione.
Si activamos la simulación, la luz debe aparecer luciendo al cerrar el interruptor.
Ahora ya podemos empezar a ver nuestro primer circuito utilizando Arduino y un transistor a la salida. Sustituyamos el interruptor por un transistor y cebemoslo con una salida digital de nuestro equipo. El montaje, muy simple para centrarnos en lo fundamental, lo hemos diseñado como sigue:
El código fuente de nuestro programa, que también es muy sencillo, lo hemos escrito como sigue:
Si ponemos en marcha la simulación y actuamos sobre la entrada digital, nuestro Arduino activará su salida y encenderemos la lámpara a 220VAC.
Acabamos de aprender la manera de gobernar un elemento que funciona con alimentaciones diferentes a la de nuestro equipo Arduino. Pero, ojo, la solución tiene limitaciones importantes. Sugongamos que el transistor se cortocircuita. En este caso, pondríamos uno de los pines de nuestro Arduino a una tensión de 220VAC y, muy probablemente, lo dejemos inservible. Por eso es conveniente, utilizar otras opciones que aislen los dos circuitos.
Segunda solución: Utilizar un relé.
La segunda solucion consiste en la utilizacióin de un relé para separar ambos circuitos. Nuestro montaje en este caso sería el siguiente:
Hemos utilizado un elemento de tipo RELAY al que hemos configurado para funcionar a 5V. Vemos que en este caso el aislamiento entre ambos circuitos está garantizado, puesto que el circuito de mando circula a través de la bobina del relé, mientras que el circuito de potencia lo hace a través de uno de los contactos libres de potencial.
Tercera solución: utilización de un optoacoplador.
En determinadas ocasiones podemos encontrar problemas para la utilización de los relés. Por ejemplo, porque necesitemos velocidades de conmutación por encima de las posibilidades de un dispositivo electromecánico como el relé. En esos casos podemos encontrar una solución en la utilizacion de un optoacoplador con un transistor de potencia a su salida. Dependiendo de los casos (voltaje y corrientes demandadas a la salida) podríamos prescindir del transistor, pero corregir nuestro circuito prescindiendo del transistor de salida no nos supondría mayor dificultad.
Veamos un esquema de este tipo de conexionado.
Hemos utilizado como optoacoplador, el componente CNY70 incluido en Proteus como un modelo activo puesto que en los objetivos de este curso habíamos fijado la intención de poder simular todos los circuitos que utilizamos utilizando Proteus. De todas formas, al lector no le resultará complicado trasladar este esquema para adaptarlo y utilizar cualquier otro optoacoplador disponible en el mercado.
Alimentamos la entrada del optoacoplador desde la salida del Arduino y cerramos el circuito con un terminal de tierra. Utilizamos la salida del optoacoplador para la alimentación del circuito de potencia con un esquema similar al que vimos en la primera de las opciones estudiadas. La diferencia entre aquella y esta, radica que el acoplamiento entre los dos circuitos se realiza en esta segunda ocasión mediante la utilización de un dispositivo óptico (el optoacoplador) que nos garantiza un alto nivel de aislamiento (del orden de los 2,5kV) entre ambos circuitos.
Con esto terminamos el repaso a las diferentes soluciones disponibles para implementar salidas de potencia en nuestros equipos arduino.