Hvordan stoppe ugyldig sløyfefunksjon i Arduino

Hvordan stoppe ugyldig sløyfefunksjon i Arduino
Arduino er en programmeringsplattform som lar brukere kommunisere med mikrokontrollere som ikke var mulig ganske mange år tilbake. Arduino -brett kan programmeres ved hjelp av Arduino IDE. Arduino IDE bruker et C/C ++ -språk med litt ekstra funksjonalitet for å kontrollere og programmere Arduino -tavler. Arduino Sketch består hovedsakelig av to funksjoner en er oppsett og den andre er en loop. Her vil vi forstå hvordan vi kan kontrollere sløyfen ved hjelp av forskjellige programmeringsteknikker.

Hvordan stoppe ugyldig sløyfe i Arduino?

Arduino -skisser består hovedsakelig av to deler en er oppsett og den andre er loop. Oppsettfunksjoner kjøres bare en gang etter at koden er samlet mens sløyfefunksjonen fortsetter å løpe til en ny skisse eller Arduino mister kraften.

Flere prosjekter kan kreve ugyldige sløyfefunksjoner for å kjøre for en bestemt tid eller stoppe etter å ha utført visse instruksjoner, så nå vil vi se på hvordan vi kan stoppe Arduino Void Loop -funksjon ved hjelp av forskjellige programmeringsteknikker.

Stopper sløyfen virkelig?

Arduino gir ingen måte å stoppe tomrommet -funksjonen. Foruten Arduino er det ikke noe slikt å eksistere i mikrokontrollere i utgangspunktet. Teknisk sett er alle teknikkene vi brukte bare for å stoppe Arduino Loop -funksjonaliteten. Det stopper ikke helt, vi sender enten ugyldig sløyfe til en uendelig tilstand ved hjelp av samtidig som eller bruk en exit uttalelse for å stoppe prosessen. Ved å gjøre denne Arduino -sløyfen som sitter fast i en uendelig sløyfe uten å utføre instruksjoner, er den eneste måten å få den tilbake ved å tilbakestille; gjennom en knapp eller ved å laste opp en ny skisse. Så teknisk stopper ikke Arduino Void -sløyfen.

Metoder for å stoppe ugyldig sløyfe i Arduino

Arduino -programmering har to typer løkker en som er som standard i Arduino -skisse som er void loop () mens den andre er sløyfe som brukes under programmering eller å skrive en skisse. Brukeropprettede løkker kan enkelt slutte å bruke brudduttalelser.

Nedenfor nevnt er få trinn for å stoppe ugyldig sløyfe i Arduino:

  • Bruker uendelig mens du er sløyfe
  • Bruke søvnbiblioteket
  • Ved hjelp av exit (0) uttalelse
  • Bruker IF -uttalelse

I: Bruker uendelig mens du er sløyfe

For å stoppe tomromssløyfen i Arduino, kan du skisse en uendelig sløyfe ved hjelp av en stundsløyfestruktur. Denne metoden vil fungere på alle Arduino -tavler, men dette vil ikke stoppe Arduino -funksjonen når Arduino fortsetter å konsumere strøm. Denne metoden kan enkelt implementeres i hvilken som helst kode etter den siste linjen der koden din er ferdig.

La oss ta et LED -blinkeksempel for å forstå hvordan mens Loop er nyttig for å bryte Void Loop -funksjonen:

void setup ()
// Sett oppsettkoden din her, for å kjøre en gang:
PinMode (LED_BUILTIN, OUTPUT);

void loop ()
DigitalWrite (LED_BUILTIN, HIGH); // slå på LED
forsinkelse (1000); // forsinkelse på et sekund
DigitalWrite (LED_BUILTIN, LAV); // slå av LED
forsinkelse (1000); // forsinkelse på et sekund
mens (1) // uendelig sløyfe

I koden over har vi initialisert den innebygde LED -pinnen i tomromsoppsettfunksjon etter det i tomromsseksjonen er det skrevet et LED -blinkprogram. Her vil LED begynne å blinke i et mønster på ett sekund på og 1 sekund av. Etter at en syklus er fullført en uendelig mens Loop initieres på slutten av den andre forsinkelsen; Nå vil lysdioden forbli slått av til koden er lastet opp eller Arduino blir tilbakestilt.

II: Bruke søvnbiblioteket

I ovennevnte metode stoppes Arduino tomromsløyfe, men Arduino vil fortsette å ta makten. Neste metode som permanent vil stoppe ugyldig sløyfe og sette Arduino i søvnmodus bruker Sleep_n0m1 Bibliotek, ved hjelp av denne Arduino CPU kan sendes i permanent søvnmodus til Arduino er tilbakestilt eller vi brukte en tidtaker for en bestemt tid som Arduino går i søvnmodus. Denne metoden er avhengig av biblioteker som kanskje ikke fungerer på noen Arduino -tavler.

