Arduino se bloquea echando mi proyecto a perder

Hola a todos,

Llevo mucho tiempo construyendo un proyecto con arduino. El funcionamiento es relativamente simple.

Se trata de una mini-planta de depuración de agua que funciona con un contador de tiempo. Cuando el tiempo está entre el T1 y T2 enciende una bomba dependiendo de la señal que le llegue de un sensor de nivel tipo boya, cuando está entre T2 y T3 la apaga y enciende un compresor de aire, entre T3 y T4 apaga todos los aparatos, y entre T4 y T5 abre una electrovalvula. Tras esto se reinicia el ciclo. Además, independientemente del tiempo en el que esté, otro sensor de nivel tipo boya manda señal a arduino para encender o apagar otro compresor de aire y una bomba peristaltica de 12V.

En principio el código parece estar correcto puesto que, teniendo los aparatos desconectados, el funcionamiento del programa es correcto, puesto que en el relé se ve como se encienden y apagan los diodos respectivos a cada aparato.

El problema está cuando conecto los aparatos, ya que en una de las pantallas empiezan a aparecer letras como chinas y con el tiempo acaba bloqueandose arduino. En principio creí que podría deberse a que tenía todo el circuito alimentado con arduino, pero le puse una fuente externa de 5V y 3A, tal y como se ve en el diagrama que adjunto, pero sigue dando el mismo problema.

Soy relativamente nuevo en esto, y a pesar de que he estado buscando información, no sé ya a que podría deberse el mal funcionamiento de mi planta…

codigo.pdf (269 KB)

Esquema con fuente externa-compressed.pdf (1.04 MB)

Tu problema es ruido electrico que provocan los motores, contactores, etc, al momento de activarlos.

Clip2net_181214101905.png

NOTA: El foro tiene herramientas (lee las normas del foro) para visualizar códigos, enlaces e imágenes/esquemas que permiten con facilidad entender de lo que se habla

La forma de resolverlo es con un ataque personalizado a cada situación.

Asi que tenemmos que ver como actúa cada elemento y como prevenir su mal comportamiento para con el/los arduinos.

Como veo que tienes muchos reles que accionan varias cosas, entonces iremos debatiendo cada caso.

Las soluciones van desde Reemplazar tu sistema de relays por unos relés de estado solido o SSR, hasta usar snubbers (resistencias en serie con capacitor que limita la velocidad del cambio de tensión o sea dV/dT), también se pueden usar diosos supresores de transitorios.

Ayuda además mejorar la alimentación del Arduino colocando un filtro RFI a su entrada.

Esto en líneas generales.

También puedes buscar estos temas en el foro porque los hemos debatido varias veces y con buen grado de profundidad.

Como te comentan, todo parece ser un problema de "ruido" te ayudara montar filros de ferrita en todos los cables, esas protuberancias que tenemos en cables de alimentacion de portatiles etc...
tener todos los Negativos (-) y masas interconectados, incluido si usas varias fuentes, diodos antiparasitarios en todas las bobinas que vayan conectadas al arduino malamente uses transistores o IC´s.
Mantener el propio arduino en una caja metalica, Jaula de Faradhai, conectada a negativo.
Usar cables apantallados, con la pantalla conectada a negativo.
Todo esto son premisas basicas que deberiamos tener absolutamente siempre que se usa cualquier sistema de comunicacion I/O.
Normalmente en pequeños montajes o bajas cargas, no tiene gran efecto, pero a la hora de entrar a trabajar, en un ambiente electronicamente sucio, se hace imprescindible.
Personalmente opino que muchos proyectos fallan por situaciones asi, que por errores de codigo o conexion.
Yo mismo, al principio de trastear con Arduino la lie un par de veces por no interconectar los negativos.
No se hasta que punto o que carga masica quieres llegar, pero para cualquier duda sobre ciclos de depuracion de agua y demas, no dudes en consultarme, soy tiulado en España en sistemas de depuracion y bombeo de aguas residuales, aun que no ejerzo en la acualidad.

Mantener el propio arduino en una caja metalica, Jaula de Faraday, conectada a negativo.

Y a tierra con su jabalina de cobre correspondiente en una zona de tierra especial, humedecida.

Te hemos dado buenos consejos @anmoga, de todas estas cosas y algunas mas deberías poder llevar las cosas a condiciones mas controladas.

Espera a que @victorjam que trabaja en un sitio similar te de sus consejos y creo que hasta deberías ponerte en contacto no solo con el sino con @Antykrysto para cuestiones puntuales.
Pero antes lleva adelante estas sugerencias que te hemos dado.

Muchas gracias por los consejos, a ver si durante las vacaciones encuentro algun rato para profundizar en los consejos que me habéis dado e intentar implementarlos en la planta.. Espero poder solucionarlos de raíz, puesto que es una planta que debería funcionar por sí sola y me da miedo llegar un día y verla bloqueada echando todo el trabajo a perder.. (con esto quiero llevar a cabo una investigación, soy doctorando).

Reitero, muchas gracias, os iré avisando de los progresos!