Libreria Arduino Timer per ritardare

Libreria Arduino Timer Per Ritardare



Il timer è uno dei componenti chiave di Arduino per gestire attività sensibili al tempo. I timer di Arduino di solito usano la funzione delay() per fornire un ritardo o mettere in pausa l'esecuzione per piccoli intervalli di tempo. Tuttavia, per il multitasking è necessaria una libreria speciale per le funzioni di ritardo.

Questa guida coprirà varie librerie di timer Arduino per ritardare con brevi descrizioni. Prima di questo cerchiamo di capire la limitazione della funzione Arduino delay().







Limitazioni del ritardo()

La funzione delay() non può essere utilizzata se si desidera eseguire diverse attività contemporaneamente, poiché è una funzione di blocco. Significa che ogni volta che la funzione delay() viene utilizzata per sospendere l'esecuzione di un'attività, non consente l'esecuzione di altre funzioni nel frattempo. Pertanto, quando qualcuno desidera interrompere un programma mentre ne esegue altri, non è possibile utilizzare delay().



Allora cosa fare?



Libreria Arduino Timer per ritardare le chiamate alle funzioni

Per risolvere questo problema, dovresti utilizzare librerie speciali progettate per eseguire il ritardo. Queste librerie consentono di mettere in pausa alcune delle funzioni del programma per un po' di tempo e di eseguirne altre nel frattempo. Queste librerie sono librerie timer che non bloccano il multitasking. Possono essere utilizzati per chiamare le funzioni come e quando richiesto.





Come includere la libreria timer Arduino nel codice Arduino

Per includere prima la libreria timer dobbiamo aggiungere il file zip andando al file Includi libreria sezione nell'IDE di Arduino. Per una descrizione dettagliata dell'aggiunta di librerie Arduino, puoi leggere l'articolo su come installare la libreria nell'IDE di Arduino .

Passo 1

Innanzitutto, dovrai scaricare la libreria del timer Arduino.



Passo 2

Dopo aver scaricato la libreria del timer, apri Arduino IDE e vai su Sketch quindi Includi libreria, quindi fai clic su Aggiungi libreria ZIP.


Verrà visualizzato Arduino 'Libreria installata' in uscita.

Passaggio 3

Dopo aver aggiunto la libreria ZIP all'IDE di Arduino, apparirà nell'elenco a discesa delle opzioni Includi libreria nell'IDE di Arduino. Da qui includere Timer biblioteca.


Quando includi il file 'Timer' library, la direttiva del preprocessore apparirà sullo sketch. In caso contrario, puoi seguire il passaggio 4 per includere manualmente la libreria.

# includere < Timer.h >

Passaggio 4

Per includere la Arduino Timer Library nel codice Arduino, è necessario utilizzare il file #includere direttiva unitamente alla (.H) nome della libreria del timer dell'estensione e quindi creare un timer come mostrato di seguito.

#include
timer automatico = timer_create_default ( ) ;


Dopo aver creato un timer, devi creare una funzione per chiamare quel timer. Potrebbe essere necessario chiamare il timer in un determinato istante di tempo, dopo un breve ritardo o dopo un intervallo di tempo. Di seguito vengono forniti esempi per richiamare i timer in tali condizioni.

Nel caso in cui desideri un breve ritardo

timer.in ( ritardo, function_to_call ) ;
timer.in ( ritardo, funzione_da_chiamare, argomento ) ; // o con un argomento facoltativo per function_to_call


In questo caso possiamo utilizzare il timer.in() function per introdurre un ritardo prima di chiamare una funzione specifica. Il parametro delay rappresenta il tempo in millisecondi che vogliamo attendere prima di eseguire il codice.

Dopo il ritardo specificato, il function_to_call sarà usato. È inoltre possibile definire un argomento da passare alla funzione al momento della chiamata.

Nel caso in cui desideri chiamare il timer a un'ora specifica

Questa funzione imposta un timer per eseguire una funzione specifica in un determinato momento. Il parametro time specifica l'ora in cui la funzione deve essere chiamata. Potrebbe essere un timestamp specifico o un valore di ritardo in millisecondi. IL function_to_call è il parametro della funzione che deve essere eseguita dopo la scadenza del timer.

timer.a ( tempo , funzione_da_chiamare ) ;
timer.a ( tempo , function_to_call, argomento ) ; // con argomento


timer.at(time, function_to_call, argomento) La funzione può passare un argomento alla funzione chiamata. Il parametro dell'argomento sarà il valore che deve essere passato nella funzione.

Nel caso in cui desideri chiamare il timer dopo un intervallo di tempo

In questo caso, puoi utilizzare la funzione timer.every() per chiamare ripetutamente una funzione dopo un intervallo di tempo specifico. Il parametro interval mostra il tempo in millisecondi tra gli intervalli di tempo eseguibili.

Specificare l'intervallo desiderato e il function_to_call verrà utilizzato ripetutamente dopo tale intervallo. Come nei casi precedenti, puoi includere un argomento facoltativo da passare alla funzione quando viene chiamata.

timer.ogni ( intervallo, function_to_call ) ;
timer.ogni ( intervallo, function_to_call, argomento ) ; // Scrivi qui il tuo intervallo


È possibile ottenere ulteriori dettagli su questo metodo di utilizzo di una libreria timer per ritardare le chiamate di funzione tramite il collegamento Libreria timer Arduino per funzioni di ritardo .

Alcune altre librerie per il ritardo in Arduino

Il collegamento fornito di seguito ti porterà alle librerie timer di Arduino, dove puoi installare le librerie timer per ritardare le chiamate di funzione.

Biblioteca del timer di Michael Contreras

C'è anche un autore che ha fornito la sua libreria di timer Arduino non bloccante creata per ritardare le chiamate di funzione. Ha usato funzioni integrate di Arduino come millis() e micros() per eseguire funzioni di ritardo senza bloccare. Di seguito è riportato un collegamento alla sua biblioteca:

MichaelUray Libreria timer Arduino

Conclusione

Sebbene la funzione delay() sia già presente in Arduino, non può essere utilizzata per eseguire più attività contemporaneamente. Per eseguire più attività contemporaneamente, la comunità di Arduino ha creato librerie di timer non bloccanti che possono essere utilizzate come e quando richiesto.