Pour simplifier la gestion des boutons, éventuellement utilisez la librairie de @bricoleau
voici un exemple d'écriture en EEPROM avec vérification dans le setup que ce qu'on charge est un tant soit peu cohérent (comparaison sur magic)
#include <EEPROM.h>
#include <simpleBouton.h> // http://forum.arduino.cc/index.php?topic=375232.0
simpleBouton bouton(2);//Cablage : pin D2---BP---GND
struct t_params {
uint32_t magic;
char nom[50];
int valeur;
};
t_params parametresDefaut = {0xDEADBEEF, "Temperature", 10};
t_params parametres;
void ecrire() {
EEPROM.put(0, parametres);
}
void lire() {
EEPROM.get(0, parametres);
}
void imprime() {
Serial.print(parametres.nom);
Serial.write('\t');
Serial.println(parametres.valeur);
}
void setup()
{
Serial.begin(115200);
lire();
if (parametres.magic != parametresDefaut.magic) { // la mémoire n'était pas initialisée
parametres = parametresDefaut;
ecrire();
}
imprime();
}
void loop()
{
if (bouton) {
Serial.print(F("Appui bouton -> "));
parametres.valeur++;
ecrire();
imprime();
}
}
à chaque fois qu'on appui sur le bouton, la valeur de la température augmente de 1° et est écrite dans l'EEPROM