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 
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

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

Ostatné I/O

  • tone()
  • noTone()
  • shiftOut()
  • shiftIn()
  • pulseIn()

Čas

  • millis()
  • micros()
  • delay()
  • delayMicroseconds()

Matematické

  • min()
  • max()
  • abs()
  • constrain()
  • map()
  • pow()
  • sqrt()

Trigonometrické

  • sin()
  • cos()
  • tan()

Reťazcové

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

Náhodné čísla

  • randomSeed()
  • random()

Bajtové a bitové

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

Prerušenia

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

Komunikácia

  • Serial
  • Stream