Blocco Arduino Mega

Buongiorno avrei bisogno di aiuto!
Il problema:
dopo un pò che arduino è in funzione va in blocco oppure scrive strani caratteri sul display LCD.
Le schede che uso sono: arduino mega, ds 3231, LCD 20x4 e scheda 8 relè
Arduino alimentato da 9v ,RTC e LCD alimentato con LM2596S, scheda relè alimentata da un secondo LM2596S.
I due LM alimentati da 12v che alimentano anche tre ventole per pc.
Mi sono accorto che quando scatta per un secondo il relè si blocca arduino che cosa può essere?

#include <Wire.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <DS3231.h>
#include <LiquidCrystal_I2C.h>
#define ONE_WIRE_BUS 36
int  val = 0;  
int relay1 = 47;
int inputPin = 7;

OneWire ourWire(ONE_WIRE_BUS);
DallasTemperature sensors(&ourWire);
DS3231  rtc(SDA, SCL);
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

void setup() { 
 pinMode(relay1,OUTPUT);
 pinMode(inputPin,INPUT);
 digitalWrite(relay1,HIGH);
 lcd.begin(20,4);
 sensors.begin();
 rtc.begin();
 //rtc.setTime(21,35,00);
 //rtc.setDate(9,9,2017);
 //lcd.backlight(); 
 lcd.clear();
 }

void loop() { 
 
 lcd.setCursor(0,0);
 lcd.print(rtc.getDateStr());
 lcd.setCursor(12,0);
 lcd.print(rtc.getTimeStr());
 
sensors.requestTemperatures();

lcd.setCursor(0,1);
lcd.print("Reef: ");
lcd.print(sensors.getTempCByIndex(0));
lcd.setCursor(11,1);
lcd.print(" ");
lcd.setCursor(12,1);
lcd.print((char)223); 
lcd.print("C");

lcd.setCursor(0,2);
lcd.print("Sump: ");
lcd.print(sensors.getTempCByIndex(1));
lcd.setCursor(11,2);
lcd.print(" ");
lcd.setCursor(12,2);
lcd.print((char)223); 
lcd.print("C");
int val=digitalRead(inputPin);
if (val==HIGH)
{ 
digitalWrite(relay1,HIGH);
}
else
{ 
digitalWrite(relay1,LOW);
}
}

Questi sono i collegamenti senza gli alimentatori esterni

Dallo schema risulta che hai alimentato LCD e RTC tramite arduino.
Quindi sarebbe il caso di chiarire

Ad ogni modo, io ti propondo di alimentare Arduino con lo stesso LM2596S che utilizzi per LCD e RTC direttamente dal pin 5V.
Per sicurezza colleghi un diodo 1N4004 tra +5 e Vin con la "freccetta" rivolta verso Vin.

In questo modo tagli fuori il regolatore onboard e con esso tutta una serie di problemi.

Ciao grazie per avermi risposto,
allora ti spiego meglio con il primo lm2596s alimento lcd, rtc.
Con il secondo lm2596s alimento una scheda 8 relè.
Arduino lo alimento con un alimentatore 9v.
Il problema mi sono accorto che nasce quando scattta il relè manda in blocco tutto.
Ho fatto scrivere sul display quando il relè è LOW "Rabbocco OFF" quando si eccita scrive Rabbocco ON e si blocca tutto orario temperatura devo resettare per farlo funzionare.
Grazie

In primis ribadisco la neccessità di non alimentare arduino con 9v.

Le cose mi sembrano un pò confuse tra sketch e schema.
Oltre alle alimentazioni non corrisponde neanche l'ingresso del microswtich (2 sullo schema 7 sullo sketch) e neanche l'uscita del rele (49 sullo schema 47 sullo sketch).

A parte queste segnalazioni che spero siano state risolte, non vedo particolari problemi sullo sketch.

Il problema a cui accenni si presenta anche quando lasci liberi i contatti del relè?

.

Ho collegato lm2596s al pin 5v di arduino staccando preventivamente i 9v.
I pin nello sketch gli ho già sistemati.
Non ho ancora provato se lasciando liberi i relè srduino si blocca proverò anche questo speriamo....

