Consigli per costruire la mia prima stazione meteorologica

Ti do una brutta notizia, il delay() ha un lato oscuro che negli esempio non si manifesta. Mentre nei programmi concreti il delay è raramente usato e limitato a decine di millisecondo.

Aggiungo che è fattibile non usare il delay e al suo posto usare millis() con cui temporizzare le azioni. Leggendo qui e la troverai scritto che delay() è bloccante (il lato oscuro), in realtà ogni istruzione richiede del tempo per essere eseguita e per questo intervallo di tempo nessuna altra istruzione verrà eseguita.

La differenza sta nell'impegnare la CPU per un secondo con delay(1000) e l'impegnare la cpu con digitalWrite(pin, HIGH) la quale impegna la cpu per meno di 1ms.

La digitalWrite è determinante per il funzionamento del programma e non ci sono altre soluzioni (ci sono ci sono), delay non è determinante e ci sono altre soluzioni ad esempio millis().

In definitiva delay torna utile durante la scrittura del codice ma poi deve scomparire.

Ciao.