Pulsanti ritentivi con display Nextion [RISOLTO]

Buongiorno a tutti.
Problemino dell'ultima ora che non risco a risolvere elegantemente da solo.
Ho un Arduino Mega collegato ad un display Nextion. Sul display ci sono dei dual state buttons.
Mettiamo che un botone è collegato ad un uscita di Arduino.
Premo e alzo un uscita. ripremo e abbasso l'uscita.
Adesso premo e alzo l'uscita e poi va via la corrente.
Torna la corrente, L'uscita di arduino è bassa e il tasto è tornato nello stato non attivo.
Per risolvere il problema ho pensato di memorizzare nella Eeprom del nextion lo stato del pulsante e nella Eprom di Arduino lo stato dell'uscita.
Al successivo riavvio in setup riporto tasti e uscite allo stato memorizzato.

Adesso mi chiedo se magari c'è una soluzione meno macchinosa che mi sfugge.
Grazie a tutti per eventuali consogli.

Perdona la "non risposta", ma in questi casi non è mai consigliabile riattivare in modo automatico un'uscita.
Specialmente se connessa a qualcosa di fisico.

Ciao e grazie per la risposta.
In effetti per la sicurezza capisco che non sia il massimo.
Ma resta comunque la questione relativa ai settaggi. per esempio ho un bottone che mi abilità e disabilità il crepuscolare.
Io lo abilito e al primo sbalzo di tensione che dalle mie parti avviene con frequenza mi trovo il settaggio disabilitato. :confused: è una bella rogna

Non credo esista una soluzione differente dal memorizzare lo stato. L'unica cosa che non farei è la doppia memorizzazione/gestione. Ovvero non demanderei la logica del sistema anche al display.
La logica di funzionamento deve essere dettata dalla MCU, anche perché se quando premi il pulsante sul display prima che l'informazione arrivi alla MCU e che questa la salvi in EEPROM potrebbe andare via la tensione e ti ritroversti che sul display hai un informazione differente rispetto a quella della MCU, quindi potresti pensare che il crecuscolare è attivo quando invece per la MCU è disattivato.
Memorizzarlo in EEPROM ok ma solo lato Arduino, all'avvio del sistema leggi la memoria, imposti le uscite e invii i settaggi al disply.

Okay. speravo ci fosse una soluzione più semplice.
L'idea di memorizzare su entrambi i dispositivi è uscita fuori perché ho provato a memorizzare lo stato del bottono sul nextion e riposizionarlo in quello stato al riavvio ma arduino non lo vede proprio perché non è stato premuto nulla sul display e quindi i due risultavano sfasati.
Certo se va via la tensione proprio mentre tocco il display ho lo stesso problema. Quindi l'unica soluzione è di memorizzare lo stato su Arduini e al riavvio riposizionare i pulsanti sull'ultimo stato in modo da avere tutto in fase.
Va bene. grazie per i consigli.

La soluzione più semplice esiste ed è ... alimentare il tutto con una cosa come QUESTA ... così hai una tensione ben livellata e, in caso di mancanza di rete, comunque hai l'alimentazione dalla batteria.

Esiste anche una VERSIONE più piccola (... e più economica), ma devi vedere la corrente in uscita di cui hai bisogno.

Guglielmo

Guarda lo prenderei solo per il nome "fishino" mi piace troppo :smiley:
A parte gli scherzi grazie per l'informazione. Magari non in questa applicazione ma comunque sapere che c'è una soluzione diversa è sempre una buona cosa.

Scrivo quello che ho fatto magari serve a qualcuno.
Ho seguito il suggerimento di "Fabpolli" e quindi ho gestito il tutto su arduino.

Nella logica del tasto aggiungo:

//Memorizzo lo stato del pulsante nella Eeprom    
EEPROM.write(10, EnableCrepuscolare);

in Setup:

  //Rimetto la variabile allo stato che avevano prima dello spegnimento
  EnableCrepuscolare = EEPROM.read(10);
  //Rimetto Il Pulsante nello stato che avevano prima dello spegnimento
  ButtonEnableCrepuscolare.setValue(EEPROM.read(10));

dai alla fine non è neanche un lavoro troppo complicato.
grazie a tutti per i consigli

Bene visto che ci sei ti suggerisco di non urare il metodo write ma il metodo put che offre alcuni vantaggi (lascio a te se approfondire o meno) ma quello più importante è che non scrive la memoria se non necessario risparmiando preziosi cicli di scrittura e allungando quindi la vita alla cella di memoria.
Poi se editi il tuo primo post del topic inserendo la dicitura [RISOLTO] all'inizio aiuti ancora di più chi cercerà e troverà il post

Si avevo letto anche dei cicli di scrittura non infiniti.
Grazie.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.