Come collegare e controllare l'interruttore di un aerosol ad arduino

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!