Eliminare l’uso della funzione delay() nei progetti Arduino

L’articolo di Maker.io Staff esplora le ragioni per cui la funzione delay() è considerata una cattiva prassi nella programmazione di Arduino e presenta metodi alternativi.

La funzione delay() interrompe l’esecuzione del programma per un periodo specificato, ma questo approccio sincrono può essere problematico, in quanto ferma operazioni critiche come la lettura dei sensori e la ricezione di input. Una soluzione è utilizzare la funzione millis(), che fornisce il numero di millisecondi trascorsi dal lancio dello sketch senza bloccare il programma.

Il codice fornito mostra come sostituire delay() con millis(), usando una variabile per tracciare l’intervallo tra le esecuzioni del codice. In alternativa, si possono utilizzare contatori personalizzati per impostare gli intervalli, sebbene questa tecnica sia limitata dalla velocità dell’orologio del microcontrollore e possa non essere accurata per protocolli di comunicazione complessi.

Un’altra tecnica avanzata impiega gli interrupt del timer hardware, che possono eseguire codice periodicamente con maggiore precisione. Tuttavia, la configurazione di questi timer è più complessa e non è sempre necessaria per progetti più semplici.

 

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Main Menu