Programovanie

Programovací jazyk, v ktorom môžete pre Arduino písať, sa volá Wiring. Lepšie povedané vychádza z jazyka Wiring, ale rozdiely sú minimálne. Podľa autorov ide o jazyk podobný C ++, no v skutočnosti je to akýsi Metajazyk či vylepšená sada makier nad C ++. Wiring pôvodne vznikol pre vývojový kit podobný Arduinu a vychádza z ďalšieho open source projektu, ktorý sa volá Processing. Môžete si všimnúť určitej podobnosti v logu Arduino a Processing.

Vývoj a návrh sledoval maximálnu jednoduchosť a zrozumiteľnosť pre programátora, ktorý s jedno-čipmi začína. Syntakticky možno použiť všetky návyky, čo máme z C jazykov. Všetky tie zložené zátvorky, bodkočiarky, definície funkcií a premenných, poznámky, bloky aj riadiace konštrukcie budú povedomé každému, kto kedy prešiel okolo C. Pritom nie je potrebné zaoberať sa všetkou tou "objektovou omáčkou" - z objektovej syntaxe zostáva v podstate jediný operátor "." (bodka).

Ak budeme pre Arduino vytvárať knižnice (a to budeme v niektorom z ďalších dielov), zostúpime aj o úroveň nižšie, k C ++, ale zatiaľ si vystačíme s Wiring. Predpokladám, že čitatelia poznajú C a že teda nie je potreba popisovať základy jazyka. Ostatne to hlavné uvidíme napr. pri pohľade do cheat sheetu a odlišnosti si vysvetlíme, keď na ne narazíme. Zatiaľ nám stačí vedieť, že môžeme písať "céčkové programy".

setup() a loop()

Program v C má vždy hlavnú funkciu nazvanú main (), ktorá je volaná pri spustení programu. U Arduina máme také funkcie dve a nazývajú sa setup ()a loop (). Toto rozvrhnutie vychádza najčastejšie z kostry programov pre jedno-čipy, kde po RESETe prebehne nejaká inicializácia a potom sa dokola vykonáva v nekonečnej slučke nejaká akcia, až do vypnutia napájania. Skúsení návrhári používajú postupy, kedy sa ona "nekonečná slučka" nahrádza kombináciou obslužných rutín, vyvolaných na základe nejakej akcie (prerušenia) a uspávanie jedno-čipu do stavu s nízkym odberom. U Arduina, ktoré slúžia predovšetkým pre experimenty a zoznámenie sa s elektronikou, je všetko zjednodušené do vyššie uvedenej podoby. Možno si to predstaviť zhruba takto:

void setup() {
  // vykoná sa len raz pri spustení

}

void loop() {
  // vykonáva sa opakovane

}

Operátory

Aritmetické operátory

Relačné operátory

Logické operátory

Bitové operátory

Adresové operátory

Terárne operatory

Špeciálne operátory

Funkcie

Analógové I/O funkcie

  • analogReference()
  • analogRead()
  • analogWrite() - PWM

Goniometrické funkcie

Reťazcové funkcie

  • isAlphaNumeric()
  • isAlpha()
  • isAscii()
  • isWhitespace()
  • isControl()
  • isDigit()
  • isGraph()
  • isLowerCase()
  • isPrintable()
  • isPunct()
  • isSpace()
  • isUpperCase()
  • isHexadecimalDigit()

Funkcie náhodných čísiel

Bajtové a bitové funkcie

  • lowByte()
  • highByte()
  • bitRead()
  • bitWrite()
  • bitSet()
  • bitClear()
  • bit()

Prerušenia

  • interrupts()
  • noInterrupts()
  • attachInterrupt()
  • detachInterrupt()

Komunikácia

  • Serial
  • Stream