In questo modo non appena togli l'alimentazione e la rendi, il programma riformatta la EEPROM e tu perdi le regolazioni salvate ![]()
Io ti ho detto come faccio. Ecco un esempio in concreto:
void controllaInizializzazione() {
byte valore[5];
int i;
//leggo la EEPROM interna
for (i=0; i<5; i++) {
valore[i]=EEPROM.read(i+INDIRIZZO_EEPROM);
delay(5);
}
//il dispositivo è stato inizializzato?
if (valore[0]!=0xBA) { //no.
valore[0]=0xBA; //codice di controllo
valore[1]=highByte(410); //valore iniziale per il CO
valore[2]=lowByte(410);
valore[3]=highByte(210); //valore iniziale per il CH4
valore[4]=lowByte(210);
//li scrivo nella EEPROM
for (i=0; i<5; i++) {
EEPROM.write(i+INDIRIZZO_EEPROM, (byte)valore[i]);
delay(5);
}
}
//imposto le soglie di allarme
maxCO=((valore[1]<<8) | valore[2]);
maxCH4=((valore[3]<<8) | valore[4]);
}
In questo modo se non trovo il carattere di controllo, scrivo i dati di default, se lo trovo li carico.