ciao FabrizioRossi
3 cose.
L' Arduino UNO usa un risonatore come base di clock. Quello é inpreciso sul ordine dei 0,3% che sono ca 0,5 minuti su 180 minuti un quarzo ha una precisione di ca 100 volte maggiore. Lo stesso Sketch su un Arduino Leonardo diventa piú preciso.
Poi Tu determini i secondi con il millis e crei una imprecisione perché se no becchi il pasaggio preciso tra 999 e 1000, ma Ti ritrovi a controllare a 1003 perché il ciclo loop non passa ogni millisecondo, ma gli serve piú tempo hai ogni secondo questa imprecisione.
Trasforma il tempo del conteggio in millisecondi e fai un controllo di quello per determinare se il tempo é trascorso. Trasforma il tempo in millisecondi che é passato dal start fino adesso in secondi , minuti e ore per avere il tempo visualizzato corretto.
In questo modo l' errore rispetto il clock resta siccuramente sotto il secondo.
if (secondi==60) {
secondi=0;
minuti=minuti+1;
}
Questo controllo é pericoloso.
meglio prevedere che i secondi non sono preciasamente 60
if (secondi>=60) {
secondi -=60;
minuti=minuti+1;
}
Ciao Uwe