Mantenere un certo valore

Ciao a tutti…

ho una domanda che mi è entrata in testa questa sera… Mettiamo caso che io ho un collegamento semplicissimo: 2 pulsanti (in) e 1 led (out)

lo sketch fa si che con pulsante A led è acceso, pulsante B è spento (e ovviamente lo stato viene mantenuto fino che non si preme uno dei due tasti).
è possibile far in modo di scrivere da qualche parte l’ultimo livello prima dello spegnimento in modo da riaverlo ad un’accensione successiva?

ad esempio se il led è high e l’arduino dovesse spegnersi, al suo riavvio come faccio a riotrovarmi di nuovo high?

puoi usare la memoria eeprom che è non volatile, però dopo 100.000 cicli di scrittura si danneggia, se metti in un loop un aggiornamento continuo dello stato porta diciamo che in un giorno lo saluti. O usi una batteria tampone o una SD con file ini che viene caricato nel setup()

ciao

Oppure puoi predisporre un circuito di arresto lettura. Premi un pulsante, l’Arduino sa che “sta per chiudere”, fa l’ultima lettura, memorizza il valore, magari accende un led per far capire all’utente di aver terminato i compiti e che si può staccare l’alimentazione.
Puoi anche mettere un condensatorone che fornisca energia per un secondo e mettere un partitore di tensione per leggere l’assenza di alimentazione, nel caso di blackout improvvisi: quando il micro rileva la caduta dell’alimentazione, con l’energia del condensatore riesce a leggere e salvare l’ultimo stato.

grazie per le risposte...

provo a spiegare meglio cosa vorrei fare.

si tratta di un mio progetto, una scheda basata sull'arduino dove è presente un lcd e un modulo xbee e qualche led volevo inserire una "configurazione" personalizzabile tramite lcd e che quindi va salvata nel caso di reset o addirittura spegnimenti.

ora, sopra mi è stata consigliata la batteria tampone... l'idea non è male, ma la batteria da quanto devo prenderla? quanto durerà? perchè per pcb sarebbe figa la pila rotonda sottile ma vedo in questo momento che (almeno su ebay) arrivano fino circa 3.3V...

inoltre già che parliamo di batteria vado un attimo offtopic, secondo voi lcd+atmega328+xbee alimentati a batteria, quanto mi durano?

l'idea di leo la provo al volo oggi pomeriggio su breadboard

Io ti ho parlato di un grosso condensatore da usare come sistema di backup per l'alimentazione del solo microcontrollore quel tanto che basta a salvare qualche dato in EEPROM. I supercondensatori come batterie tampone sono un sistema semplice per fornire energia per poco tempo. Considerando che in qualche decina di ms dovresti salvarti tutti i dati, trovo più semplice implementare tale soluzione.

Però vedo che la tua esigenza non è quella di salvare lo stato di un qualcosa che varia con una certa frequenza ma solo di salvarti delle "impostazioni", quindi escluderei la questione della batteria solo per questo scopo. Una volta messe le impostazioni nella EEPROM interna, sei a cavallo: ad ogni avvio leggi i parametri e configuri il tuo dispositivo in base ad essi.

Se invece vuoi una vera e propria batteria tampone, devi metterti a fare un paio di conti per verificare quanto tutto il tuo circuito consumi e dimensionare una batteria in base a questo dato ed a quanto il tuo circuito deve "sopravvivere" in assenza di alimentazione principale.

Forse tu intendi una pillolina come batteria, Io come tampone intendo proprio un sistema che dura anche 12 ore :) con una Batteria al piombo 6V - 4/5Ah sempre in carica, che interviene in assenza improvvisa di tensione di rete. Però il sistema si shutdown con pulsante è carina e piu semplice.

ciao