Wie speichert man eine int-Variable mit eeprom.h auf dem ESP32?
Antwort vomMit dem ESP32 funktioniert `EEPROM.h` nur als Emulation im Flash, nicht wie ein echter Hardware-EEPROM. Ein `int` kannst du so speichern und lesen: ```cpp #include <EEPROM.h> const int EEPROM_SIZE = 64; const int ADDR = 0; void setup() { Serial.begin(115200); EEPROM.begin(EEPROM_SIZE); int wert = 12345; // schreiben EEPROM.put(ADDR, wert); EEPROM.commit(); // lesen int gelesen = 0; EEPROM.get(ADDR, gelesen); Serial.println(gelesen); } void loop() { } ``` Wichtig: - `EEPROM.begin(EEPROM_SIZE);` einmal beim Start aufrufen - nach dem Schreiben immer `EEPROM.commit();` - `EEPROM.put()` und `EEPROM.get()` sind besser als `write()`/`read()` für `int` - ein `int` belegt auf dem ESP32 normalerweise 4 Byte Alternative: Für den ESP32 ist `Preferences` meist besser als `EEPROM.h`, weil es moderner und robuster ist: https://docs.espressif.com/projects/arduino-esp32/en/latest/api/preferences.html Beispiel mit `Preferences`: ```cpp #include <Preferences.h> Preferences prefs; void setup() { Serial.begin(115200); prefs.begin("meine-app", false); prefs.putInt("meinWert", 12345); int wert = prefs.getInt("meinWert", 0); Serial.println(wert); prefs.end(); } void loop() { } ``` Kurz: - mit `EEPROM.h`: `put()` + `commit()` - für neue ESP32-Projekte besser: `Preferences`