Hvordan fungerer tidsfunksjonen i Arduino?

Hvordan fungerer tidsfunksjonen i Arduino?
Arduino støtter mange innebygde funksjoner, blant dem er noen relatert til tid også kjent som tidsfunksjoner. Disse funksjonene brukes til å generere en forsinkelse av tid i Arduino -kode. For eksempel, hvis vi vil at LED skal vise utdataene gjentatte ganger etter hvert to eller tre sekund, kan vi sette en forsinkelse ved å bruke tidsfunksjonene.

I denne oppskrivningen vil vi diskutere noen av tidsfunksjonene som ofte brukes i Arduino-kode ved hjelp av noen eksempler.

Hva er tidsfunksjonen i Arduino

Tidsfunksjonene i Arduino brukes til å lage pauser i utdataene i henhold til kravet, blir de viktige tidsfunksjonene til Arduino forklart i detalj.

forsinkelse(): Det er den mest brukte funksjonen i Arduino -programmering, den tar heltallverdien og genererer forsinkelsen av tid i kode for millisekunder i henhold til inngangsverdien. For å forstå anvendelsen av forsinkelsesfunksjonen (), bør du vurdere dette eksemplet:

int count = 2;
void setup ()
Serie.Begynn (9600);

void loop ()
Serie.print ("Verdien er trykt etter");
Serie.trykk (telling);
Serie.println ("Seconds");
Count = Count+2;
forsinkelse (2000);

I denne koden skriver vi ut "verdien er trykt etter (tid) sekunder". Logikken bak koden er veldig enkel, vi erklærte en global variabel “count = 2” og deretter koblet vi til Arduino ved å bruke seriell kommunikasjon med en bous rate på 9600. Så i tomromsløyfen () trykket vi utgangen etter forsinkelsen på 2000 millisekunder som er lik 2 sekunder (1 sekund = 1000 millisekunder). Og øker også verdien av tellingen med 2.

DelayMicroseConds (): Denne funksjonen fungerer på samme måte som forsinkelsesfunksjonen (), men i stedet for millisekunder genererer den forsinkelsen i mikrosekunder. La oss vurdere koden ovenfor og erstatte forsinkelsen () med DelayMicRoseConds () -funksjonen:

int count = 100;
void setup ()
Serie.Begynn (9600);

void loop ()
Serie.print ("Verdien er trykt etter");
Serie.trykk (telling);
Serie.println ("mikrosekunder");
Count = Count+100;
forsinkelsesmikroseconds (100);

I output ovenfor trykte vi uttalelsen ved å bruke DelayMicroseConds () -funksjonen og spesifiserte forsinkelsen på 100 mikrosekunder. For å vise utgangen på seriell monitorutgang, brukte vi seriell kommunikasjon med en 9600 baudhastighet. Variabelt antall erklæres globalt med en verdi på 100 og i tomromsløyfe () økte vi verdien med 100 etter hver iterasjon.

Milli (): Milli () -funksjonen brukes til å finne ut utførelsestiden i millisekunder til Milli () funksjonserklæringen. For å forstå dette, vil vi vurdere et enkelt eksempel på følgende kode:

int timr;
void setup ()
Serie.Begynn (9600);

void loop ()
forsinkelse (2000);
Serie.print ("Tidsverdien er");
timr = millis ();
Serie.println (timr);

Ved vellykket utførelse av koden får vi tiden for utførelse av hver iterasjon i utdataene. Vi satte en forsinkelse på 2000 millisekunder ved hjelp av forsinkelsesfunksjonen () og hentet ut kjøretidspunktet i millisekunder ved bruk av Millis () -funksjonen. Verdien som returneres av Millis () -funksjonen er lagret i TIMR -variabelen og vises på seriemonitorutgangen.

Merk: Det er en forskjell i utgangen fordi noen få millisekunder blir tatt av “serien.println () ”-funksjon og litt tid tas av maskinvaren.

mikro (): Denne funksjonen brukes til å beregne og trekke ut utførelsestiden for kode til denne funksjonens utførelse. For eksempel skriver vi en enkel kode, der vi legger forsinkelsen på 2000 millisekunder ved å bruke forsinkelsesfunksjonen () og beregne tiden i mikrosekunder ved hjelp av koden:

int timr;
void setup ()
Serie.Begynn (9600);

void loop ()
forsinkelse (2000);
Serie.print ("Tidsverdien er");
timr = micros ();
Serie.println (timr);

Ovennevnte skript er enkelt å forstå. Vi koblet Arduino til datamaskinen ved hjelp av seriell kommunikasjon med en baudhastighet på 9600. I tomromsløyfen () genererte vi en forsinkelse på 2000 millisekunder ved hjelp av forsinkelsen () -funksjonen, trekke ut utførelsestiden i mikrosekunder ved hjelp av mikros () -funksjonen, lagre resultatene i "TIMR" -variabelen og trykte den på serien Monitor utgang.

Konklusjon

I Arduino brukes tidsfunksjoner for å generere forsinkelser og pauser i koden eller utgangen. Vi kan bruke disse tidsfunksjonene til å generere eller pause i blinking av lysdioder. Vi kan også finne ut utførelsestiden for kode ved å bruke tidsfunksjonene. I denne oppskrivningen har vi forklart de mest brukte tidsfunksjonene i Arduino og forklart dem med noen enkle eksempler.