void setup() a void loop() podrobnejšie
Keď otvoríte nový program v Arduino IDE, okamžite sa vám zobrazí základné minimum pre arduino, kód void setup() a void loop() funkcie už napísané pre vás.

Void setup a void loop: povinné funkcie v Arduine
Funkcie Arduino void setup() a void loop() sú povinné. Pokúste sa skompilovať kód bez jednej z týchto funkcií, a dostanete chybu.


Keď spustíte „štandardný“ program C/C++, musíte napísať „hlavnú“ funkciu. Najprv sa zavolá táto hlavná funkcia a odtiaľ budete volať ďalšie funkcie a vykonávať funkcie vášho programu.
V Arduine neexistuje žiadna hlavná funkcia. Toto je nahradené nastavením a slučkou. Namiesto jednej povinnej funkcie máte 2. Všetky vaše Arduino programy musia obsahovať tieto funkcie. Okrem nich môžete pridať ľubovoľný počet funkcií, premenných a vytvoriť toľko súborov, koľko chcete.
Ako funguje void setup a void loop ?
Princíp :
- Premenné, ktoré vytvoríte nad programom, budú deklarované/inicializované.
- Funkcia void setup() sa zavolá raz.
- Spustí sa všetok kód, ktorý ste napísali do tejto funkcie.
- Potom sa funkcia void setup() ukončí.
- Teraz sa zavolá funkcia void loop(), takže sa vykoná všetok kód v slučke ( void loop() ).
- Funkcia void loop() opakuje program donekonečna.
Kód vo vnútri void setup() sa vykoná raz a iba raz na začiatku programu. Potom sa kód vo vnútri void loop() bude vykonávať znova a znova (odtiaľ názov „slučka“), až kým :
- Nevypnete dosku Arduino.
- alebo Reštartujte program Arduino – stlačením tlačidla reset / nahraním nového porgramu.
Po spustení alebo reštarte programu sa stratia všetky údaje – stavy premenných – z predchádzajúceho spustenia.
Príklad kódu :
Napíšme príklad kódu, aby sme videli, ako podrobne funguje nastavenie voidov Arduino.

A tu je výsledok, keď skompilujete kód, nahráte ho na dosku Arduino a otvoríte sériový monitor.

Super, teraz to poďme analyzovať riadok po riadku.
1 int counter;
Najprv vytvoríme globálnu premennú, aby sme ju mohli modifikovať vo funkcii a stále sme schopní získať jej hodnotu v inej funkcii.
Poznámka: aj keď deklarujete premennú bez toho, aby ste ju inicializovali v Arduine, automaticky dostane hodnotu „0“ Takže v tomto bode programu obsahuje premenná počítadla hodnotu „0“.
3 void setup() {
4 Serial.begin(9600);
Toto je začiatok funkcie void setup(). začne s Serial.begin(9600);
5 counter = 10;
6
7 Serial.print("Counter: ");
8 Serial.println(counter);
9 }
Vo funkcii setup nastavíme novú hodnotu (10) pre premennú čítača. A hneď potom zobrazíme hodnotu na sériovom monitore. Vo výstupe, ktorý dostanete, sa nachádza riadok „Počítadlo: 10“. A v riadku 9 zatvárame funkciu tam, ako vidíte sú zložené zátvorky pre funkciu void setup. Takže, čo sa deje teraz?
void loop()
Teraz sa zavolá funkcia void loop() a vykoná sa každá inštrukcia, ktorú ste jej poskytli.
11 void loop() {
12 counter++;
13 Serial.print("Counter: ");
14 Serial.println(counter);
15 delay(1000);
16 }
V tomto prípade zvýšime počítanie o 1 (takže pri prvom vstupe do slučky sa počítadlo zmení z 10 na 11). Hneď potom sa zobrazí hodnota – bude to „Counter: 11“. A nakoniec pridáme do programu 1 sekundovú pauzu, takže výstup na sériovom monitore sa pre naše ľudské oči bude zobrazovať tak, aby sme to postrehli.
Čo sa stane, keď sa funkcia void loop() ukončí?
Hneď potom sa volá znova. To znamená, že riadok, ktorý nasleduje po riadku 15, je riadok 12. a Inštrukcia hneď za ním. Keďže premenná počítadla je globálna premenná, jej hodnota sa nestráca, keď znova vstúpime do funkcie slučky. A kolobeh pokračuje. Zakaždým, keď vstúpime do slučky, pridáme 1 do počítadla, vytlačíme hodnotu a počkáme 1 sekundu.
Ak teraz vypnete Arduino, program sa zastaví. Ak reštartujete program, stratí sa akýkoľvek postup pre premenné a celý program sa spustí od začiatku.
void setup()
použitie funkcie void setup(), ako naznačuje názov, je určené na to, aby ste na začiatku programu vykonali akékoľvek požadované nastavenie. Nepíšte sem základné funkcie, iba inicializačný kód. V závislosti od zložitosti vášho programu môžete mať veľa inštrukcií na zapísanie do tejto funkcie void. Môžete vytvárať nové funkcie, ktoré voláte z nastavenia void, žiadny problém s tým nebude.
void loop()
V slučke void loop napíšete svoj hlavný program s vedomím, že inicializácia je už hotová. Pri tejto funkcii majte vždy na pamäti, že za posledným riadkom nasleduje prvý riadok! Taktiež každá premenná, ktorú ste deklarovali vo vnútri prázdnej slučky, sa stratí, keď sa program ukončí a znova vstúpi do funkcie. Takže, ak chcete mať možnosť uchovávať údaje medzi 2 prázdnymi slučkami, nezabudnite deklarovať premenné v globálnejšom rozsahu.
Pridaj komentár