yupanqui Inserito: 5 ore fa Segnala Inserito: 5 ore fa Buongiorno a tutti, Ho realizzato un piccolo circuito con Arduino nano che muove il mio cancello automatico, è ormai in funzione da 5 anni almeno, quindi escludo bug software. Ultimamente il cancello si apre in continuazione senza che nessuno lo comandi. Così... ogni tanto parte da solo. L'ingresso che fa partire il motore è configurato con la resistenza inerna di pullup ed è chiuso a massa dal relè della scheda radio. Ho provato a scollegare la scheda radio pensando che fosse lei la causa, ma niente. Il cancello ogni tanto parte da solo. Si è guastato il processore? Non è che mi resta molto da cambiare... cosa altro potrebbe essere?
Ctec Inserita: 4 ore fa Segnala Inserita: 4 ore fa Non penso. Se si aprisse e rimanesse sempre tale (ingresso inchiodato) allora direi che ti si è bruciato l'ingresso. Prima cosa: non hai utilizzato un sistema di isolamento (optoisolatore) e protezione (zener, varistore) per proteggere l'ingresso? Se non l'hai fatto, considera che il processore e la scheda tutta di Arduino è parecchio sensibile ai disturbi. Meglio provvedere. Il primo test che dovresti fare è, se hai un altro ingresso libero, modifica il software e sposta il segnale dal relè a tale ingresso. Se il problema scompare, c'è qualcosa nella zona del vecchio ingresso, magari danneggiato un po' (vedi sopra). Provvedere alle contromisure. Oppure puoi provare ad effettuare un filtraggio maggiore del segnale dell'ingresso, allungando il tempo di validazione e di rilascio del segnale (antirimbalzo), per evitare di interpretare eventuali spurie come segnali veri.
Dumah Brazorf Inserita: 3 ore fa Segnala Inserita: 3 ore fa (modificato) Il nano si trova al cancello? in 5 anni ne avrà presa di umidità, proverei a cambiarlo tanto non è una spesa folle. Se la sostituzione risolve valuterei di spennellare tutta la schedina con smalto per unghie trasparente in modo da renderla più resistente all'umidità. Modificato: 3 ore fa da Dumah Brazorf
yupanqui Inserita: 2 ore fa Autore Segnala Inserita: 2 ore fa Grazie per le risposte. Vi spiego quello che ho fatto. La centralina di comando, se così vogliamo chiamarla, si trova sul muro al riparo chiusa dentro una scatola di plastica ermetica. Da qui escono solo i cavi per le fotocellule, lampegginte, sCheda radio e motore. Quindi zero umidità. L'unica cosa è che la scheda radio si trova ad una decina di metri. L'ho messa lontano ed in alto, in modo che il mio telecomando funzioni sempre ed in effetti apro il cancello da una distanza importante. Non vorrei però che questo generasse dei disturbi come dice CTEC.
Livio Orsini Inserita: 2 ore fa Segnala Inserita: 2 ore fa 38 minuti fa, yupanqui ha scritto: Non vorrei però che questo generasse dei disturbi come dice CTEC. Molto probabile. Il cavo di collegamento tra radiocomando ed arduino è un buona antenna per disturbi. Oltre al filtraggio Hw, con separazione galvanica, ti consiglio un filtraggio software abbastanza pesante. Probabilmente tu senti il livello alto o basso dell'ingresso. Realizza un software che consideri il livello, alto o basso che sia, se e solose, questo livello permane costantemente per un certo tempo. Solitamente si leggono gli ingressi a tempo usando o un interrupt a tempo, oppure con la funzione millis(); se, ad esempio, leggi gli ingressi ogni 20ms, realizza una funzioncina che considera vero lo stato se il livello persiste per almeno 5 letture consecutive. Hai un ritardo di 100ms, che non è significativo per la funzione del comando ma, in compesno, ti elimina la quasi totalità dei comandi impropriu, dovuti ai disturbi.
yupanqui Inserita: 1 ora fa Autore Segnala Inserita: 1 ora fa 30 minuti fa, Livio Orsini ha scritto: Molto probabile. Il cavo di collegamento tra radiocomando ed arduino è un buona antenna per disturbi. Oltre al filtraggio Hw, con separazione galvanica, ti consiglio un filtraggio software abbastanza pesante. Probabilmente tu senti il livello alto o basso dell'ingresso. Realizza un software che consideri il livello, alto o basso che sia, se e solose, questo livello permane costantemente per un certo tempo. Solitamente si leggono gli ingressi a tempo usando o un interrupt a tempo, oppure con la funzione millis(); se, ad esempio, leggi gli ingressi ogni 20ms, realizza una funzioncina che considera vero lo stato se il livello persiste per almeno 5 letture consecutive. Hai un ritardo di 100ms, che non è significativo per la funzione del comando ma, in compesno, ti elimina la quasi totalità dei comandi impropriu, dovuti ai disturbi. Ciao Livio, grazie per i consigli. Non mi ricordo come ho scritto il software ovviamente, ma cercherò di migliorarlo prima di cambiare l'hardware. Il fatto curioso è che l'ingresso sia diventato "sensibile" solo adesso... deve essere successo qualcosa che non capisco o che non mi è ancora chiaro. Farò qualche altra prova e poi vi dirò come ho risolto. Grazie per il momento.
Livio Orsini Inserita: 1 ora fa Segnala Inserita: 1 ora fa 3 minuti fa, yupanqui ha scritto: Farò qualche altra prova e poi vi dirò come ho risolto Questi problemi si risolvono (quasi) definitivamente solo con un apposito filtraggio. Purtroppo arduino, raspberry, esp8266, esp32, sono schede progettato come strumenti di sviluppo software a vasso costo, devono essere impiegate solo in laboratorio, perchè la loro tolleranza ai disturbi irradiati e condotti è praticamente nulla. Io ho fatto parecchie automazioni per casa ma ho: Filtrato pesantemente le alimentazioni Sperato galvanicamente ingressi e uscite digitali verso il campo Filtrato pesantemente ingressi sia in Hw che in Sw Evitato di usare gli ingressi analogici da campo. Con questi accorgimenti, più l'uso del watch dog, sino ad ora non ho avuto malfunzionamenti. Purtroppo senza un approccio sistemico per aumentare l'immunità ai disturbi bloccando i disturbi prima che arrivino alla scheda, le varie pezze sono solo paliativi. Pare che il tutto funzioni egragiamente poi, basta una minima variazione dell'ambiente, e compaiono i problemi.
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora