Konštanty

Konštanty sú symboly reprezentujúce nemennú číselnú alebo inú hodnotu. Prekladač jazyka im priradí typ, ktorý tejto hodnote odpovedá. Majú za úlohu sprehľadniť prácu a priblížiť kód ľudskému jazyku.


HIGH | LOW

Tieto konštanty definujú logickú úroveň pinov Arduina ako vysokú alebo nízku. Sú používané pri čítaní alebo zápisu tejto hodnoty na digitálne piny.

digitalWrite(13, HIGH);

HIGH je definovaná ako logická úroveň 1 alebo ON, zatiaľ čo LOW je logická úroveň 0 alebo OFF.


INPUT | OUTPUT | INPUT_PULLUP

Tieto konštanty sa používajú vo funkcii pinMode() pre prepnutie digitálneho pinu na vstup (INPUT) alebo výstup (OUTPUT).

INPUT - nastaví pin ako vstup. Ten sa používa na čítanie hodnôt z digitálnych senzorov (najjednoduchšie sú tlačidlá), ale aj na komunikáciu.

OUTPUT - pri použití tejto konštanty je pin nastavený ako výstup. Ten znesie prúd do 40 mA. Pri stave HIGH teda tento výstup môže poskytnúť prúd do 40 mA a pri stave LOW môže rovnako veľký prúd prijať.

INPUT_PULLUP - funguje podobne, ako INPUT. Rozdiel je v tom, že dôjde k pripojeniu interného rezistora. Ten je vo vnútri čipu zapojený medzi digitálnym vstupom a napájaním. Východisková hodnota funkcie digitalRead() je teda HIGH. Keď chceme hodnotu zmeniť, musíme vstup pripojiť na GND.


LED_BUILTIN

Väčšina Arduino dosiek má integrovanú a pripojenú jednu LED diódu v sérii s odporom na jeden konkrétny PIN. Konštanta LED_BUILTIN určuje číslo pinu, ku ktorému je táto LED pripojená. Táto hodnota je závislá od typu vývojovej dosky, ktorú sme v IDE programe pre kompilátor vybrali.

const int led = LED_BUILTIN;  // pin s integrovanou LED diódou

Najčastejšie je to digitálny pin 13. Treba s tým uvažovať najmä v prípade, ak chceme pin č.13 využiť ako vstupný.


Logické konštanty (true | false)

Logické konštanty sú iba dve hodnoty a to pravda a nepravda. V programovaní im zodpovedajú konštanty true a false. Používajú sa tam, kde je potrebné rozhodovať len medzi dvoma stavmi.

Konštanta false má hodnotu 0.

U konštanty true je situácia trochu komplikovanejšia. Mohlo by sa zdať, že má hodnotu 1, ale nie je to úplne presné. Pri logických operáciách totiž jazyk Wiring vníma akékoľvek nenulové číslo typu integer ako true.

Všimnite si, že true a false konštanty sú zadané malými písmenami na rozdiel od HIGH, LOW, INPUT a OUTPUT.


Celočíselné konštanty

Celočíselné konštanty sú tvorené zápisom celého čísla. Môžu byť zapísané v desiatkovej, binárnej, osmičkovej prípadne v šestnástkovej číselnej sústave. Najprv teda jednoduché zápisy:

 123 -255 255 3287 -3287

ktoré predstavujú celočíselné konštanty. V poradí druhá a posledná predstavujú záporné hodnoty, ostatné sú kladné.

Teraz si uvedieme pravidlá, podľa ktorých určujeme základ číselnej sústavy konštanty:
• ľubovoľná číslica s výnimkou nuly je súčasťou konštanty v desiatkovej sústave (viď príklad hore)
• B (písmeno B) určuje binárny zápis konštanty
• 0 (číslica nula) uvádza konštanty v osmičkovej sústave
• 0x alebo 0X (číslice nula nasledovaná znakom x) uvádza konštanty v šestnástkovej sústave

Konštanta          Príklad    Zápis    Poznámka

10 (desiatková)        123    

2 (binárna)       B1111011    'B'      znaky 0-1, len 8-bitový zápis(0 to 255) 

8 (osmičková)         0173    "0"      znaky 0-7       

16 (šestnástková)     0x7B    "0x"     znaky 0-9, A-F, a-f 

Ak prefix zápisu celočíselnej konštanty určoval základ číselnej sústavy, potom sufix, pokiaľ je uvedený, určuje celočíselný dátový typ. A to následovne: u alebo U modifikuje typ na unsigned, zatiaľ čo l alebo L hovorí, že ide o typ long. Obidva sufixy je možné spojiť, takže napríklad: 123UL je (desiatková) konštanta 123 typu unsigned long.


