Blocco Ethernet Shield se connesso a carichi

Ciao ragazzi, non riesco a venire a capo di questo problema:

Ho collegato ad Arduino questa scheda relè, molto diffusa: http://www.ebay.it/itm/Scheda-4-rele-5Vdc-relay-arduino-shield-/261144424777?pt=Componenti_elettronici_attivi&hash=item3ccd6bb149&_uhb=1

E' alimentata con alimentatore separato per il circuito di potenza. Tramite internet invio ad Arduino (con ethernet shield) dei comandi ad hoc e lui correttamente esegue uno switch LOW/HIGH di uno o più di questi relè. Fin qui nessun problema.

Quando collego alla morsettiera della scheda relè i carichi, nel mio caso il neutro di relè passo-passo che accendono e spengono delle lampade a 220V, tutto funziona... ma succede che in modo del tutto casuale (circa 1 volta su 3), lo switch fa sì che lo shield ethernet si spenga per circa 1 secondo (vedo proprio i LED vicini alla porta ethernet che si spengono e si riaccendono dopo poco). Questo causa dei problemi all'interfaccia via internet, che non riesce ad aggiornarsi e va in timeout.

Eseguendo un comando di test più complesso che effettua una serie di accensioni e spegnimenti più lungo, tipo albero di natale tanto per intenderci, il tutto - a volte, sempre "a random" - si blocca completamente, e devo resettare arduino o staccare e riattaccare l'alimentazione per farlo tornare in funzione.

E' tutto completamente inspiegabile, perché senza carichi collegati non si verifica alcun problema. Eppure questi relè dovrebbero essere optoisolati, e la loro scheda integra già il classico diodo di protezione. Quindi com'è possibile che la presenza o meno del carico (che oltretutto è di potenza, ma "per modo di dire", visto che non parliamo di niente di che, sono dei normalissimi relè passo-passo su guida DIN) causi questi blocchi?

Un particolare in più: ho notato che il reset dello shield ethernet si verifica nel momento in cui Arduino invia il comando HIGH dopo LOW (la scheda relè a 5V funziona con logica inversa, quindi sta sempre in HIGH per avere i contatti aperti, nel momento in cui voglio azionare il relè passo passo invio un LOW seguito dopo 50ms da un HIGH, ed è questo il momento in cui succede il problema).

E' quasi sicuramente un disturbo sulla linea di alimentazione. Potrebbe essere: - un alimentatore scadente - azioni carichi induttivi (le lampade a risparmio energetico sono induttive, come ad esempio faretti 12v con trasformatore, motore tapparelle, ecc) - sia i relè che l'alimentatore 220vac prelevano tensione dallo stesso nodo

http://forum.dev.arduino.cc/index.php?topic=141417.0 http://www.elektro.it/disturbi_carichi_induttivi/disturbi_carichi_induttivi_01.html

Ciao Pablos, grazie mille per la risposta.

Dunque, i due relè passo-passo azionano l'accensione e spegnimento di due applique Philips (anzi 3, ma due sono collegate insieme) a LED da soli 3.5W ognuna.

I due alimentatori (per Arduino e per la schedina relè) sono effettivamente collegati sulla linea luce dell'appartamento, su di una presa su barra DIN "costruita" prelevando la linea di corrente da una vicina scatola di derivazione. Mi era venuto il dubbio che fosse quello, e infatti ho provato a collegarli provvisoriamente su di una ciabatta, attaccata invece ad una normale presa a muro della linea "cucina", ma il risultato era lo stesso.

Nessun miglioramento neanche escludendo l'alimentatore di Arduino e alimentandolo tramite USB dal computer.

Un altro elemento interessante, che rende ancora più misterioso il tutto, è che se aziono i relè passo-passo manualmente e non da Arduino (ovvero se li aziono dai pulsanti a muro), Arduino e la scheda ethernet continuano tranquillamente a funzionare: posso accendere e spegnere le applique anche "mitragliando" e nulla si interrompe: il problema c'è solo quando i relè passo-passo vengono azionati dalla schedina relè pilotata da Arduino.

