A konstans azt jelenti, hogy állandó. A fizikában és a matematikában is vannak mágikus számok, amiknek az értéke fix. Ilyen például a kör kerületének és átmérőjének a hányadosa, melynek értéke 3.141592653589793 és még tovább.
Hogy ne kelljen ezt a sok számot megjegyezni, helyette egy görög betűt, a pi-t írjuk le így: π Ez sokkal egyszerűbb és könnyebb, mint az a rengeteg szám!
A programunkba is tehetünk ilyen konstansokat. Mondjuk, hogy ne kelljen megjegyezni, melyik lábon van a led, ezért csináljunk egy LED nevű konstanst! Ezt a const szóval tudjuk elintézni:
const int LED=13;
void setup() {
pinMode(LED, OUTPUT);
}
void loop() {
digitalWrite(LED, HIGH);
delay(100);
digitalWrite(LED, LOW);
delay(100);
}
A const int LED=13 azt jelenti, hogy legyen egy konstans (const) ami egy szám (int) és az értéke pedig 13.
Miután csináltunk egy LED nevű konstanst, bárhova ahova azt írjuk, hogy LED, automatikusan behelyettesíti az értékét - szóval ahova LED-et írunk innentől, ott 13 lesz.
Gondolom gyanítod, hogy a HIGH meg a LOW is ilyenek! Igazad van, ezeket az Arduino rendszer magától csinálja, de ez nem akadályoz meg minket abban, hogy csináljunk saját konstansokat rá!
Ettől egy kicsit érthetőbb lett a program, hiszen LED ON meg LED OFF van benne, mindenféle fura high meg low helyett:
const int LED=13;
const int ON=0;
const int OFF=1;
void setup() {
pinMode(LED, OUTPUT);
}
void loop() {
digitalWrite(LED, ON);
delay(100);
digitalWrite(LED, OFF);
delay(100);
}
Természetesen a delay értékeit is ki lehet cserélni:
const int LED=13;
const int ON=0;
const int OFF=1;
const int SPEED=100;
void setup() {
pinMode(LED, OUTPUT);
}
void loop() {
digitalWrite(LED, ON);
delay(SPEED);
digitalWrite(LED, OFF);
delay(SPEED);
}
No most, miért is lett ez jó nekünk? Igaz, hogy pár sorral hosszabb lett a program, de eközben sokkal érthetőbbé is vált. Ráadásul, ha szeretnénk rajta változtatni (mondjuk gyorsabban villogtatni, vagy másik lábra tenni a ledet) akkor azt elegendő egyetlen helyen megváltoztatni - a const részben.