Problema scrittura su eeprom arduino nano

Ciao ragazzi.
Ho modificato un programma per gestire 8 relè anzichè 4, tuttavia non riesco a far salvare la programmazione giornaliera in eeprom :’( , mentre quello da 4 funziona benissimo.

Mi date una mano col codice allegato?

Grazie mille!

PS: nano Sprinkler_evo.ino gestisce perfettamente le 4 programmazioni, mentre next.ino non ne vuol sapere di salvare i dati su eeprom ma li mantiene in memoria fino al reset (o mancanza di alimentazione).

next.ino (50.6 KB)

nanoSprinkler_evo.ino (51 KB)

Non ho visto il codice, ma hai controllato di non uscire fuori dalla memoria EEPROM, le locazioni sono solo 1024. Se hai aggiunto dati è possibile che abbia sforato?

Ho letto il codice. Hai il WatchDog a 2 secondi. Hai calcolato il tempi di lettura dalla EEPROM di tutti i dati. Prova stampando il millis su seriale ad ogni fine loop.

Ciao PaoloP, grazie per la risposta. Ho provato eliminando il watchdog ma comunque non salva tutta la programmazione: salva correttamente Ora, Minuti e Durata ma non i giorni.

Temo ci siano problemi con l'array bidimensionale GiornoInn[8][7] e statoGiorno[8][7] che gestiscono la programmazione dei giorni (8 uscite x 7 giorni).

In particolare, temo ci siano problemi a partire dalla riga 1469 del file next.ino (ovvero lo Stato 7 che si occupa della programmazione della pianificazione e relativo salvataggio in eeprom), ma non riesco a trovare il problema.

Devi fare debug con la seriale, inviando messaggi con lo stato delle variabili o del punto del programma che stai elaborando.
Così alla cieca è impossibile da risolvere leggendo solo il codice.

PaoloP:
Devi fare debug con la seriale, inviando messaggi con lo stato delle variabili o del punto del programma che stai elaborando.
Così alla cieca è impossibile da risolvere leggendo solo il codice.

Debug fatto.
Dalle risposte che impostato nella seriale il sistema legge e scrive correttamente sulla eeprom, ma in realtà da qualche parte c’è un problema…

Ora sto provando di fare due array multidimensionali [4][7] invece di uno unico [8][7]… magari è li il problema…

Sono riuscito a far salvare i dati nella eeprom... il problema era banale: dovevo dichiarare gli array non come byte ma come int. :sleeping: Ora devo capire perchè nel setup vedo solamente la programmazione delle prime due uscite... :'(

Come non detto, continua a non salvare i giorni di attivazione mentre gli altri parametri si. :'(