[RISOLTO] Probabile "saturazione" di risorse ram

Serial.print("CIAO");
Serial.print(F("CIAO"));

la seconda versione occupa meno RAM perché la stringa non viene letta nella RAM prima di essere "stampata", ma viene prelevata direttamente dalla PROGMEM.

Effettua questa modifica su tutte le stringhe "literal", come ho detto prima, e vedi se non si riavvia più.

Il riavvio del micro è un indicatore abbastanza certo di un problema di esaurimento RAM.