#include <EEPROM.h>
const int EEPROM_ADDRESS = 0;
const int MAX_STRING_LENGTH = 50;
struct EEPROMData {
String value;
EEPROMData() : value("") {}
};
void setup() {
Serial.begin(9600);
EEPROMData data;
EEPROM.get(EEPROM_ADDRESS, data);
// set default values to eeprom only if first value is empty
if (data.value.length() == 0) {
Serial.println("EEPROM memory at the first address is empty");
for (int i = 0; i < 11; i++) {
EEPROMData defaultData;
defaultData.value = String(""); // Example data to write
int address = EEPROM_ADDRESS + i + sizeof(defaultData);
EEPROM.put(address, defaultData);
}
}
}
String getConfigValue(int i) {
String result = "";
EEPROMData data;
int address = EEPROM_ADDRESS + i * sizeof(data);
Serial.println(address);
EEPROM.get(address, data);
if (data.value.length() > 0) {
result += data.value;
}
return result;
}
void saveValueToEEProm(int index, String value) {
EEPROMData data;
data.value = value;
int address = EEPROM_ADDRESS + index * sizeof(data);
EEPROM.put(address, data);
}
void loop() {
/**
for (int i = 0; i < 11; i++) {
EEPROMData newData;
int address = EEPROM_ADDRESS + i + sizeof(newData);
EEPROM.get(address, newData);
Serial.println(newData.value);
}
**/
saveValueToEEProm(1, String("Hola 1"));
saveValueToEEProm(2, String("Hola 2"));
Serial.println("Val 1: ");
Serial.print(getConfigValue(1));
Serial.println("Val 2:");
Serial.print(getConfigValue(2));
Serial.println("Val 3:");
Serial.print(getConfigValue(3).length());
delay(500);
}