Arduino-ajastinkirjasto viivästymistä varten

Arduino Ajastinkirjasto Viivastymista Varten



Ajastin on yksi Arduinon avainkomponenteista aikaherkkien tehtävien hoitamisessa. Arduinon ajastimet käyttävät yleensä delay()-toimintoa viivästämään tai keskeyttämään suoritusta pieniksi aikaväleiksi. Moniajoon tarvitaan kuitenkin erityinen kirjasto viivästystoimintoja varten.

Tämä opas kattaa erilaiset Arduino-ajastinkirjastot lyhyillä kuvauksilla. Ennen sitä ymmärretään Arduinon viive () -funktion rajoitukset.







Viiveen rajoitukset ()

Viive()-funktiota ei voi käyttää, jos haluat suorittaa eri tehtäviä samanaikaisesti, koska se on estotoiminto. Se tarkoittaa, että aina kun delay()-funktiota käytetään pysäyttämään tehtävän suorittaminen, se ei salli minkään muun funktion suorittamista sillä välin. Siksi, kun joku haluaa pysäyttää yhden ohjelman samalla kun muita ajetaan, delay():tä ei voida käyttää.



Mitä sitten tehdä?



Arduino-ajastinkirjasto toimintokutsujen viivästymiseen

Tämän ongelman ratkaisemiseksi sinun tulee käyttää erityisiä viiveen suorittamiseen suunniteltuja kirjastoja. Näiden kirjastojen avulla voit keskeyttää joitakin ohjelman toimintoja joksikin aikaa ja suorittaa muita sillä välin. Nämä kirjastot ovat ajastinkirjastoja, jotka eivät estä moniajoa. Niitä voidaan käyttää kutsumaan toimintoja tarpeen mukaan.





Kuinka sisällyttää Arduino-ajastinkirjasto Arduino-koodiin

Jos haluat sisällyttää ajastinkirjaston, meidän on ensin lisättävä zip-tiedosto siirtymällä kohtaan Sisällytä kirjasto -osio Arduino IDE:ssä. Yksityiskohtaisen kuvauksen Arduino-kirjastojen lisäämisestä voit lukea artikkelista kuinka asentaa kirjasto Arduino IDE:hen .

Vaihe 1

Ensin sinun on ladattava Arduino-ajastinkirjasto.



Vaihe 2

Kun olet ladannut ajastinkirjaston, avaa Arduino IDE ja siirry kohtaan Sketch, sitten Include Library ja napsauta sitten Lisää ZIP-kirjasto.


Arduino tulee näkyviin 'Kirjasto asennettu' ulostulossa.

Vaihe 3

Kun olet lisännyt ZIP-kirjaston Arduino IDE:hen, se näkyy Arduino IDE:n Sisällytä kirjasto -asetusten avattavassa luettelossa. Täältä mukaan lukien Ajastin kirjasto.


Kun sisällytät 'Ajastin' kirjasto, esiprosessorin direktiivi näkyy luonnoksessa. Muussa tapauksessa voit lisätä kirjaston manuaalisesti noudattamalla vaihetta 4.

# sisältää < Ajastin.h >

Vaihe 4

Jos haluat sisällyttää Arduino Timer Libraryn Arduino-koodiin, sinun on käytettävä #sisältää direktiiviä yhdessä (.h) laajennuksen ajastinkirjaston nimi ja luo sitten ajastin alla olevan kuvan mukaisesti.

#include
automaattinen ajastin = timer_create_default ( ) ;


Kun olet luonut ajastimen, sinun on tehtävä toiminto ajastimen kutsumiseksi. Saatat joutua soittamaan ajastimeen tietyllä hetkellä, lyhyen viiveen tai tietyn ajan kuluttua. Alla on esimerkkejä ajastinten kutsumisesta tällaisissa olosuhteissa.

Jos haluat lyhyen viiveen

timer.in ( viive, kutsuttava_toiminto ) ;
timer.in ( viive, kutsuttava_funktio, argumentti ) ; // tai valinnaisella argumentilla varten toiminto_soittaa


Tässä tapauksessa voimme käyttää timer.in() funktio, joka lisää viiveen ennen tietyn funktion kutsumista. Viiveparametri edustaa aikaa millisekunteina, jonka haluamme odottaa ennen koodin suorittamista.

Määritetyn viiveen jälkeen toiminto_soittaa käytetään. Argumentti voidaan myös määrittää siirtymään funktiolle kutsun aikana.

Jos haluat soittaa ajastimeen tiettyyn aikaan

Tämä toiminto asettaa ajastimen suorittamaan tietyn toiminnon tiettyyn aikaan. Time-parametri määrittää ajan, jolloin funktio tulee kutsua. Se voi olla tietty aikaleima tai viivearvo millisekunteina. The toiminto_soittaa on sen toiminnon parametri, joka suoritetaan ajastimen umpeutumisen jälkeen.

timer.at ( aika , call_to_call ) ;
timer.at ( aika , kutsuttava_funktio, argumentti ) ; // argumentin kanssa


ajastin.at(aika, toiminto_kutsuun, argumentti) funktio voi välittää argumentin kutsuttavalle funktiolle. Argumenttiparametri on arvo, joka välitetään funktiossa.

Jos haluat soittaa ajastimeen tietyn ajan kuluttua

Tässä tapauksessa voit käyttää timer.every()-funktiota kutsumaan funktiota toistuvasti tietyn ajan kuluttua. Intervalliparametri näyttää ajan millisekunteina suoritettavien aikavälien välillä.

Määritä haluamasi väli ja toiminto_soittaa käytetään toistuvasti tämän ajanjakson jälkeen. Kuten edellisissä tapauksissa, voit sisällyttää valinnaisen argumentin, joka välitetään funktiolle, kun sitä kutsutaan.

ajastin.jokainen ( intervalli, funktio_to_call ) ;
ajastin.jokainen ( intervalli, kutsuttava_funktio, argumentti ) ; // Kirjoita väliaikasi tähän


Voit oppia lisätietoja tästä ajastinkirjaston käytöstä toimintokutsujen viivyttämiseen linkin kautta Arduino-ajastinkirjasto viivästystoimintoihin .

Jotkut muut viivästyskirjastot Arduinossa

Alla oleva linkki vie sinut Arduinon ajastinkirjastoihin, joihin voit asentaa ajastinkirjastot toimintokutsujen viivyttämiseksi.

Michael Contrerasin ajastinkirjasto

On myös kirjoittaja, joka on toimittanut oman luomansa estottoman Arduino-ajastinkirjaston toimintokutsujen viivyttämiseen. Hän on käyttänyt Arduinon sisäänrakennettuja toimintoja, kuten millis() ja micros(), suorittaakseen viivästystoimintoja ilman estoa. Linkki hänen kirjastoonsa on alla:

MichaelUray Arduino ajastinkirjasto

Johtopäätös

Vaikka delay()-toiminto on jo olemassa Arduinossa, sitä ei voida käyttää useiden tehtävien suorittamiseen samanaikaisesti. Useiden tehtävien suorittamiseksi samanaikaisesti Arduino-yhteisö on luonut estäviä ajastinkirjastoja, joita voidaan käyttää tarpeen mukaan.