Salvataggio stato relè

Salve a tutti, sto realizzando una scheda con dei relè con a bordo la ethernet shield per controllarli anche da remoto; quello che mi manca per ora è un sistema per salvare lo stato dei relè in modo che se si dovesse verificare un blackout quando torna l'alimentazione la scheda si riaccende con l'ultimo stato salvato. A primo impatto mi verrebbe da usare una eeprom esterna soltanto non so quanta autonomia mi può offrire visto che non può essere scritta all'infinito. Per stare sicuro ogni volta che cambia lo stato dei relè ne farei il backup sulla eeprom, supponendo un centinaio di salvataggi al giorno, quanto mi durerebbe la eeprom? Conviene usare altro hardware?
Chiedo aiuto.

Batteria tampone...e salvataggio su EEPROM solo se l'arduino rileva un assenza di tensione...usa il tempo che gli dà la batteria tampone per fare il salvataggio...è l'unica cosa che m'è venuta in mente in 30 secondi! :slight_smile:

I Produttori di EEprom Ti garantiscono da 100.000 a 1.000.000 cancelazioni/scritture di ogni singola cella; Se metti i dati distribuiti in funzione dell ora/goirno ne puoi avere molte di piú.

In questo modo si rompe sicuramente prima i Relé visto che per quelli sono garantiti molto meno cicli.

Ciao Uwe

Quoto la soluzione di astroz78, anche se come dice uwefed tutte le eeprom hanno un ciclo di vita in lettura e scrittura, ma se la utilizzi soltanto quando va via l'alimentazione tutto dovrebbe funzionare a dovere.
Se la tensione va via ogni minuto sorge il problema :smiley:

Ciao a tutti

@Gi0rgi0

scusami la precisazione: gli EEProm hanno una limitazione in scrittura / cancelazione non in lettura.
In lettura possono fare un numero infinito di cicli.

@Pelletta
L' alternativa agli EEPROM sono le memorie magnetoelettriche F-RAM (per esempio FM24C04A della Ramtron da 512 Byte e interfaccia I2C) Li puoi mettere al posto delle EEPROM e il produttore garantisce

F-RAM experiences 1E12 read/write cycles or greater.

Li trovi dalla https://www.distrelec.it/ishopWebFront/search/luceneSearch.do?dispatch=find&keywordPhrase=24c256 ( purtroppo non ce l'hanno in magazziono e non dicono quando sará fornibile) o fatti spedire degli campioni.
http://www.ramtron.com/products/nonvolatile-memory/serial.aspx
http://www.ramtron.com/products/nonvolatile-memory/serial-product.aspx?id=56

Una considerazione necessaria é anche se al ritorno dell'alimentazione l'acensione di determinate utenze non pregiudica un pericolo o potenziale pericolo.

Ciao Uwe

Grazie per le risposte, quindi sarebbe meglio alimentare solo arduino direttamente dalla batteria e salvare lo stato solo quando manca l'alimentazione di rete, non ci avevo pensato. Dovrò stare attento per far ricaricare la batteria a questo punto.
Per ora vi ringrazio per l'aiuto

scusmi Pelletta
nel fratempo ho modificato il mio topic. Rileggilo per favore. mi sono ricordato degli F-RAM.
Ciao Uwe

@uwefed

Grazie per la correzione, a volte la fretta scrive inesattezze :wink:

Mi è venuta una mezza idea ma non essendo molto pratico in elettronica è meglio che ve la descrivo. In pratica invece di usare una batteria ho pensato di mettere dei condensatori per immagazzinare quel pò di corrente necessaria ad arduino per scrivere la eeprom quando manca la tensione di rete. Il circuito principale sarà composto da arduino e la eeprom mentre i relè e altro saranno alimentati a parte quindi quando manca la corrente i condensatori dovranno alimentare soltanto arduino e la eeprom. Di spazio ne ho abbastanza quindi non è un problema mettere dei condensatori anche piuttosto grandi, diciamo per ora ho provato con due da 4700uF e sembra che arduino con lo sketch blink lo regge per circa 8 secondi.
Può essere valida come idea o rischio di rompere qualcosa?
Se non è chiaro potrei buttare giù uno schemino al volo.
Saluti

Ciao Pelletta
Usa i F-RAM, che puoi scrivere quante volte vuoi e memorizza lo stato dei relé ogni volta che lo cambi.
Cosí risolvi tutti i problemi.

Il problema dei condensatori é che la tensione si abbassa in funzione della carica prelevata.

Ciao Uwe

no PROGMEM? ::slight_smile:

PROGMEM mette le variabli nella memoria flash del ATmega. Anche sulla memoria Flash sono limitazioni di cicli di scrittura.
Ciao Uwe