Racionálne konštanty

Racionálne konštanty (konštanty s plávajúcou desatinnou čiarkou) umožňujú zapísať číselnú konštantu, ktorá nemusí byť celočíselná. Vnútorne je reprezentovaná v tvare, ktorý obsahuje mantisu a exponent, oboje s prípadným znamienkom.

 n = 1.234;

Implicitný typ racionálnej konštanty je double. Napríklad 12.34e5. Ak chceme, aby konštanta bola typu long double, pripojíme k zápisu písmeno L, teda napríklad 12.34e5L.

Racionálne konštanty možno vyjadriť aj v rôznych zápisoch. Znaky "E" a "e" sú platné ako ukazovatele exponentu.

racionálna       ekvivalentný           hodnota
konštanta          zápis

   10.0	             10                    10
  2.34E5          2.34 * 10^5            234000
  67e-12         67.0 * 10^-12        .000000000067

Znakové konštanty

Znakové konštanty sú tvorené požadovaným znakom, respektíve postupnosťou znakov, uzavretým medzi apostrofy. Na nasledujúcom riadku je zapísaných niekoľko znakových konštánt:

'a' 'A' 'Š' 'ň' '}' '#' '"'

Prvé dve nás iste neprekvapia, ďalšie dve nemusia byť nutne k dispozícii na všetkých systémoch (aj keď podpora národného prostredia je čím ďalej väčšou samozrejmosťou). Ďalšie dva znaky zase nie sú k dispozícii na štandardných slovenských klávesniciach, ale programovanie si bez nich nedokážeme predstaviť. No a posledná znaková konštanta sú úvodzovky. Týmto si pripravujeme nasledujúcu otázku.

Ako zapíšeme znakovú konštantu apostrof? A čo iné špeciálne znaky (riadiace symboly, znaky nenachádzajúce sa na klávesnici, ...). Tu si pomáhame symbolom opačné lomítko a snajmenej jedným ďalším znakom. Týmto postupnostiam hovoríme escape sequence. Tie môžu byť jednoduché, keď opačné lomítko nasleduje jediný znak. Alebo nasleduje osmičkový či (po x) šestnástkový kód znaku. Takto sme schopní zadať aj znak, ktorý sa na klávesnici nenachádza, ale jeho kód je nám známi.

Prehľad známych escape sequencií obsahuje tabuľka:

Postupnosť     Meno                 Ctrl-znak     Význam

\a             Alert (Bell)         G             Pípnutie

\b             Backspace            H             návrat o jeden znak

\f             Formfeed             L             nová stránka alebo obrazovka

\n             Newline              J             presun na začiatok nového riadku

\r             Carriage return      M             presun na začiatok aktuálneho riadku

\t             Horizontal tab       I             presun na nasledujúcu tabulačnú pozíciu

\v             Vertical tab         K             stanovený presun dole

\\             Backslash                          obrátené lomítko

\'             Single quote                       apostrof

\"             Double quote                       úvodzovky

\?             Question mark                      otáznik

\OOO                                              ASCII znak zadaný ako osmičková hodnota

\xHHH                                             ASCII znak zadaný ako šestnástková hodnota

Konštantné reťazce

Konštantné reťazce - literály sú na rozdiel od znakových konštánt tvorené viac než jedným znakom, spravidla slovom či vetou (teda znakovou postupnosťou, reťazcom). Začiatok a koniec reťazca sú vymedzené úvodzovkami. Nasledujúce reťazce sú úmyselne písané slovensky:

"dve slova" "Cela tato veta tvori jeden retazec." "a" "Ahoj!"

Na predposledný reťazec musíme upozorniť. Ide o reťazcovú konštantu tvorenú písmenom a, teda reťazcom dĺžky jeden znak. Nesmieme ju zamieňať so znakovou konštantou. Tá je vymedzená dvoma apostrofmi. Naviac, znaková konštanta, bez ohľadu na jej zápis, predstavuje jeden jediný znak, zatiaľ čo reťazcová konštanta môže byť aj dlhšia.

Pokiaľ konštantný reťazec obsahuje špeciálne symboly, zapisujeme ich obdobne, ako sme to robili u znakových konštánt. Napríklad:

"\tPo uvodnom tabelatore prejdeme na novy riadok\nkde text pokracuje na novom riadku."

Použili sme jednoduché escape sequencie. Pokiaľ by sme po nich urobili medzeru, bola by táto rovnako obsiahnutá aj vo výslednom reťazci. A to nechceme.