Como proteger las entradas digitales de un Arduino

En este post voy a explicar como proteger las entradas de un Arduino mediante optoacopladores. Esto nos protegera de picos de alto voltaje que se producen por, por ejemplo, descargas electroestáticas (rayos cercanos, o descarga de estática acumulada en el cuerpo). En productos comerciales, siempre que tengamos cables largos, será necesario agregr una proteccion de este tipo.

La llamada del cliente

Hace varios años me llamo un cliente porque tenia un problema con un control de accesos. La idea de este control era sencilla: en la puerta de cada habitacion de un motel (ustedes saben… esa clase de motel) hay un sensor. Las puertas de las habitaciones libres estan abiertas, y se cierran cuando ingresan los clientes.

Con esto se registra que habitaciones se estan utilizando, de manera automática. Ellos poseían un sistema que ya llevaba mas de 20 años en funcionamiento, como el ingeniero que se los fabricó habia emigrado del pais, ya no podía darle soporte. Entonces contrataron a un jovencito con algunas buenas ideas de programación, pero cierto desconocimiento en temas de electrónica.

El problema

El sistema se instaló y funcionó correctamente durante un par de semanas. Durante la primera tormenta, dejó de funcionar. Como el sistema fue hecho en otra ciudad, a miles de kilometros, el técnico no podia verificar el problema, así que me llamaron para intervenir. Me encontre con una PC con Linux. Lo primero que intente fue, normalmente, desconectar y volver a conectar el puerto USB del arduino. No paso nada.

FT232 detectado. El chip serial funcionaba, pero el microcontrolador no respondia.

Procedí entonces a desarmar la “caja negra” que hacia el trabajo. Me encontre con esto:

No se ve muy bonito pero bueno, es lo que hay. Como sospechaba, no tenia ningun tipo de proteccion. El microcontrolador se dañó por algun rayo.

Le propuse al cliente hacer una nueva PCB, esta vez conteniendo las protecciones necesarias para que esto no vuelva a ocurrir. Originalmente iba a utilizar varistores para proteger las entradas, pero termine usando los clasicos optoacopladores 4N35. El circuito quedo mas o menos asi:

3 entradas visibles, de un total de 12

El funcionamiento del circuito es sencillo: a la izquierda del circuito se encuentra el arduino, alimentado por el puerto USB (la etiqueta VDD visible son los 5V provistos por Arduino). A la derecha, tenemos una fuente independiente y aislada, con su propio regulador. No comparten alimentacion ni ground.

Por cada entrada, hay un optoacoplador y un LED en paralelo, para verificar a simple vista el funcionamiento de los microswitch. Todos los anodos van, a traves de una resistencia, al 5V, y los catodos a GNDIO, a traves del microswitch. Tambien se ve un diodo en inversa conectado a GNDIO (Anodo con Anodo). Este es un zener que se dispararia si existe un pico de tension en la entrada que pudiera dañar los LED. Al final, no lo incluí en la placa. 7 años despues, y con un par de tormentas encima (que se llevaron la UPS y la fuente de alimentacion del servidor), esta placa sigue funcionando perfectamente.

Los optoacopladores son dispositivos muy sencillos y extremadamente confiables. Mientras se mantenga la corriente de los LED en un limite razonable, el circuito puede durar décadas. Los LED son bastante robustos, y aguantan los picos de tensión muy bien. Y en caso de que se dañen, es mas facil y barato reemplazar un opto, que un Arduino.

Este fue el resultado final, ya instalado:

Cuenta la leyenda que esa placa sigue igual, que nunca se le puso una caja, y que cuelga de los cables como el dia que se instalo. Nunca sabremos la verdad.

Les dejo tambien una galería de como fabrique la placa. Esto fue antes de mi video de como fabricar circuitos impresos por transferencia de toner con vinilo, cuando usaba un film fotosensible (este film es el que se usa en la produccion comercial de circuitos).

Veran tambien como le agregue mascara antisoldante. Es un proceso que ya no uso pero que, hecho bien, da un aspecto muy profesional.

Espero que les haya servido de inspiración para su próximo proyecto.