Go Down

Topic: istruzione che viene eseguita una sola volta (Read 10389 times) previous topic - next topic

pilotinocarter


pilotinocarter

Scusate se vi ho dato l'impressione di essere alterato ma non è così .
E' il problema dello scrivere . ;-)

Anzi vi ringrazio per i suggeimenti.

Devo eseguire un controllo solamente all'accensione che non deve essere eseguito con un reset
softwere dato come funzione in una pulsantiera.
Non è la sede per spiegare il motivo di questo reset.

Il fatto è che non posso giocare con le EEPROM perchè a trimenti dopo circa due mesi di vita
della macchina dovrei cambiare Arduino perchè la scrittura nella cella non è più sicura.


gpb01

Il fatto è che non posso giocare con le EEPROM perchè a trimenti dopo circa due mesi di vita
della macchina dovrei cambiare Arduino perchè la scrittura nella cella non è più sicura.
Non so quante volte ti capita questo "Soft-Reset", ma ti ricordo che OGNI SINGOLA cella della EEPROM è garantita per almeno 100'000 scritture ...
... ora, se adotti una tecnica di buffer circolare, con 1KB di EEPROM ... altro che due mesi ci fai ... :D

Guglielmo

P.S.: Consiglio la lettura del documento allegato ... ;)
Search is Your friend ... or I am Your enemy !

gpb01

#33
Oct 26, 2015, 03:28 pm Last Edit: Oct 26, 2015, 03:28 pm by gpb01
A sto punto mi sa che ha ragione gbp01 ...
... purtroppo, ne ero quasi certo :(

Guglielmo
Search is Your friend ... or I am Your enemy !

pilotinocarter

Rieccomi...

Pilotando delle elettrovalvole a 220 AC con rele, capita spesso che il programma si inchioda e le pulsantiere
non hanno più effetto. Spengo riaccendo e tutto ritorna corretto.
Uso un alimentatore switching 5 V 3 A per alimentare arduino.
I rele hanno ovviamente il diodo di ricircolo sulla bobina.

Devo mettere le VDR ad ogni elettrovalvola anche se uso un alimentatore switching ?


SukkoPera

#35
Oct 26, 2015, 03:58 pm Last Edit: Oct 26, 2015, 04:00 pm by SukkoPera
... purtroppo, ne ero quasi certo :(
D'accordo, ma se quello sketch esiste, DEVE funzionare in qualche modo. Magari anche solo con una non precisata versione di IDE >:(.

Per il resto, se il programma si inchioda, è QUELLO il problema che devi RISOLVERE, non AGGIRARE. Io questa filosofia che avete in molti non credo la capirò mai: cancellare la memoria ogni tot, resettare ogni tot, spegnere e riaccendere ogni tot... Ma se è un problema "randomico", come potete essere certi che si verifichi solo ogni tot??? Bah.
"Code is read much more often than it is written, so plan accordingly. Design for readability."

Guida rapida a ESP8266: https://goo.gl/kzh62E

gpb01

#36
Oct 26, 2015, 04:08 pm Last Edit: Oct 26, 2015, 04:09 pm by gpb01
D'accordo, ma se quello sketch esiste, DEVE funzionare in qualche modo. Magari anche solo con una non precisata versione di IDE
Mmm ... probabilmente dipende da quanto è aggiornato il bootloader e da quali porcherie fa ;)


Per il resto, se il programma si inchioda, è QUELLO il problema che devi RISOLVERE, non AGGIRARE.
Pienamente d'accordo ... è una cosa che non ammetto neanche io ...
.. del resto però ... scrive "Non è la sede per spiegare il motivo di questo reset." e quindi, magari c'è qualche altro motivo esterno ? ? ? ::)

Guglielmo
Search is Your friend ... or I am Your enemy !

SukkoPera

Mmm ... probabilmente dipende da quanto è aggiornato il bootloader e da quali porcherie fa ;)
Hai ragione! In effetti non ho idea di quale versione di Optiboot ho testato... Devo riprovare con l'ultimissima!
"Code is read much more often than it is written, so plan accordingly. Design for readability."

Guida rapida a ESP8266: https://goo.gl/kzh62E

pilotinocarter

Scusatemi nuovamente ma questo era un'altro problema.

Forse dovevo cambiare topic.

Dunque......

Ho una caldaia che si scalda con la resistenza pilotata da un SSR comandato a 5 V.
Leggo una sonda NTC 3K3 per il controllo e spegnere la caldaia in temperatura.
Una pulsantiera con ingressi verso massa (INPUT_PULLUP) da il consenso ad una Elettrovalvola 220 AC per due secondi che apre il vapore e manda una scritta alla seriale.

