Arduino knjižnica mjerača vremena za odgodu

Arduino Knjiznica Mjeraca Vremena Za Odgodu



Tajmer je jedna od ključnih komponenti Arduina za rješavanje vremenski osjetljivih zadataka. Arduino mjerači vremena obično koriste funkciju delay() kako bi omogućili odgodu ili pauzu izvršenja za male vremenske intervale. Međutim, za multitasking je potrebna posebna biblioteka za funkcije odgode.

Ovaj će vodič pokriti različite Arduino biblioteke tajmera za odgodu s kratkim opisima. Prije toga shvatimo ograničenja Arduino delay() funkcije.







Ograničenja kašnjenja()

Funkcija delay() ne može se koristiti ako želite obavljati različite zadatke istovremeno, jer je to funkcija blokiranja. To znači da kad god se funkcija delay() koristi za pauziranje izvršenja zadatka, ne dopušta nijednoj drugoj funkciji da se izvrši u međuvremenu. Stoga, kada netko želi zaustaviti jedan program dok drugi rade, delay() se ne može koristiti.



Što onda učiniti?



Arduino knjižnica mjerača vremena za odgodu poziva funkcija

Da biste riješili ovaj problem, trebali biste koristiti posebne biblioteke dizajnirane za izvođenje odgode. Ove biblioteke omogućuju vam da pauzirate neke funkcije u programu na neko vrijeme i pokrenete druge u međuvremenu. Ove biblioteke su biblioteke mjerača vremena koje ne blokiraju višezadaćnost. Mogu se koristiti za pozivanje funkcija prema potrebi.





Kako uključiti Arduino Timer Library u Arduino kod

Da bismo prvo uključili biblioteku mjerača vremena, moramo dodati zip datoteku odlaskom na Uključi knjižnicu odjeljak u Arduino IDE. Za detaljan opis dodavanja Arduino biblioteka, možete pročitati članak na kako instalirati biblioteku u Arduino IDE .

Korak 1

Prvo ćete morati preuzeti biblioteku Arduino timera.



Korak 2

Nakon preuzimanja biblioteke tajmera, otvorite Arduino IDE i idite na Sketch zatim Uključi biblioteku, a zatim kliknite na Dodaj ZIP biblioteku.


Prikazat će se Arduino 'Biblioteka instalirana' u izlazu.

3. korak

Nakon što dodate ZIP biblioteku u Arduino IDE, ona će se pojaviti na padajućem popisu opcija Uključi biblioteku u Arduino IDE. Odavde uključiti Timer knjižnica.


Kada uključite 'Timer' knjižnici, direktiva pretprocesora pojavit će se na skici. U suprotnom, možete slijediti korak 4 da ručno uključite biblioteku.

# uključiti < Timer.h >

Korak 4

Da biste uključili Arduino Timer Library u Arduino kod, morate koristiti #uključi direktiva zajedno s (.h) ime biblioteke mjerača vremena proširenja, a zatim izradite mjerač vremena kao što je prikazano u nastavku.

#include
auto timer = timer_create_default ( ) ;


Nakon kreiranja mjerača vremena, morate napraviti funkciju za pozivanje tog mjerača vremena. Možda ćete morati pozvati mjerač vremena u određenom trenutku, nakon kratke odgode ili nakon određenog vremenskog intervala. Primjeri pozivanja mjerača vremena u takvim uvjetima navedeni su u nastavku.

U slučaju da želite kratku odgodu

timer.in ( odgoda, funkcija_za_poziv ) ;
timer.in ( odgoda, funkcija_za_poziv, argument ) ; // ili s neobaveznim argumentom za funkcija_za_poziv


U ovom slučaju, možemo koristiti timer.in() funkcija za uvođenje odgode prije poziva određene funkcije. Parametar kašnjenja predstavlja vrijeme u milisekundama koje želimo čekati prije izvršavanja koda.

Nakon navedene odgode, funkcija_za_poziv koristit će se. Argument se također može definirati za prosljeđivanje funkciji u vrijeme poziva.

U slučaju da želite pozvati mjerač vremena u određeno vrijeme

Ova funkcija postavlja mjerač vremena za izvršavanje određene funkcije u određeno vrijeme. Parametar vremena određuje vrijeme u kojem se funkcija treba pozvati. To može biti određena vremenska oznaka ili vrijednost odgode u milisekundama. The funkcija_za_poziv je parametar funkcije koja se treba izvršiti nakon isteka vremena.

timer.at ( vrijeme , funkcija_za_poziv ) ;
timer.at ( vrijeme , funkcija_za_poziv, argument ) ; // s argumentom


timer.at(vrijeme, funkcija_za_poziv, argument) funkcija može proslijediti argument funkciji koja se poziva. Parametar argumenta bit će vrijednost koju treba proslijediti u funkciju.

U slučaju da želite nazvati Timer nakon određenog vremenskog intervala

U ovom slučaju možete upotrijebiti funkciju timer.every() za ponovno pozivanje funkcije nakon određenog vremenskog intervala. Parametar intervala pokazuje vrijeme u milisekundama između izvršnih vremenskih intervala.

Navedite željeni interval i funkcija_za_poziv koristit će se više puta nakon tog intervala. Kao i u prethodnim slučajevima, možete uključiti izborni argument koji će se proslijediti funkciji kada se pozove.

mjerač vremena.svaki ( interval, funkcija_za_poziv ) ;
mjerač vremena.svaki ( interval, funkcija_za_poziv, argument ) ; // Ovdje napišite svoj interval


Dodatne pojedinosti o ovoj metodi korištenja knjižnice mjerača vremena za odgodu poziva funkcija možete saznati putem veze Arduino knjižnica mjerača vremena za funkcije odgode .

Neke druge biblioteke za kašnjenje u Arduinu

Donja veza odvest će vas do Arduino knjižnica mjerača vremena, gdje možete instalirati knjižnice mjerača vremena za odgodu poziva funkcija.

Timer Library Michaela Contrerasa

Tu je i autor koji je osigurao vlastitu kreiranu neblokirajuću biblioteku Arduino timera za odgodu poziva funkcija. Koristio je ugrađene funkcije Arduina poput millis() i micros() za izvođenje funkcija odgode bez blokiranja. Poveznica na njegovu knjižnicu nalazi se u nastavku:

MichaelUray Arduino knjižnica mjerača vremena

Zaključak

Iako je funkcija delay() već prisutna u Arduinu, ne može se koristiti za izvođenje više zadataka istovremeno. Za izvršavanje više zadataka u isto vrijeme, Arduino zajednica stvorila je biblioteke mjerača vremena koje se ne blokiraju i koje se mogu koristiti po potrebi.