Knjižnica časovnika Arduino za zakasnitev

Knjiznica Casovnika Arduino Za Zakasnitev



Časovnik je ena ključnih komponent Arduina za reševanje časovno občutljivih nalog. Arduino časovniki običajno uporabljajo funkcijo delay(), da zagotovijo zakasnitev ali premor izvajanja za majhne časovne intervale. Vendar je za večopravilnost potrebna posebna knjižnica za funkcije zakasnitve.

Ta priročnik bo s kratkimi opisi pokrival različne knjižnice časovnikov Arduino za zakasnitev. Pred tem poglejmo omejitev funkcije Arduino delay().







Omejitve zamude()

Funkcije delay() ni mogoče uporabiti, če želite hkrati izvajati različne naloge, saj je to funkcija blokiranja. To pomeni, da vsakič, ko je funkcija delay() uporabljena za premor izvajanja naloge, ne dovoli nobene druge funkcije, da se medtem izvrši. Zato, ko nekdo želi ustaviti en program, medtem ko izvaja druge, delay() ni mogoče uporabiti.



Kaj potem narediti?



Knjižnica časovnika Arduino za zakasnitev klicev funkcij

Če želite rešiti to težavo, morate uporabiti posebne knjižnice, namenjene izvajanju zakasnitve. Te knjižnice vam omogočajo, da za nekaj časa zaustavite nekatere funkcije v programu in medtem zaženete druge. Te knjižnice so knjižnice časovnikov, ki ne blokirajo večopravilnosti. Uporabijo se lahko za klicanje funkcij, kot in kadar je to potrebno.





Kako vključiti knjižnico časovnikov Arduino v kodo Arduino

Če želite najprej vključiti knjižnico časovnika, moramo dodati datoteko zip tako, da gremo na Vključi knjižnico razdelek v Arduino IDE. Za podroben opis dodajanja knjižnic Arduino si lahko preberete članek o kako namestiti knjižnico v Arduino IDE .

Korak 1

Najprej boste morali prenesti knjižnico časovnikov Arduino.



2. korak

Po prenosu knjižnice časovnika odprite Arduino IDE in pojdite na Sketch, nato na Include Library in nato kliknite na Add ZIP Library.


Prikazal se bo Arduino 'Nameščena knjižnica' v izhodu.

3. korak

Ko dodate knjižnico ZIP v Arduino IDE, se bo prikazala na spustnem seznamu možnosti Vključi knjižnico v Arduino IDE. Od tu vključite Časovnik knjižnica.


Ko vključite 'Časovnik' knjižnici, bo na skici prikazana direktiva predprocesorja. V nasprotnem primeru lahko sledite 4. koraku in ročno vključite knjižnico.

# vključiti < Timer.h >

4. korak

Če želite vključiti Arduino Timer Library v kodo Arduino, morate uporabiti #vključi direktivo skupaj z (.h) ime knjižnice časovnika razširitve in nato ustvarite časovnik, kot je prikazano spodaj.

#include
samodejni časovnik = timer_create_default ( ) ;


Ko ustvarite časovnik, morate narediti funkcijo za klic tega časovnika. Morda boste morali poklicati časovnik v določenem trenutku, po kratkem zamiku ali po določenem časovnem intervalu. Spodaj so navedeni primeri za klicanje časovnikov v takšnih pogojih.

V primeru, da želite kratko zamudo

timer.in ( zamuda, funkcija_za_klic ) ;
timer.in ( zamuda, funkcija_za_klic, argument ) ; // ali z neobveznim argumentom za funkcija_za_klic


V tem primeru lahko uporabimo timer.in() funkcijo za uvedbo zakasnitve pred klicem določene funkcije. Parameter zakasnitve predstavlja čas v milisekundah, ki ga želimo počakati pred izvedbo kode.

Po navedenem odlogu je funkcija_za_klic bo uporabljen. Argument je mogoče definirati tudi za posredovanje funkciji v času klica.

V primeru, da želite časovnik poklicati ob določenem času

Ta funkcija nastavi časovnik za izvedbo določene funkcije ob določenem času. Parameter časa določa čas, ko naj se funkcija pokliče. Lahko je določen časovni žig ali vrednost zakasnitve v milisekundah. The funkcija_za_klic je parameter funkcije, ki naj se izvede po izteku časovnika.

timer.at ( čas , funkcija_za_klic ) ;
timer.at ( čas , funkcija_za_klic, argument ) ; // z argumentom


timer.at(čas, funkcija_za_klic, argument) funkcija lahko posreduje argument klicani funkciji. Parameter argumenta bo vrednost, ki jo je treba posredovati v funkciji.

V primeru, da želite poklicati časovnik po določenem času

V tem primeru lahko uporabite funkcijo timer.every() za večkratni klic funkcije po določenem časovnem intervalu. Parameter interval prikazuje čas v milisekundah med izvršljivimi časovnimi intervali.

Določite želeni interval in funkcija_za_klic po tem intervalu bo uporabljen večkrat. Tako kot v prejšnjih primerih lahko vključite izbirni argument, ki se posreduje funkciji, ko jo pokličete.

časovnik.vsak ( interval, funkcija_za_klic ) ;
časovnik.vsak ( interval, funkcija_za_klic, argument ) ; // Tukaj napišite svoj interval


Dodatne podrobnosti o tem načinu uporabe knjižnice časovnika za zakasnitev klicev funkcij lahko izveste prek povezave Knjižnica časovnika Arduino za funkcije zakasnitve .

Nekatere druge knjižnice za zakasnitev v Arduinu

Spodnja povezava vas bo popeljala do knjižnic časovnikov Arduino, kjer lahko namestite knjižnice časovnikov za zakasnitev klicev funkcij.

Timer Library avtor Michael Contreras

Obstaja tudi avtor, ki je zagotovil lastno ustvarjeno neblokirno knjižnico časovnikov Arduino za zakasnitev klicev funkcij. Uporabil je vgrajene funkcije Arduina, kot sta millis() in micros(), za izvajanje funkcij zakasnitve brez blokiranja. Spodaj je povezava do njegove knjižnice:

MichaelUray Knjižnica časovnikov Arduino

Zaključek

Čeprav je funkcija delay() že prisotna v Arduinu, je ni mogoče uporabiti za izvajanje več nalog hkrati. Za izvajanje več nalog hkrati je skupnost Arduino ustvarila knjižnice časovnikov brez blokiranja, ki jih je mogoče uporabiti po potrebi.