Non riesco veramente a venirne a capo :(

un problema software? usi un webserver su sd?

No, mando e ricevo dei semplici pacchetti UDP appoggiandomi ad un server web esterno... escludo che sia un problema software perché il programma è molto semplice, l'ho già debuggato in lungo e in largo e sopratutto il problema si verifica in modo casuale, sa proprio di un disturbo sulla rete, ma non riesco a capire come si generi :(

Oltretutto è molto più facile che sia un problema hardware perché di elettronica so pochissimo, mentre dall'altra parte sono programmatore di professione, quindi se c'è un punto debole è al 99% sull'hardware :D

difficile dirti qualcosa senza schemi e sketch .... magari usi il pin 10 il 4 il 12 e 13 che non devi usare in caso c'è una shield montata però tiriamo a indovinare, poi se vedi su google "arduino ethernet reset", "arduino ethernet freeze", "ethernet crash" c'è pieno di post da anni.

interessante, un mese fa provavo la stessa cosa ma solo al banco, con relè passo passo Finder 20.22 a bobina da 12V, questi (la bobina)come carico ad una scheda a 8 relè relè per Arduino, ebbene, dopo 2-3 scatti passo-passo Arduinop si blocca, il pc (windows) fa il suono di sconnessione, e per ripristinare si deve togliere l'alimentazione e rimetterla. pensavo fosse un problema di "vicinanza" tra le apparecchiature ma evidentemente c'è dell'altro.

edit: alimentazione scheda 8 rele e relè Finder alimentati a parte

http://forum.arduino.cc/index.php?topic=230357.msg1703361#msg1703361

Avete provato a metterci un filtro ?

Alex

con relè passo passo Finder 20.22 a bobina da 12V, questi (la bobina)come carico ad una scheda a 8 relè relè per Arduino, ebbene, dopo 2-3 scatti passo-passo Arduinop si blocca, il pc (windows) fa il suono di sconnessione, e per ripristinare si deve togliere l'alimentazione e rimetterla.

ti sei risposto da solo. Quando fa così è perchè entra in protezione la usb del pc per overcurrent Nel caso di schede 8 relè con optoisolatori è come avere 8 led accesi sulle uscite di arduino, si è al limite quasi della portata totale del micro. usare troppi optoisolatori sui pin di arduino si ha un elevato rischio di friggerlo

mi sono spiegato male. la scheda a 8 rele funziona tramite arduino a impulsi di 1 secondo e uno alla volta. e funziona correttamente senza carico sui relè. se attacco la bobina del Finder ai morsetti del relè COM e NO interrompendo 1 filo da alimentazione indipendente dopo 2, 3 scatti l'arduino si blocca

il mio intervento è più una curiosita, perchè attualmente ho abbandonato quel tipo di relè troppo rumorosi

x iscrizione

Domani cerco di preparare uno schema e lo posto, con tutte le limitazioni della mia incompetenza in materia :slight_smile:

Pablos, purtroppo prima di chiedere qui ho già cercato in lungo e in largo, qui sul forum e su Google proprio con quelle ricerche, se cerco ancora… le prime 3 o 4 pagine di Google mi vengono tutte con i link in viola perché li ho visitati :smiley:

Comunque uso appunto la shield ethernet ufficiale con i pin 2, 7, 8, 9 oltre che ovviamente +5V e GND proprio evitando i diversi pin utilizzati dallo shield.

Buona sera a tutt,i volevo dare una mano se cosi si può dire. Io per il blocco della scheda ho usato wachdog non ho risolto il blocco ma si riavvia ogni 8 secondi cosi posso Utilizzare 8 relé ,quelli da 5v classici di arduino per dare un inpulso a altri 8 relé bstabile 220v

ale88snake: essendo il tuo primo post, nel rispetto del regolamento, ti chiedo cortesemente di presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione … possibilmente evitando di scrivere solo una riga di saluto) e di leggere con attenzione il su citato REGOLAMENTO … Grazie.

Guglielmo

ale88snake: Io per il blocco della scheda ho usato wachdog non ho risolto il blocco ma si riavvia ogni 8 secondi

... che soluzione geniale ... :smiling_imp:

A voi v'ha rovinato Windows e il suo CTRL-ALT-DEL !!!

[u]I PROBLEMI SI RISOLVONO, non ci si mette UNA PEZZA !!![/u]

Guglielmo

Perché non provi a mettere un varistor (VDR) oppure un diodo TVS bidirezionale in parallelo ai morsetti del carico?

Buona sera.. Ho cercato di risolvere anche io il problema ma fino a ora ho tamponato con una "pezza" sempre con watchdog.. Anche se devo dire che rompe un po'..perché collegando un display mi si riavvia ogni volta è tutti i caratteri rifanno il loop Cmq non vi ho ancora esposto il mio progetto si tratta di Arduino uno connesso a internet tramite shield ethernet che controlla 8 relè 5v controllabile da pagina html (anche da remoto con NO-IP) e da app android il tutto controllano 8 rele Perry passo passo 230v

Problema similare anche per me. Semplice pagina web con pulsanti per comandare l’accensione di un fotocopiatore, luci ufficio e il computer. Io ho messo dei relè passo/passo in cascata per limitare l’assorbimento ( il relè della schedina non sopporterebbe l’assorbimento del fotocopiatore o delle luci), se invio il comando a uno dei due, in maniera casuale, la pagina web va in time out, ricarica e rinvia il comando di nuovo. Quindi, ad esempio, se spengo le luci le riaccende. In casi più’ rari perde la connessione con la shield. Mentre se “smitraglio” sul relè senza carico funziona tutto perfettamente

vi allego lo sketch

CONTROLLO_REMOTO_UFFICIO_WIA_WEB_test.ino (3.18 KB)

C'è un sito web che propone una libreria di watchdog o simile che salva l'indirizzo di memoria dove è avvenuto. Nella pagina c'è spiegato come risalire al punto di incaglio. Da quello si trova poi la possibile causa.

Secondo me non è bene usare dei relè passo passo. Io ho scritto un programma che i contatti sono gestiti da arduino e penso che sarebbe utile aggiungere il watchdog anche al mio progetto. Come spiega anche quella pagina web, in caso di un blocco, il watchdog riporta alla condizione iniziale, che si prevede non sia una dannosa.

C'è un sito web che propone una libreria di watchdog o simile che salva l'indirizzo di memoria dove è avvenuto. Nella pagina c'è spiegato come risalire al punto di incaglio. Da quello si trova poi la possibile causa.

C'è poco da cercare negli indirizzi di memoria, usare il watchdog in questo caso è un pessimo consiglio. Lo dice il titolo "Blocco Ethernet Shield se connesso a carichi" quindi il difetto va cercato nell'hardware collegato al micro che non è filtrato a dovere.

Secondo me non è bene usare dei relè passo passo

E per quale motivo? La bobina del passo-passo è identica a quelli normali, differenzia solo dal fatto che c'è una rotella dentata a 8 posizioni