While EEPROM.read and EEPROM.write are valid methods, it's like mopping the floor with a toothbrush. UseUse EEPROM.put and EEPROM.get instead. For
For example:
#include <EEPROM.h>
void setup()
{
Serial.begin(9600);
uint addr = 0;
struct {
uint val = 0;
char str[20] = "";
} data;
EEPROM.begin(512);
// load EEPROM data into RAM, see it
EEPROM.get(addr,data);
Serial.println("Found: "+String(data.val)+","+String(data.str));
// change data in RAM
data.val += 5;
strncpy(data.str,"hello",20);
// replace values in EEPROM
EEPROM.put(addr,data);
EEPROM.commit();
// clear data in RAM
data.val = 0;
strncpy(data.str,"",20);
// reload data for EEPROM, see the change
EEPROM.get(addr,data);
Serial.println("New values are: "+String(data.val)+","+String(data.str));
}
void loop()
{
delay(1000);
}
#include <EEPROM.h>
void setup()
{
Serial.begin(9600);
uint addr = 0;
struct {
uint val = 0;
char str[20] = "";
} data;
EEPROM.begin(512);
// load EEPROM data into RAM, see it
EEPROM.get(addr,data);
Serial.println("Found: "+String(data.val)+","+String(data.str));
// change data in RAM
data.val += 5;
strncpy(data.str,"hello",20);
// replace values in EEPROM
EEPROM.put(addr,data);
EEPROM.commit();
// clear data in RAM
data.val = 0;
strncpy(data.str,"",20);
// reload data for EEPROM, see the change
EEPROM.get(addr,data);
Serial.println("New values are: "+String(data.val)+","+String(data.str));
}
void loop()
{
delay(1000);
}