Mokam mirksėti 3 LED'ais. Šaunu. Šviesoforo programos 1-oje versijoje mes šviesos diodus jungėme prie 2-4 kontrolerio kojų. O įsivaizduokit situaciją, kad jos jau užimtos kitais darbais ir mums reikia jungti prie 9-11 kojų. Perrašinėti visą programą? Gerai jeigu programos kodo yra tik 50 eilučių, o jei kodas sudarytas is kokio 200 ar viso 1000 eilučių – užsimušimas ir dar klaidų tikimybė nereali.
Taigi – kintamieji. Kintamieji skirti saugoti programos duomenis ir kaip jau sako pats jų pavadinimas – tie duomenys gali keistis pagal mūsų nuožiūrą. Arduino programavimas sukurtas C/C++ programavimo kalbos pagrindu, todėl ir kintamieji apsirašo ir naudojami panašiai. Yra 14 kintamųjų tipai: boolean, char, byte, int, unsigned int, word, long, unsigned long, float, double, string (eilutė), String (Objektas), array, void. Apie visus juos pakalbėsime vėliau, dabar mus domina tik sveiko tipo kintamasis int.
int (iš ang. kalbos sutrumpinimas integer – sveikas skaičius) – dažniausiai naudojamas kintamasis, kuris gali įgyti reikšmes nuo -32 768 iki 32 767 (nuo -2^15 iki 2^15-1). Kiekvienas kintamasis privalo turėti savo unikalų vardą ir apsirašyti. Taip pat vėliau pakalbėsim apie kintamųjų galiojimo sritis bei kaip pakeisti kintamojo tipą, bet tai vėliau…
Kintamojo vardą sudaro raidės, skaičiai bei specialūs simboliai. Vardų sukūrimui galioja taisyklės, kai kurias aptarsiu iš karto:
1. vardas negali būti toks pat kaip rezervuoti žodžiai ar funkcijos (pvz. true, int, for ir t.t.)
2. vardas turi prasidėti raide (pvz. Pirmas, p1, p_1)
3. skiriasi didžiosios ir mažosios raidės (pvz. pirmas nelygu Pirmas)
Nebijokit, Arduino kompiliatorius iš kart perspės jeigu Jūs netinkamai pasirinksite kintamojo vardą, bet kintamojo vardo parinkimas dažnai atstoja visą eilutę komentarų, todėl vardus pasirinkite pagal turinį ir norimą gauti rezultatą.
/* Šviesoforas, mokomoji programa programos ver. 2 kintamųjų naudojimas */ int Raudonas = 2; int Geltonas = 3; int Zalias = 4; void setup() { // skaitmeninių išėjimų nustatymas pinMode(Raudonas, OUTPUT); pinMode(Geltonas, OUTPUT); pinMode(Zalias, OUTPUT); } // amžinas ciklas void loop() { digitalWrite(Raudonas, HIGH); // įjungiam raudoną delay(7000); // laukiam 7 sekundes digitalWrite(Geltonas, HIGH); // įjungiam geltoną delay(1000); // laukiam 1 sekundę digitalWrite(Raudonas, LOW); // išjungiam raudoną digitalWrite(Geltonas, LOW); // išjungiam geltoną digitalWrite(Zalias, HIGH); // įjungiam žalią delay(4000); // laukiam 4 sekundes digitalWrite(Zalias, LOW); // išjungiam žalią delay (500); // laukiam 0,5 sekundes digitalWrite(Zalias, HIGH); // įjungiam žalią delay(500); // laukiam 0,5 sekundes digitalWrite(Zalias, LOW); // išjungiam žalią delay (500); // laukiam 0,5 sekundes digitalWrite(Zalias, HIGH); // įjungiam žalią delay(500); // laukiam 10 sekundziu digitalWrite(Zalias, LOW); // išjungiam žalią delay (500); // laukiam 0,5 sekundes digitalWrite(Zalias, HIGH); // įjungiam žalią delay(500); // laukiam 10 sekundziu digitalWrite(Zalias, LOW); // išjungiam žalią delay (500); // laukiam 0,5 sekundes digitalWrite(Zalias, HIGH); // įjungiam žalią delay(500); // laukiam 10 sekundziu digitalWrite(Zalias, LOW); // išjungiam žalią digitalWrite(Geltonas, HIGH); // įjungiam geltoną delay(1000); // laukiam 1 sekundę digitalWrite(Geltonas, LOW); // išjungiam geltoną }
Teisingai parinkus kintamųjų vardus komentarų programoje beveik ir nereikia. Taip pat pakeitus diodų pajungimo vietą (pvz. 9-10-11 kojos) mums reikės pakeisti tik 3 (!) eilutes:
/* Šviesoforas, mokomoji programa programos ver. 2 kintamųjų naudojimas */ int Raudonas = 9; int Geltonas = 10; int Zalias = 11;
Gražu, patogu ir paprasta 🙂
Arduino programavimo pradžiamokslis
[…] Pamokų sąrašas […]