Capita che ad un tratto il comando effettuato dalla pulsantiera non comanda più la valvola anche se sulla
seriale arriva la scritta e quindi il program counter passa sopra al comando della EV.


Ritornando a prima..
Io non posso sapere quante persone utilizzino il soft_restart e perchè. Io ho i miei motivi
e visto che il problema della lettura solo all'accensione FORSE  si risolverà con l'aggiornamento dell' IDE,
allora aspettimo questo evento. :)
E brinderemo con un succo all'albicocca.

pilotinocarter

Chiedo perdono per essermi introdotto in questo forum ed avere fatto perdere del tempo prezioso
alle signorie Vostre con stupidi ed inutili quesiti .

Ma se il program counter passa sopra un semplice comando

digitaWrite( pin, HIGH);
e poi

Serial.print(" VAPORE ATTIVATO");

Per un po' funziona ma ad un tratto
NON COMANDA PIU' IL pin però VAPORE ATTIVATO lo scrive.

Mi dite cosa è che devo sistemare ????????????????????????????

Io invece NON ammetto l'arroganza delle persone " Sapienti "

Sempre con il dovuto rispetto... ovviamente.

pablos71

#40
Oct 27, 2015, 12:50 am Last Edit: Oct 27, 2015, 12:58 am by pablos
Rieccomi...

Pilotando delle elettrovalvole a 220 AC con rele, capita spesso che il programma si inchioda e le pulsantiere
non hanno più effetto. Spengo riaccendo e tutto ritorna corretto.
Uso un alimentatore switching 5 V 3 A per alimentare arduino.
I rele hanno ovviamente il diodo di ricircolo sulla bobina.

Devo mettere le VDR ad ogni elettrovalvola anche se uso un alimentatore switching ?
é il carico induttivo del relè e dell'elettrovalvola che provaca il problema, prova con un sopressore tipo varistore o meglio uno snubber, considera che entrambi sono dei carichi, le tensioni di esercizio del componente devono avere minimo tolleranze +/- 10% delle tensioni nominali

qui te li spiega abbastanza bene entrambi
http://www.elenet.altervista.org/Elettrotecnica/Disturbi_carichi_induttivi.html

Anche lasciare dei pin in alta impedenza può essere una causa, meglio mettere in pullup tutto ciò che non è utilizzato, tutto ciò con la certezza che il software funzioni correttamente al 100%
L'esperienza è il tipo di insegnante più difficile ....
Prima ti fa l'esame e poi ti spiega la lezione.

pilotinocarter

Avevo gia provato con VDR applicato ai capi del 220 dell'alimentatore 5V ma il problema restava.

Proverò a mettere PULLUP quello che non uso

pablos71

#42
Oct 27, 2015, 03:34 pm Last Edit: Oct 27, 2015, 03:36 pm by pablos
Quote
Avevo gia provato con VDR applicato ai capi del 220 dell'alimentatore
ma infatti non va sull'alimentatore.
L'esperienza è il tipo di insegnante più difficile ....
Prima ti fa l'esame e poi ti spiega la lezione.

paulus1969

Allora ti suggerisco un altro sistema.
Aggirare per aggirare... aggiriamo in un altro modo.
Vuoi che quando lo accendi venga eseguita una certa operazione, ma solo quando lo accendi, non quando lo resetti.

Allora sfrutta il fatto che quando lo accendi passi da una condizione in cui non hai alimentazione elettrica ad una condizione in cui hai alimentazione elettrica, invece quando lo resetti il sistema rimane comunque alimentato.

Fai un "coso" che leggi con una porta I/O e rimane allo stato LOW per alcuni secondi quando viene acceso, per poi portarsi ad HIGH e rimanere ad HIGH fino a quando è alimentato.

Al setup() leggi la porta alla quale hai collegato il "coso". Se leggi LOW vuol dire che siamo all'accensione e quindi esegui .... se invece leggi HIGH vuol dire che era un reset.

Ora nasce spontanea la domanda su come si potrebbe fare il nostro "coso".
Ma come disse il tizio che si presentò all'ufficio brevetti con un gancio per salvare la vita ai paracadutisti in caso di avaria del paracadute ("lo prende e si aggancia", il funzionario gli chiese "scusi, ma a cosa si aggancia?" e lui rispose:) "eh... le pare che posso inventare tutto io?"

pilotinocarter

Infatti Paulus, stavo imbastendo una "soluzione" simile alla tua proposta.

Credo però che sia più vantaggioso mettere le VDR a ciascuna uscita a 220, anche sugli SSR nonostante siano ad SCR e non a Triac.
Al momento sembra si sia stabilizzata la faccenda, però bisogna che vada tutto liscio per almeno una settimana.

Grazie di nuovo a tutti e intendo... tutti.

Go Up