Moduli relè che mi resettano Arduino quando eccitati... ma perchè?

Ciao a tutti,
ho comprato due moduli di relè monostabili che tuttavia mi creano qualche problema ad Arduino: qualche volta durante la giornata, infatti, quando scattano mi mandano in reset il micro per poi farlo ripartire... la scocciatura è che, nonostante poi il programma riprenda normalmente, il display salta e mostra caratteri strani su tutte le linee costringendomi a resettarlo nuovamente.

non capisco se sia un problema software oppure hardware quindi li descrivo entrambi:

HARDWARE:

dunque il relè sono questi:
(chiedo scusa se non si potesse inserire link a siti di vendita)
http://www.ebay.it/itm/N-1-Modulo-2-Rele-5V-2-Channels-Relay-Module-compatibile-Arduino-/150909325906?pt=Componenti_elettronici_attivi&hash=item2322e59252#ht_3675wt_1156

90mA con circuito di pilotaggio a 5v

il mio arduino è alimentato con un alimentatore switching da 10v e 1.25A

i 10v sono convertiti con un LM7850 a 5v e portati all'alimentazione dei relè, il pin A1 di arduino, invece, è direttamente connesso all'input di segnale per l'eccitazione della bobina del primo relè

SOFTWARE:
in void setup ho impostato:

pinMode(A1, OUTPUT);
digitalWrite(A1, HIGH);

siccome il relè si eccita quando l'uscita di arduino è ad un livello logico basso o direttamente collegata a gnd, quando imposto nel loop un digitalWrite(A1, HIGH); la bobina rimane a riposo; se imposto, invece, digitalWrite(A1, LOW); la bobina si eccita....

Non capisco come mai a volte, nel momento di eccitare i relè, Arduino si resetti...

a dir la verità un'idea mi è venuta:

in totale i relè sono 4 e vengono comandati sempre a coppie di due (uno si spegne, l'altro si accende) e questo processo avviene 3 volte nell'arco della giornata... ho pensato che il problema derivasse dal fatto che nel loop non avessi inserito un delay(x) tra il cambio di stato del primo relè e quello del secondo... così ho inserito tra i 2 un delay(300) ma non ha risolto il problema...

(
digitalWrite(A1, HIGH);
delay(300);
igitalWrite(A2, LOW);
)

qualcuno ha qualche suggerimento?

beh... hai provato a togliere il calendario Pirelli dal muro ?

p.s. si va be lo so è una caduta di tono... ma proprio proprio mi è scappata. scusate :slight_smile:

:grin:

non è colpa mia se si usa dire "eccitare la bobina"...

7850 o 7805?
hai messo dei condensatori da 100nF sui 5v e magari anche un 220uF?
opp
prova a cambiare alimentatore, se hai la possibilità di accedere ad un alimentatore di un pc nel connettore rosso-nero-nero-giallo prendi i :
nero-giallo 12v
nero-rosso 5v

Il problema è che quasi certamente l'assorbimento dei relé provoca una diminuzione della tensione di alimentazione al di sotto della soglia 2,7V impostata sul micro di Arduino e questo provoca il RESET.
Il link dice che ogni relé richiede 71mA, hai messo un transistor su ogni pin di Arduino? Ricorda che la massima corrente erogabile da un pin è di 40mA e comunque non conviene mai andare oltre i 30-35mA

La schedina ha la sua alimentazione e i suoi pin di IN e i suoi TR non preleva i 71mA dai pin di arduino ma dall' alimentatore. Secondo me ha qualche problema l'alimentatore che risente di un disturbo provocato dalla chiusura dei relè. Prima di sbattersi tanto converrebbe provare con un altro alimentatore.

Ho sbagliato, è vero, non sono LM7850 ma LM7805...

ho fatto delle prove con il multimetro e c'è un assorbimento di 60mA sulla linea dei 5v collegati ai relè mentre non rilevo alcun assorbimento sui pin analogici di arduino...

proverò allora a cambiare alimentatore anche se credo che complessivamente non si arrivi nemmeno a sfruttare 1/4 della sua potenza... per essere precisi tutto il pacchetto alimentato da quello switching comprende:

-arduino uno
-rtc
-2 canali PWM portati a 0-10v tramite 1 ICL7667 che pilotano 8 alimentatori 48v
-3 sensori Ds18B20
-un sonar SRF02
-4 relè
-1 LCD
-tutta la linea I2C di controllo periferiche

nel frattempo ho provato ad innalzare il delay ad un secondo ma il problema persiste...

Mi confermate, comunque, che non sono necessarie resistenze tra i pin analogici e gli input di comando dei relè?

stai usando i pin analogici come digitali, immagino, e comunque nel momento dell'accitazione una qualche corrente DEVE scorrere, anche solo per pilotare i transistor dello schedino, se tale corre3nte è inferiore a 40mA puoi evitare R altrimenti vanno messe per forza