Scrivi 3 stringhe lunghe 32/33 caratteri su 3 indirizzi che distano tra loro un solo byte...
La seconda put sovrascrive un pezzo della prima e la terza sovrascrive un pezzo della seconda.
Soluzione complessa: studia bene come funziona il salvataggio in eeprom e quanto "spazio" occupano le varie variabili.
Soluzione ignorante: inizializza add1, add2, add3 con 0, 100, 200
Certo, si calcola la lunghezza della stringa (nel tuo caso vedo che sono tutte da 32 byte) e si calcola l'indirizzo esatto spenza sprechi ... basta ragionare sul fatto che la EEPROM è come un array che va da 0 a 1023 ...
int add1 = 0; // si parte dall'indirizzo 0 e si arriva al indirizzo 31 (32 caratteri)
int add2 = 32; // si parte dall'indirizzo 32 e si arriva all'indirizzo 63 (ulteriori 32 caratteri)
int add3 = 64; // si parte dall'indirizzo 64 e si arriva all'indirizzo 95 (ulteriori 32 caratteri)
... chiaro che bisogna avere variabili di lunghezza massima determinata.
Per le variabili che NON sono array, la lunghezza è:
byte è lungo 1 byte
int è lungo 2 bytes
long int è lungo 4 bytes
float è lungo 4 bytes