Arduino laikmačio biblioteka delsimui

Arduino Laikmacio Biblioteka Delsimui



Laikmatis yra vienas iš pagrindinių „Arduino“ komponentų, skirtų laikui jautrioms užduotims atlikti. „Arduino“ laikmačiai paprastai naudoja funkciją delay (), kad suteiktų atidėjimą arba pristabdytų vykdymą nedideliais laiko intervalais. Tačiau norint atlikti kelias užduotis, reikalinga speciali biblioteka funkcijoms atidėti.

Šis vadovas apims įvairias Arduino laikmačių bibliotekas, skirtas atidėti, su trumpais aprašymais. Prieš tai supraskime Arduino delsos () funkcijos apribojimą.







Vėlavimo apribojimai ()

Funkcijos delay() negalima naudoti, jei norite vienu metu atlikti skirtingas užduotis, nes tai yra blokavimo funkcija. Tai reiškia, kad kai funkcija delay() naudojama užduoties vykdymui pristabdyti, ji neleidžia vykdyti jokios kitos funkcijos. Todėl, kai kas nors nori sustabdyti vieną programą paleisdamas kitas, delay() negali būti naudojamas.



Ką tada daryti?



Arduino laikmačio biblioteka, skirta atidėti funkcijų skambučius

Norėdami išspręsti šią problemą, turėtumėte naudoti specialias bibliotekas, skirtas vėlavimui atlikti. Šios bibliotekos leidžia tam tikrą laiką pristabdyti kai kurias programos funkcijas ir tuo tarpu paleisti kitas. Šios bibliotekos yra laikmačio bibliotekos, kurios neblokuoja kelių užduočių. Jie gali būti naudojami funkcijoms iškviesti, kai reikia.





Kaip įtraukti Arduino laikmačio biblioteką į Arduino kodą

Norėdami įtraukti laikmačio biblioteką, pirmiausia turime pridėti ZIP failą eidami į Įtraukti biblioteką skyrių „Arduino IDE“. Norėdami gauti išsamų Arduino bibliotekų pridėjimo aprašymą, galite perskaityti straipsnį apie kaip įdiegti biblioteką Arduino IDE .

1 žingsnis

Pirmiausia turėsite atsisiųsti „Arduino“ laikmačio biblioteką.



2 žingsnis

Atsisiuntę laikmačio biblioteką atidarykite „Arduino IDE“ ir eikite į „Sketch“, tada „Include Library“, tada spustelėkite „Pridėti ZIP biblioteką“.


Bus rodomas „Arduino“. „Biblioteka įdiegta“ išėjime.

3 veiksmas

Pridėję ZIP biblioteką prie Arduino IDE, ji bus rodoma išskleidžiamajame sąraše Įtraukti biblioteką į Arduino IDE. Iš čia įtraukti Laikmatis biblioteka.


Kai įtraukiate 'Laikmatis' bibliotekoje, eskize atsiras išankstinio procesoriaus direktyva. Kitu atveju galite atlikti 4 veiksmą ir rankiniu būdu įtraukti biblioteką.

# įtraukti < Laikmatis.h >

4 veiksmas

Norėdami įtraukti Arduino laikmačio biblioteką į Arduino kodą, turite naudoti #įtraukti direktyva kartu su (.h) plėtinio laikmačio bibliotekos pavadinimą, tada sukurkite laikmatį, kaip parodyta toliau.

#include
automatinis laikmatis = timer_create_default ( ) ;


Sukūrę laikmatį, turite sukurti funkciją, kuri iškviestų tą laikmatį. Gali tekti paskambinti laikmačiui nurodytu laiku, po trumpo delsimo arba po tam tikro laiko tarpo. Toliau pateikti pavyzdžiai, kaip iškviesti laikmačius tokiomis sąlygomis.

Jei norite trumpai atidėti

laikmatis.in ( delsa, funkcija_skambinti ) ;
laikmatis.in ( delsa, funkcija_skambinti, argumentas ) ; // arba su neprivalomu argumentu dėl funkcija_skambinti


Tokiu atveju galime naudoti laikmatis.in() funkcija įvesti delsą prieš iškviečiant konkrečią funkciją. Vėlavimo parametras nurodo laiką milisekundėmis, kurį norime palaukti prieš vykdydami kodą.

Po nurodyto vėlavimo, funkcija_skambinti Bus panaudota. Taip pat galima apibrėžti argumentą, kuris perduotų funkcijai iškvietimo metu.

Jei norite paskambinti laikmačiui konkrečiu laiku

Ši funkcija nustato laikmatį, kad konkrečią funkciją atliktų tam tikru metu. Laiko parametras nurodo laiką, kada funkcija turi būti iškviesta. Tai gali būti konkreti laiko žyma arba delsos reikšmė milisekundėmis. The funkcija_skambinti yra funkcijos, kuri turi būti vykdoma pasibaigus laikmačio galiojimo laikui, parametras.

laikmatis.at ( laikas , skambinimo_funkcija ) ;
laikmatis.at ( laikas , funkcija_skambinti, argumentas ) ; // su argumentu


laikmatis.at(laikas, funkcija_skambinti, argumentas) funkcija gali perduoti argumentą iškviečiamai funkcijai. Argumento parametras bus reikšmė, kurią reikia perduoti funkcijoje.

Jei norite paskambinti laikmačiui po tam tikro laiko

Tokiu atveju galite naudoti funkciją timer.every() norėdami pakartotinai iškviesti funkciją po tam tikro laiko. Intervalo parametras rodo laiką milisekundėmis tarp vykdomų laiko intervalų.

Nurodykite norimą intervalą ir funkcija_skambinti bus naudojamas pakartotinai po šio intervalo. Kaip ir ankstesniais atvejais, galite įtraukti pasirenkamą argumentą, kuris bus perduotas funkcijai, kai ji iškviečiama.

laikmatis.kiekvienas ( intervalas, funkcija_skambinti ) ;
laikmatis.kiekvienas ( intervalas, funkcija_skambinti, argumentas ) ; // Čia parašykite savo intervalą


Galite sužinoti daugiau apie šį laikmačio bibliotekos naudojimo atidėti funkcijų iškvietimą metodą naudodami nuorodą „Arduino“ laikmačio biblioteka, skirta atidėti funkcijas .

Kai kurios kitos bibliotekos, kurios vėluoja „Arduino“.

Toliau pateikta nuoroda nuves jus į „Arduino“ laikmačio bibliotekas, kur galėsite įdiegti laikmačio bibliotekas, kad atidėtų funkcijų skambučius.

Michael Contreras laikmačio biblioteka

Taip pat yra autorius, kuris pateikė savo sukurtą neblokuojančią Arduino laikmačio biblioteką, skirtą funkcijų skambučių atidėjimui. Jis naudojo integruotas Arduino funkcijas, tokias kaip millis () ir micros (), kad atliktų uždelsimo funkcijas be blokavimo. Nuoroda į jo biblioteką pateikta žemiau:

Michaelas Uray Arduino laikmačio biblioteka

Išvada

Nors funkcija delay() jau yra Arduino, jos negalima naudoti kelioms užduotims atlikti vienu metu. Norint vienu metu atlikti kelias užduotis, Arduino bendruomenė sukūrė neblokuojančias laikmačio bibliotekas, kurias galima naudoti, kai reikia.