CONTENUTO ►
Le funzioni delay() e delayMicroseconds() di Arduino svolgono un ruolo importante ed è quasi impossibile scrivere la maggior parte dei programmi senza questi comandi. Sul nostro sito web troverete molti esempi in cui è necessario controllare il tempo con un ritardo, ad esempio per evitare che il contatto del pulsante tintinni quando viene premuto. Consideriamo lo scopo e l’applicazione dei comandi delay e delayMicroseconds nella programmazione del Arduino.
Per questa attività sono necessari:
- Arduino Uno / Arduino Nano / Arduino Mega
- LED e resistenza
- pulsante
- breadboard
- cavi di collegamento
Come si usa delay, delaymicroseconds di Arduino IDE?
In questo post esamineremo solo le caratteristiche di base delle funzioni di ritardo nella programmazione dei microcontrollori ed esempi di utilizzo di queste funzioni sotto forma di un piccolo sketch. Avrete bisogno solo di una scheda Arduino, una breadboard, un LED e una resistenza. Iniziamo la rassegna con una descrizione della funzione delayMicroseconds di Arduino, perché questa funzione non si trova spesso nei programmi.
Sintassi della funzione delay() e delaymicroseconds()
La funzione delayMicroseconds Arduino arresta l’esecuzione del programma per un numero specificato di microsecondi (1 secondo conta come 1.000.000 di microsecondi). Se è necessario ritardare il codice per più di qualche migliaio di microsecondi, si consiglia di utilizzare la funzione delay(). Vediamo un semplice esempio di utilizzo delle funzioni delayMicroseconds() e delay() in Arduino IDE per far lampeggiare un LED.
La funzione delay() Arduino interrompe l’esecuzione del programma per un determinato numero di millisecondi (1 secondo corrisponde a 1000 millisecondi). Mentre il programma viene fermato con il comando delay(), non è possibile eseguire il polling dei sensori collegati alla scheda o altre operazioni come la scrittura di dati nella EEPROM di Arduino. In questo caso è necessario utilizzare la funzione millis per attivare il multitasking.
Programma Arduino con delay() e delaymicroseconds()
void setup() { pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); delayMicroseconds(1000); // pausa per 1000 microsecondi digitalWrite(13, LOW); delayMicroseconds(1000); // pausa per 1000 microsecondi digitalWrite(13, HIGH); delay(1000); // pausa per 1 secondo (= 1000ms) digitalWrite(13, LOW); delay(1000); // pausa per 1 secondo (= 1000ms) }
Spiegazione del codice per utilizzare delay() e delaymicroseconds()
- delayMicroseconds() arresta il programma per il tempo specificato nei parametri. Ci sono 1000 microsecondi in un millisecondo e un milione di microsecondi in un secondo.
Conclusione. La funzione millis() Arduino non interrompe l’esecuzione del programma, ma riavvia il conto alla rovescia dei millisecondi con il contatore azzerato. Al contrario, delay e delayMicroseconds arrestano l’esecuzione del programma per un numero specifico di millisecondi o microsecondi, rispettivamente. L’uso di una o dell’altra funzione di pausa in un programma di microcontrollore dipende dal compito da svolgere.
Lascia un commento