Parti uguali, risultati differenti

Salve, sto stendendo del codice per attivare 4 diversi relay gestiti tramite un menu a pulsanti. Non vi starò a spiegare tutto il codice, perché non è necessario per il tipo di problema che ho. Vi spiego: Ho due file .ino: uno è click_press_button_r05 in cui c’era una prova scheletro che avevo fatto tempo fa per lo scorrimento del menu e la selezione delle voci, il secondo invece, chiamato Total_r05 sarebbe il programma completo di altre funzioni (in cui è inclusa una parte uguale a click_press_button_r05. Il problema è che il primo file funziona benissimo, mentre il secondo, sulle stesse funzioni si blocca dopo aver premuto tre volte un pulsante qualsiasi e non c’è modo di farlo ripartire. Quale può essere il problema? Chiedo a voi se magari avete avuto la stessa rogna. Di seguito allego il codice dei due file.

click_press_button_r05.ino (8.65 KB)

Total_r05.ino (25.9 KB)

Non ci dici che tipo di Arduino hai, ma ad occhio sembrerebbe un problema di memoria RAM.

Anch io dico senza analizzare il codice che é un problema RAM. Ogni Serial.print("testo"); consuma RAM.
Usa la macro F() per non pasare tramita la RAM:
Serial.print(F("testo"));
Stessa cosa cale per
lcd.print("");

Ciao Uwe

Compilando con la nightly build esce

Binary sketch size: 23.166 bytes (of a 32.256 byte maximum) - 71% used
Minimum Memory usage: 1.331 bytes (of a 2.048 byte maximum) - 64% used

Sei a corto di memoria, penso a causa degli array dinamici, prova a diminuirne la dimensione.