Používanie premenných v Arduino náčrtoch
Premenná je miesto na uloženie údajov. Niečo ako škatuľka alebo šuplík

Má : názov, hodnotu a typ.
- Názov : škatuľku budeme volať – pin
- Hodnota : do škatuľky vložíme číslo 13. Hodnota tak bude číslo – 13
- Typ : je niečo ako veľkosť škatuľky ( predstavujme si to ako veľkosť XL alebo XXL alebo S) v našom príklade použijeme veľkosť – int

Napríklad :
int pin = 13;
Takto Vytvoríme premennú, ktorej názov je pin, hodnota 13 a typ int. Neskôr v programe môžete na túto premennú odkazovať jej názvom, vtedy sa jej hodnota vyhľadá a použije. Napríklad v tomto vyhlásení:
pinMode(pin, OUTPUT);
Znamená to že hodnota pinu (13), bude odovzdaná funkcii pinMode(). V tomto prípade v skutočnosti nemusíte použiť premennú, toto vyhlásenie by fungovalo rovnako dobre aj takto:
pinMode(13, OUTPUT);
Výhodou premennej v tomto prípade je, že skutočné číslo pinu stačí zadať iba raz, ale môžete ho použiť mnohokrát. Ak sa teda neskôr rozhodnete pre zmenu z pinu 13 na pin 12, stačí zmeniť iba jedno miesto v kóde. V programe môžete tiež použiť popis, aby ste objasnili význam premennej (napr. program ovládajúci RGB LED môže mať premenné nazývané redPin, greenPin a bluePin).
Premenná má iné výhody oproti hodnote, ako je číslo. Najdôležitejšie je, že hodnotu premennej môžete zmeniť pomocou priradenia (označeného znakom rovnosti). ( = )
Napríklad:
pin = 12;
Zmení hodnotu premennej na 12. Všimnite si, že nešpecifikujeme typ premennej: nemení sa priradením. To znamená, že názov premennej je trvalo spojený s typom; mení sa len hodnota. Najprv však musíte deklarovať premennú, aby ste jej mohli priradiť hodnotu. Ak zahrniete predchádzajúci príkaz do programu bez prvého vyššie uvedeného (int pin = 13;), dostanete správu ako: “chyba: pin nebol deklarovaný v tomto rozsahu”.
Keď priradíte jednu premennú druhej, vytvoríte kópiu jej hodnoty a túto kópiu uložíte na miesto v pamäti priradené k druhej premennej.
Napríklad :
1 int pin = 13;
2 int pin2 = pin;
3 pin = 12;
iba pin má hodnotu 12; pin2 je stále 13.
Čo by vás teraz mohlo zaujímať, znamenalo slovo „rozsah, platnosť“ v tomto chybovom hlásení vyššie? Vzťahuje sa to na časť vášho programu, v ktorej možno premennú použiť. To je určené tým, kde to deklarujete.
Napríklad, ak chcete mať možnosť použiť premennú kdekoľvek vo svojom programe, môžete ju deklarovať v hornej časti kódu. Toto sa nazýva globálna premenná; tu je príklad:
1 int pin = 13;
2 void setup()
3 {
4 pinMode(pin, OUTPUT);
5 }
6 void loop()
7 {
8 digitalWrite(pin, HIGH);
9 }
Ako vidíte, pin sa používa vo funkciách setup() aj loop(). Obe funkcie odkazujú na rovnakú premennú, takže zmena jednej ovplyvní hodnotu, ktorá je druhej, ako v:
1 int pin = 13;
2 void setup()
3 {
4 pin = 12;
5 pinMode(pin, OUTPUT);
6 }
7 void loop()
8 {
9 digitalWrite(pin, HIGH);
10 }
Tu funkcia digitalWrite() volaná z loop() odovzdá hodnotu 12, pretože to je hodnota, ktorá bola priradená premennej vo funkcii setup().
Ale ak potrebujete použiť premennú iba v jednej funkcii, môžete ju tam deklarovať a v takom prípade bude jej rozsah obmedzený len na túto funkciu.
Napríklad:
1 void setup()
2 {
3 int pin = 13;
4 pinMode(pin, OUTPUT);
5 digitalWrite(pin, HIGH);
6 }
V tomto prípade je možné variabilný pin použiť iba vo funkcii setup().
Ak sa pokúsite urobiť niečo takéto:
1 void loop()
2 {
3 digitalWrite(pin, LOW); //pin tu nie je v rozsahu pôsobnosti.
4 }
Dostanete rovnakú správu ako predtým: “chyba: ‘pin’ nebol deklarovaný v tomto rozsahu”. To znamená, že aj keď ste niekde vo svojom programe deklarovali pin, pokúšate sa ho použiť niekde mimo jeho rozsah.
Možno sa pýtate, prečo neurobiť všetky svoje premenné globálne? Koniec koncov, ak neviem, kde by som mohol potrebovať premennú, prečo by som mal obmedziť jej rozsah len na jednu funkciu? Odpoveď je, ak je premenná globálna, jej hodnota sa môže zmeniť kdekoľvek v kóde, čo znamená, že musíte pochopiť celý program, aby ste vedeli, čo sa stane s premennou. Napríklad, ak má vaša premenná hodnotu, ktorú ste neočakávali, môže byť oveľa jednoduchšie zistiť, odkiaľ hodnota pochádza, ak má premenná obmedzený rozsah.
Pridaj komentár