Mi arduino se reinicia con Relé en corriente alterna

Hola a todos! Primero de todo muchas gracias por leerme.
Estoy montando un side project para controlar mi pecera con distintos sensores y relés que se encargan de activar ciertos mecanismos. Todo iba correctamente hasta que he decidido controlar un calentador de agua conectado directamente a corriente alterna a través de un relé. Adjunto un diagrama de todas las conexiones que tengo (perdón si no se entiende demasiado bien) y os cuento.

Como podéis ver en el diagrama tengo lo siguiente:

  • Una raspberry pi alimentada por una fuente de alimentación de 12V y 30A a través de un step down
  • Un Arduino UNO r3 (compatible)
  • Dos sensores DS18B20 conectados al PIN 10, a los 5V y al GND de arduino
  • Un sensor DH11 conectado al PIN 6, a los 5V y al GND de arduino
  • Un display LCD 20x4 I2C conectado a los pines A4 & A5, 5V y GND de arduino
  • Un módulo de 8 relés con capacidad de soportar 250VAC y 10A o 30VDC y 10A

Algo de información sobre las conexiones por si no entiende el diagrama demasiado bien:

  • Por la fuente de alimentación salen 10V a corriente continua
  • La fuente de alimentación está conectada a un step down que alimenta la raspberry pi sacando 5.1 V
  • La raspberry pi está conectada al arduino por USB (mandando comandos a través del USB)
  • El arduino está conectado a la fuente de alimentación por VIN y GND
  • El relé está conectado a los 10V de la fuente de alimentación por VC-JDD sin embargo el GND de los relés está conectado directamente al GND del arduino (al que está conectado la fuente no, al otro)
  • Todos los sensores, incluido el LCD están conectados a la salida de 5V del arduino al igual que al GND (al mismo que está conectado el GND del relé)

El relé 1 (conectado al PIN7 de arduino) se encarga de activar/desactivar la iluminación de las tiras leds que son alimentadas directamente por la fuente de alimentación. EL relé 2 (conectado al PIN8 de arduino) se encarga de activa/desactivar un calentador de agua que está conectado directamente a corriente continua. La potencia que consume este calentador es de 75W.

Simplicando mucho el loop de mi programa de arduino, sería una cosa así:

  • Mostrar en el LCD la temperatura medida por el DH11
  • Mostrar en el LCD la humedad medida por el DH11
  • Mostrar en el LCD la temperatura medida por los sensore DS18B20
  • Encender luces LED activando el relé conectado al PIN 7
  • Encender calentador de agua activando el relé conectado al PIN 8
  • Desactivar el calentador de agua desactivando el relé conectado al PIN 8

¿Cuál es el problema? que por lo general al desactivar (aunque en ciertas ocasiones lo he visto también al activar) el relé conectado al calentador de agua el arduino se reinicia. Manteniendo el mismo código pero desenchufando los cables del calentador que van al relé (es decir, dejando que el relé se active/desactive pero sin estar conectado a corriente alterna) todo funciona correctamente.

¿A alguien se le ocurre que puede estar pasando?

Un saludo y muchas gracias!

Lo primero que debes hacer es unificar los GND. Usa una bornera metálica y haz conexiones cortas a Arduino, RPi y Relés, etc.
Los sensores alimentados por Arduino no hay problema. El LCD tampoco.

Cuando accionas el rele, el calentador de agua esta generando ruido.
Mi consejo es que consideres usar un SSR para activar el calentador un que tenga disparo por cruce por cero.
De lo contrario tendrás que ver como evitar las perturbaciones (ruido electrico) que esta generando la conexión desconexión del calentador.

Muchas gracias surbyte por tu respuesta. Cuando dices agrupar todos los GND's ¿te refieres a que todos los sensores + relé vayan al mismo GND? Es lo que tengo ahora mismo.
Veo que el diagrama no se ha adjuntado, te lo adjunto aquí por si ayuda a entender mejor las conexiones.

Untitled Diagram.pdf (623 KB)