Igjen vil vi ta et LED -eksempel for å demonstrere dets arbeid.

#inkludere
Søvn søvn;
usignert lang offer;
void setup ()
offetid = 5000;
PinMode (LED_BUILTIN, OUTPUT);

void loop ()
DigitalWrite (LED_BUILTIN, HIGH); // slå på LED
forsinkelse (1000); // forsinkelse på 1 sek
DigitalWrite (LED_BUILTIN, LAV); // slå av LED
forsinkelse (1000); // 1 SEC -forsinkelse
sove.pwrdownMode (); // Angi søvnmodus
sove.SleepDelay (Offery); // Sov for: Offertime

I starten av skissen har vi kalt Arduino Sleep Library og definerte en variabel utenfor arbeidstid Denne variabelen vil lagre tidsbegrensningen som vi ønsker å sette Arduino i søvnmodus. Her har vi tatt 5000 ms offer. Så definerte vi en innebygd LED for Arduino.

I den tomromsløyfeseksjonen er LED -kode skrevet, her vil LED fullføre en syklus med blinking og deretter gå til søvnmodus i 5000 ms eller 5 sek. Denne syklusen fortsetter til Arduino blir tilbakestilt.

I dette eksemplet vil sløyfen stoppe i 5 sek. Sleep Library kan stoppe sløyfeseksjonen i maksimalt 49 dager, hvoretter det vil tilbakestilles automatisk.

III: Bruke exit (0) uttalelse

Void -sløyfen kan også stoppes ved å bruke Exit () -erklæring. Denne uttalelsen er en av de enkleste måtene å stoppe en ugyldig sløyfefunksjon. Husk å bruke denne uttalelsen på slutten av koden din fordi enhver instruksjon som er skrevet etter denne linjen ikke vil bli utført før Arduino er tilbakestilt eller koden blir lastet opp på nytt.

void setup ()
// Sett oppsettkoden din her, for å kjøre en gang:
PinMode (LED_BUILTIN, OUTPUT);

void loop ()
DigitalWrite (LED_BUILTIN, HIGH); // slå på LED
forsinkelse (1000); // 1 SEC -forsinkelse
DigitalWrite (LED_BUILTIN, LAV); // slå av LED
forsinkelse (1000); // 1 SEC -forsinkelse
Avslutt (0);

Over -koden forklarer bruken av exit -utsagn for å stoppe tomromssløyfen i Arduino -koden. Som forrige eksempel er LED -blinkkode skrevet, og på slutten av koden har vi satt i gang en exit line. Dette vil bryte Arduino void loop. LED vil blinke for en syklus etter at den vil stoppe.

IV: Bruker IF -uttalelse

IF -uttalelsen er den siste metoden, vi vil diskutere i dag for å stoppe tomrommet. Hvis statement vil stille en tilstand inne i løkken som enten vil starte tomromsløyfen på nytt eller stoppe den avhengig av brukerinngang.

Under kode demonstrerer if-uttalelse ved hjelp av LED for å stoppe ugyldig sløyfe.

boolsk stopp = sant;
void setup ()
// Sett oppsettkoden din her, for å kjøre en gang:
PinMode (LED_BUILTIN, OUTPUT);

void loop ()
if (stop == true)
DigitalWrite (LED_BUILTIN, HIGH); // slå på LED
forsinkelse (1000); // 1 SEC -forsinkelse
DigitalWrite (LED_BUILTIN, LAV); // slå av LED
forsinkelse (1000); // 1 SEC -forsinkelse

stopp = falsk;

I starten av koden har vi initialisert en boolsk variabel Stoppe og verdien er satt til sann. Etter det er LED -pinner i oppsettet definert. I seksjonen Void Loop hvis utsagn begynner og se etter variabelen Stoppe verdi. Hvis tilstanden blir sann, vil den starte LED blink -skisse. Når LED -blink -syklusen er fullført, tildeler vi verdien av Stoppe variabel til falsk. Etter det vil det fortsette å sjekke tomromssløyfen, men uttalelsen vil alltid bli falsk fordi vi setter verdien av Stoppe Variabel til falsk, noe.

Konklusjon

Void Loop er en viktig del av Arduino -koden, alt som er skrevet inni den vil fortsette å løpe til Arduino blir tilbakestilt. Noen ganger må vi stoppe sløyfeseksjonen i henhold til prosjektparametere, så her fremhevet vi alle de viktigste måtene som vi kan stoppe Arduino Void Loop Seksjonskode.