Mi az, hogy konstans?

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.

A konstansok nevét CSUPA NAGYBETŰVEL írjuk - ez a hagyomány. A hagyományon túl ez segít könnyen meglátni, hogy mi konstans és mi nem az a programunkban.

Mit tanultunk ebből?

A konstansoktól olvashatóbb lesz a program, mert mágikus számok helyett értelmes szimbolikus neveket (LED, ON, OFF) használhatunk.
És mi az a szimbólum? A szimbólum valami bonyolultabb dolgot helyettesítő egyszerűbb forma. Az írásban a betűk helyettesítik a hangokat - ezért az ABC betűi szimbólumok. A telefonodon kis vonalkák mutatják a térerőt - ezek is szimbólumok.