Aggiornamento:
Da ieri sera pompa scollegata, nessun carico, tutto funziona regolarmente.
Stamattina ho collegato una lampadina da 1w tutto funziona regolarmente.
Credo che sia la pompa a dare problemi ad arduino eppure il consumo è di 2,8w.
Come posso risolvere?

Se come immagino la pompa è derivata dalla linea a 12V da cui è derivato anche arduino e rispettivi lm2596s allora la cosa si spiega.
Al di là della potenza nominale, un motore in c.c. in fase di avvio assorbe una corrente istantanea che può arrivare oltre 8 volte la nominale e pertanto mettere in crisi il sistema.

Per poterti aiutare dovresti inviare uno schema che offra un idea complessiva degli alimentatori e le varie linee alimentazioni con rispettive potenze e/o V e A.
Puoi farlo anche a mano libera, e inviare foto.

Ciao credo di aver risolto.
Mancava il filo di massa sulle prese attaccate con i relè.
Adesso funziona, ogni tanto scatta il relè ma si disattiva subito, e quando serve non si blocca più.
Grazie

Come ultima proposta prova ad allontanare il relè dalla scheda arduino

Niente da fare molti molti problemi.
Quando il relè si apre e quindi spegne la pompa arduino, non sempre, va in blocco; come LCD che impazzisce.

Confermi che la pompa è solo di 2,8w o sono 2,8kw?

Hai la possibilità di alimentare arduino e carie con una batteria tipo antifurto?

Ciao ti ho messo il link della pompa che sto usando è da 2,8 w;
non ho batterie da poter provare adesso però l'ultima configurazione è la seguente:
Con un Alimentatore 12v 4A alimento tramite LM2596S la scheda relè a 5v;
Con alimentatore 5v 2A alimento arduino le sonde il ds3231 lcd.
Con un altro alimentatore alimento le tre ventole da 12v.
Per Adesso sta funzionando bene vediamo........

P.S. nel link la pompa viene data per 28w ma non è così (2,8w).

Come ultima soluzione proverei installare in parallelo al motore una cosidetta cella RC.
Una resistenza tra 50-100Ohm in serie ad un condensatore da 0,1-0,22uF 250Vca.

In genere si utilizzano con carichi induttivi e serve a smorzare le sovratensioni e l'arco sui contatti al momento dell'apertura.

Male non fa ....

Grazie per avermi risposto ti volevo chiedere se ti è possibile disegnare uno schema della cosiddetta cella RC.
Grazie

In molti casi queste celle si possono trovare preassemblate entro piccoli contenitori, ma di certo è preferibile autocostruirle.

Mi raccomando il condensatore non polarizzato e con tensione di lavoro => 250Vca

Grazie ti farò sapere.....

Comunque questo circuito non si mette in paralello al motore ma in parallello al contatto del relé.
vedi Soppressore - Wikipedia
e Snubber - Wikipedia

Cia Uwe

Non sempre.

La cella RC rappresenta una sorta di rifasamento, compensa l'effetto induttivo del motore, avvicinandolo ad un carico resistivo e pertanto si riduce anche l'arco sui contatti e relativi effetti.

Per di più con la bassa potenza dell'utenza (2,8w), installando la cella RC a ponte dei contatti si rischia, caso non proprio raro, che la corrente capacitiva che circola mantenga in rotazione la pompa.

Tale effetto è tipico dei nuovi proiettori a led alimentati a 220Vca, se alimentati tramite dispositivi automatici provvisti di cella RC sui contatti.
Visto il basso consumo di questi dispositivi la corrente capacitiva mantiene il led acceso a ridotta intensità e/o lo faceva lampeggiare.

Buongiorno scusate ma è possibile avere uno schema elettrico dato che sono alle prime armi con questi tipi di problemi.
Il relè si apre e si chiude quindi accende e spegne la pompa ma poi quando il contatto si apre (pompa spenta) arduino si blocca.
Sul display ho orario e temperatura bloccata.
grazie