Datman:
Ciao, ziopippo.
Prima di tutto, come ho già scritto a Funesto, ti consiglio di usare un//t è unsigned long
if(millis()-t>999) // Una volta al secondo:
{
t=millis();
Serial.print ... ... ...
display.print ... ... ...
}
per fare solo una volta al secondo tutto ciò che non deve essere veramente continuo, per velocizzare il ciclo. Leggere la temperatura, ad esempio, è un'operazione che può essere fatta anche ogni 5 secondi. Per il problema, poi, scrivi qualcosa del tipo: void suona() {if (!muto) tone(buzzer, 1000); else noTone(buzzer);} quando silenzi l'allarme, muto va a 1 e l'allarme smetterà e non potrà più suonare finché muto non verrà rimesso a 0.
Grazie per le dritte!
Questa soluzione mi piace e vedrò di adattarle anche ad un'altro progetto in funzione da diversi anni in modo di evitare gli attuali tempi di latenza.