Ruido eléctrico

Hola amigos.

Comparto mi experiencia con un desarrollo simple que me dio muchos dolores de cabeza y al mismo tiempo me dejo mucha experiencia, se los describo.
Automatización de una maquina compresora de lana, compuesta por tres pistones hidráulicos para sus tres etapas (alimentación, compresión y expulsión), cada pistón controlado por 2 válvulas solenoides de 220 vca, mas una válvula mas para liberar presión del sistema cuando esta en stand by. Para controlar el recorrido se instalaron 6 finales de carreras, dos para cada estado de los pistones (inicio-final), todo en un ambiente industrial. (muy ruidoso electricamente). La electronica usada fue un arduino Nano mas una placa de ocho relees opto-acoplados y filtrados. La programación fue redundante para darle seguridad ante falsos "estados" y las entradas fueron configuradas de manera pull up, para evitar también falsos estados por pulsos no deseados. Para la fuente de alimentación utilice un trafo 12vca 1000mA 50Hz un puente rectificador, LM7805, capacitores, etc.
Toda la electrónica fue probada en "vacío" por muchas horas y funciono correctamente.

RESULTADO TRAS LA INSTALACIÓN: "UN FRACASO": Continuos reseteos, cuelgues, un desastre.

Hoy ya con todo resuelto, funcionando, y COBRADO! les comento todos los recaudos a tomar cuando trabajamos con solenoides y ambientes ruidosos:

  • Reemplace la fuente común por una switching de calidad.
  • Aparte de configurar las entradas del Nano en Pull up, les agregue una resistencia de 1Kohm a Vcc.
  • Los dos pines de reset del Nano tambien los puse en Pull up, 1 kohm a Vcc y cap. cerám. de 0.1 y 0.01 microF
  • Agregue cap. cerámicos de 0.1 y 0.01 microF sobre la entrada Vin- Gnd el Nano.
  • Los finales de carrera y sus cables actuaban de "antena" captando cualquier ruido, agregue opto acopladores a las entradas con una fuente distinta a la de alimentación.
  • Coloque diodos 1N4007 en contraposición sobre las entradas de los opto acopladores de las entradas del Nano, ademas de cap. cerám. de 0.1 y 0.01 a Gnd.
  • Si bien los solenoides estaban controlados por relees y éstos por opto acopladores, puse en paralelo sobre los solenoides un capacitor cerámico con una resistencia en serie para absorber la contra FEM en la apertura.
  • Importante: No deje ninguna entrada/salida libre del Nano "al aire", todas a 5vcc.
  • Por último el código los hice aun mas redundante, repreguntando el estado de las entradas varias veces con una pausa intermedia para descartar "falsos estados". También intente evitar el uso de ciclos "While" para no quedar "encerrado" por lecturas erróneas, fueron mas útiles los ciclos "If" para descartar estos falsos estados.

Luego de hecho todo esto el funcionamiento se tornó fiable en este tipo de ambientes con mucho ruido eléctrico y comparable con PLCs de marcas reconocidas instalados en mismos lugar.
Espero les sirva.