Arduino in pallone

Salve, mesi fa ho costruito il cancello automatico per la mia casa implementando arduino come ' mente ' di tutto il circuito. Dopo qualche settimana, arduino cominicia a dare qualche problema:il cancello si ferma, non si chiude etc... per uscire da questo limbo in qui arduino è in coma, devo spegnere e riaccendere la corrente dall' interruttore generale.
Ho pensato a quale fosse il problema e sono arrivato a qualche possibile soluzione:

  1. Nel loop, arduino crea una unsigned long long int che si registra l' esatto valore di millis(), quindi penso possa essere che arduino si riempia la memoria, e non ha più spazio per crearne altre necessarie per il completo ciclo del cancello. Ho aggiunto un reset ( dal PIN di arduino ) ogni 3 cicli totali del cancello, pensando che così la memoria si svuoti, ma continua a persistere questo problema.

  2. Arduino lo alimento a 12V-1A, puo' essere che, non essendo nel range di alimentazione di arduino possa dare un problema di questo tipo?

  3. Avendo in quel periodo solo la scheda arduino marchiata Eleego, ho usato quella, puo' essere che essendo una copia dell' Arduino, non sia eccellente nel suo lavoro?

Questi sono le mie idee, per risolvere lo stato di ' coma ' che affligge quotidianamente il mio arduino.

! La codifica di arduino è completamente corretta e tutti gli azzeramenti delle variabili avvengono correttamente a fine di ogni ciclo !

Grazie dell' attenzione.

Premesso che sarebbe meglio vedere sketch e schema dei collegamenti...

  1. la variabile per millis la dichiari dentro o fuori dal loop()? Se la dichiari globale all'inizio dello sketch non viene allocata memoria ad ogni giro di loop()

  2. in che senso è fuori dal range?

  3. io ho usato cloni cinesi da 4 euro in progetti che restano operativi mesi senza problemi. Al limite se hai un altro arduino prova a sostituirlo e vedi se va meglio

Se il microcontrollore si pianta, è perché riceve disturbi. Filtra bene l’alimentazione e le altre linee.

  1. prima stringa void loop: unsiged long long int a: millis();
  2. scusa l'ignoranza cosa vuol dire filtrare l alimentazione??

mi dispiace dirlo ma quando arriva il moderatore questo topic verrà chiuso, un cancello elettrico è sottoposto alla direttiva macchine con tutto ciò che ne consegue in termini di certificazioni, sicurezza ecc. poco importa che il motore sia alimentato a 24V anziché 240V e quindi in violazione del regolamento

Purtroppo e' cosi, qui in Italia le normative in materia sono discrete carogne, tieni presente, ad esempio, che se qualcuno si dovesse far male, non importa per quale ragione, primo l'assicurazione non risarcirebbe il danno, e secondo finiresti nel penale, non importa quanto bene tu abbia lavorato ...

Comunque sia di possibili problemi ne vedo molti, ad esempio resettare arduino tramite il pin di reset pilotandolo da un altro pin è pratica assolutamente sconsigliata dal produttore poiché non porta ad un reset sicuro ed affidabile, poi visto che si blocca dopo tre cicli dubito anche che nel programma non vi siano problemi di codifica che vadano a far saturare la memoria. Se il topic fosse riferito ad un modello in scala e tu postassi il codice e i vari cablaggi magari potremmo anche aiutare :wink: ma purtroppo qui non possiamo proseguire in virtù del regolamento

fabpolli:
mi dispiace dirlo ma quando arriva il moderatore questo topic verrà chiuso, un cancello elettrico è sottoposto alla direttiva macchine con tutto ciò che ne consegue in termini di certificazioni ...

Etem già spiegava bene la cosa in QUESTO sue vecchio thread e la normativa di riferimento si trova QUI.

Thread chiuso ... :confused:

Guglielmo