Sintonizzare? Sicronizzare, forse?...
Si sincronizzare
E' solo un suggerimento. Non è il codice completo!
Il punto cruciale è:
Arduino durante i 2 minuti di attesa iniziale deve eseguire del codice?
Se la risposta è si, si deve impiegare millis().
Se la risposta è no, il delay può semplificare di molto la scrittura dell'algoritmo.
Potrebbe volere dire che arduino acquisisce dei segnali EEG e in funzione di questi verrà eseguito del codice per controllare l'aerosol.
In tal caso l'uso di millis() è inevitabile.
In genere un programma contenente dei delay non è mai buon codice, perché non è facilmente espandibile e il tentativo di espanderlo compromette le funzionalità già sviluppate.
Ora rileggendo la tua presentazione, vedo che sei Ingegnere meccanico, bene delay(1000) ferma tutti gli ingranaggi per 1 secondo.
Mentre millis() permette di temporizzare l'esecuzione di porzioni codice non fermando gli altri ingranaggi. L'unione di millis() e delle macchine a stati finiti permette di eseguire porzioni di codice temporizzate, scegliendo l'ordine sequenziale durante l'esecuzione.
Esempio banale: A, B, C e D sono porzioni di codice, durante l'esecuzione del codice questo decide la sequenza DACB o ABDC o altro in base allo stato attuale del sistema.
Il link seguente punta ad un articolo del mio blog.
A fine articolo trovi un link al progetto con wokwi.
L'obbiettivo è di mostrare l'unione di millis() con la macchina a stati finiti basata su comando switch/case, senza fare mai uso della funzione delay().
Ciao.
Si nei due minuti di attesa iniziale arduino deve eseguire il codice, infatti mi è chiaro, grazie anche ai suggerimenti mandati nei messaggi precedenti, la necessità di andare ad utilizzare la funzione millis() piuttosto che delay().
Vedrò sulla base di quello che mi è stato fornito, come andare ad adattare il codice alla mia specifica necessità.
Grazie!