Hi,
Una cosa que yo veo es que estas usando los 5 voltios del arduino para alimentar todos los componentes incluyendo el modulo de los relays y la corriente max del regulador interno del arduino es de mas o menos 900ma. Ese PS tiene 5 voltios o es solamente de 12 voltios? Mi sugerencia es de mover los cables de lo 5 voltios del arduino y los conecto al step down que puede suplir 5 voltios 3 amperios.

Dijo que era un módulo de 2 relays. 2 Relays si pueden ser manejados por arduino. 4 ya pueden presentar problemas.

Hi,
Surbyte el dice esto

Un módulo de 8 relés con capacidad de soportar 250VAC y 10A o 30VDC y 10A

. No son de 2 relays

Hi,
Corrijo en el hilo #3 yo recomiendo que uses el stepdown PS que es de 3 amperios pero pase por alto que el Raspberry require un PS de 3 amperios por lo tanto no puedes usarlo todo los componentes como recomende. De todas manera creo que lo idea seria usar un power supply que tenga mas corriente y alimentes el Raspberry, el arduino y todo los demas componentes. Asi todos los componentes estan alimentados por power supply.

Buenas tauro0221,
esa fue mi primera suposición y efectivamente moví todos los componentes al step down. Como bien comentas, al hacer esto la raspberry dejó de recibir la corriente suficiente y si bien es cierto que se encendía, dejó de reconocer al arduino por usb.
No soy un experto pero lo que entiendo es que los relés al estar conectados a la fuente por JD-VCC en realidad están siendo alimentados por la fuente y la conexión a los 5V del arduino simplemente es necesaria para mandarle la corriente a la hora de hacer el encendido/apagado... ¿es mi suposición correcta?

Un saludo!

Hi,
Repito los 5 voltios del arduino UNO esta limitado a una corriente de 800 a 900ma maxima y tienes todo los componentes incluyendo el modulo de 8 relays alambrado a los 5 voltios del arduino. Para mi lo ideal seria conectar todos a un power supply comun que pueda suplir suficiente corriente para todo el systema. Podrias usa un setdown de 5 amperios ya que el power supply de 12 voltios tiene 30 amperios de salida. Puedes hacer una prueba y es de leer los 5 voltios del arduino cuando el systema esta operando. Te va determinar si tienes problemas con los 5 voltiios. Pregunta tu tienes problemas con los caracteres en el LCD?

Buenas,
la verdad es que ningún problema con los caracteres del LCD. De todas formas, aunque probaré lo que comentas de enchufar todos los componentes a otro power supply para quitarlos del arduino, me decanto más por los SSR que comentó surbyte. Sobre todo porque si dejo todo el sistema tal cual y desenchufo de la corriente al calentador de agua, todo funciona sin problemas y sin reiniciarse por lo que tiene sentido el tema de que el ruido eléctrico de alguna forma está interfiriendo con el Arduino.

Un saludo!

Hi,
Si yo estoy de acuerdo de usar un SSR como lo a sugerido Surbyte pero si la mayoria de los de componentes usan 5 voltios lo ideal seria el uso de un power supply que tenga suficiente corriente para suplir todo los componentes.

Ante todo me equivoqué al suponer 2 reles. Son 8. Esta claro como lo ha marcado tauro0221.
Sin embargo, si el los esta alimentado via la conexión VC-JDD entonces no es el arduino el que alimenta el módulo de 8 Reles.
Concentrémosnos en este tema.

La conexión correcta exige que se quite el jumper y se alimente la parte de control con 5V y los RELES por otra conexión que debe estar disponible que supongo será la de 10V mencionada.

Esta es la conexión que va al arduino que le da la señal de control a los optoacopladores que luego disparan via un transitor a los reles

y esta es la que se usa para alimentar los reles propiamente dichos.


Ese es el jumper que no debe estar conectiado.

El VCC que ahi se ve esta relacionado con el VCC de la otra imagen.
La conexión es entre GND y JD-VCC