EEPROM

Die EEPROM Lib ist sehr übersichtlich und kennt nur 2 Routinen.

byte Wert = EEPROM.read(addr);
EEPROM.write(addr, Wert);

Mit write() schreibt man an die Addresse Addr ein Byte Wert, mit read() kann man von der Adresse wieder lesen. Mehr gibt es nicht zu tun.
Man sollte nur darauf achten, daß

Um z.B. das gesamte EEPROM zu lesen kann man folgende Schleife verwenden:

for ( addr = 0; addr <= E2END; addr++) {
    byte value = EEPROM.read(addr);
...
}

Es gibt auch Erweiterungen, mit denen man ganze Datenstrukturen im EEPROM ablegen und wieder laden kann. z.B.

EEPROMStruct

Mit dieser ERweiterung können sie ganze Strukturen im EEPROM ablegen. Wenn Sie mehr als 1 Struktur ablegen möchten, müssen Sie für die Startadressen der Strukturen die Größen selber berechnen (mit sizeof()).
Die Erweiterung (ist Bestandteil meiner MCSTools-Erweiterung) besteht nur aus einer einzigen Datei. Diese können Sie entweder in ihrem Sketchverzeichniss mit ablegen, oder Sie machen sich einen eigenen Ordner im libraries-Verzeichniss in Ihrem Sketchbook und plazieren dort die Datei.
z.B.

sketchbook
  libraries
    EEPROMStruct
      EEPROMStruct.h
EEPROMStruct.h
#include <avr/eeprom.h>
#include <EEPROM.h>
#include <Arduino.h>  // for type definitions
 
template <class T> int EEPROM_writeStruct(int address, const T& value)
{
    const byte* p = (const byte*)(const void*)&value;
    unsigned int i;
    for (i = 0; i < sizeof(value); i++)
		  eeprom_write_byte((unsigned char *)address++, *p++);  
    return i;
}
 
template <class T> int EEPROM_readStruct(int address, T& value)
{
    byte* p = (byte*)(void*)&value;
    unsigned int i;
    for (i = 0; i < sizeof(value); i++)
          *p++ = eeprom_read_byte((unsigned char *)address++);
    return i;
}