Programovací jazyk je prostriedok na zápis algoritmov, ktoré môžu byť vykonané na počítači. Zápis algoritmu vo zvolenom programovacom jazyku sa nazýva program.

Programovací jazyk
Je komunikačným nástrojom medzi programátorom, ktorý v programovacom jazyku formuluje postup riešenia daného problému, a počítačom, ktorý program interpretuje technickými prostriedkami. Programovací jazyk je vlastne súbor pravidiel pre zápis algoritmu. Návrh algoritmu obvykle určuje všeobecný postup riešenia danej úlohy.
Programovací jazyk Arduino možno rozdeliť do troch hlavných častí:
1. funkcie, hodnoty (functions, values)
2. premenné a konštanty (variables - constants)
3. štruktúra (structure)

Arduino Interrupts (prerušenia) Tutoriál

Čomu rozumie Arduino ? (jazyk)
Kedy použiť Arduino a kedy Raspberry Pi ?
Komunikačné protokoly – Arduino
(pinMode) Arduino INPUT_PULLUP
Sériová komunikácia medzi Raspberry Pi a Arduino – všetko, čo potrebujete vedieť
Výpočet trvania akcie – Arduino
Ako uložiť typ údajov do pamäte EEPROM
Ako zrýchliť operáciu digitalWrite()
Každý Arduino program by mal mať aspoň tieto dve základné funkcie:
Na obrázku nižšie vidíte najzákladnejšie minimum ktoré stále musí Arduino program (skica) obsahovať. Funkciu void setup() a Funkciu void loop().

- void setup() Táto funkcia sa vykoná iba raz, keď sa Arduino spúšťa. Bez ohľadu na to, či bol práve zapnutý alebo resetovaný, ovládač Arduino začne okamžite vykonávať logiku vo vnútri tejto funkcie a potom sa presunie do funkcie loop (). Zvyčajne sa používa na inicializáciu knižníc alebo premenných, ktoré budete následne používať vo svojom kóde.
- void loop() Toto je základná logika vašej aplikácie, ktorá sa bude opakovane vykonávať navždy. V každom programe Arduino musíte mať obe vyššie uvedené funkcie, aj keď bude len prázdny. Toto je minimálna požiadavka na program Arduino.
void setup() a void loop podrobnejšie
Arduino millis() verzus micros()
Arduino a funkcia readString()
Vytvorte si vlastnú knižnicu Arduino
Programovanie { }
Premenné , Funkcie : (Pamäť)
Používanie premenných v Arduino náčrtoch
Používanie funkcií v Arduino náčrtoch
Ako fungujú Skice a ako sa nahrávajú do Arduina
1. Funkcie, Hodnoty
Digitálne I/O
Analógové I/O
Pokročilé I/O
Čas
Matematika
Trigonometria
Znaky
- isAlpha()
- isAlphaNumeric()
- isAscii()
- isControl()
- isDigit()
- isGraph()
- isHexadecimalDigit()
- isLowerCase()
- isPrintable()
- isPunct()
- isSpace()
- isUpperCase()
- isWhitespace()
Náhodné čísla
Bity a bajty
Externé prerušenia
Prerušenia
Komunikácia
USB
2. Premenné, Konštanty
Konštanty
- Floating Point Constants
- HIGH | LOW
- INPUT | INPUT_PULLUP | OUTPUT
- Integer Constants
- LED_BUILTIN
- true | false
Konverzia
Dátové typy
- array
- bool
- boolean
- byte
- char
- double
- float
- int
- long
- short
- size_t
- string
- unsigned char
- unsigned int
- unsigned long
- void
- word
Variabilný rozsah a kvalifikátory
Utility
3. Štruktúra
Skica
Riadiaca štruktúra
Ďalšia syntax
Aritmetické operátory
Porovnávacie operátory
- != (not equal to)
- < (less than)
- <= (less than or equal to)
- == (equal to)
- > (greater than)
- >= (greater than or equal to)
Booleovské operátory
- ! (logical not)
- && (logical and)
- || (logical or)
(Pointer) Operátori prístupu
- & (reference operator)
- * (dereference operator)
Bitové operátory
- & (bitwise and)
- << (bitshift left)
- >> (bitshift right)
- ^ (bitwise xor)
- | (bitwise or)
- ~ (bitwise not)
Zložené operátory
- %= (compound remainder)
- &= (compound bitwise and)
- *= (compound multiplication)
- ++ (increment)
- += (compound addition)
- — (decrement)
- -= (compound subtraction)
- /= (compound division)
- ^= (compound bitwise xor)
- |= (compound bitwise or)
Ako môže Arduino zamrznúť, zastaviť spustenie kódu alebo urobiť niečo zvláštne?
- 1. Volanie príliš veľa funkcií→ Volanie príliš veľa funkcií, napríklad v rekurzívnej slučke, môže spôsobiť zlyhanie a resetovanie Arduina. Môže to nastať po približne 300 volaniach funkcií. Funkcie s viacerými lokálnymi premennými alebo väčšími lokálnymi premennými znižujú počet volaní funkcií, ktoré je možné vykonať pred resetovaním Arduina. Rekurzívna slučka funkcií je najpravdepodobnejším spôsobom, ako dosiahnuť tento limit funkcie.
// Rekurzívna slučka – funkcia, ktorá volá sama seba
print(int a) {
if (a > 1000) return; //ako ukončiť rekurziu
print(a++); //rekurzia
}
- 2. Pridelenie príliš veľkého množstva pamäte→ Ak sa Arduinu minie pamäť, môže sa správať nepredvídateľným spôsobom. Najjednoduchší spôsob, ako Adruinu vyčerpať pamäť, je prideliť príliš veľa premenných alebo príliš veľa miesta premenným, napríklad pomocou funkcie malloc().Tiež je možné vyčerpať pamäť pomocou volaní funkcií (ako je popísané vyššie). Po pridelení všetkej pamäte vám žiadna ďalšia požiadavka na pamäť nebude fungovať, ale volania funkcií stále áno! Ak chcete zabrániť zlyhaniu Arduina nedostatkom pamäte: Deklarujte premenné vo funkcii pri príprave náčrtu, pre väčšinu projektov Arduino by malo byť možné vypočítať premenné potrebné pri písaní kódu; kompilátor vás upozorní, ak budú príliš veľké; Vyhnite sa používaniu malloc(); Použite free().
- 3. Zaseknutie v nekonečnej slučke→ Arduino sa môže zaseknuť v nekonečnej slučke, ktorá mu bráni spustiť iný kód. Toto je zvyčajne spôsobené, keď kód kontroluje stav slučky, ktorý vždy skončí ako pravdivý.
// nekonečná slučka
int a = 0;
while(a == 10){
a = returnTen(); // funkcia, ktorá vždy vráti 10
}
Technicky Arduino vždy beží nekonečnú slučku funkcia void loop (), ale Arduino môže uviaznuť v slučke, ktorú ste nezamýšľali. Na rozdiel od PC nie je Arduino zvyčajne schopné spustiť dva programy súčasne. To znamená, že ak sa program zasekne v slučke, celé Arduino zvyčajne prestane vykonávať akúkoľvek inú úlohu.
- 4. Čakanie na návrat funkcie→Najbežnejšou funkciou, v ktorej sa to deje, je Serial.available().Arduino uviazne v slučke, kým nebude k dispozícii sériové pripojenie; ak nie je dostupné žiadne pripojenie, Arduino nespustí žiadny iný kód.
void setup(){
Serial.begin(9600);
while(!Serial.available()); // počkať na sériové pripojenie
}
void loop() {
// robiť
}
- 5.Arduino sa resetuje, ak vstupné napätie klesne pod určitú úroveň.→zvyčajne to nastane, keď dôjde k výraznému a trvalému poklesu napätia napájacieho zdroja mimo tolerančných úrovní Arduina. Buďte opatrní pri pripájaní komponentov obvodu, ktoré využívajú veľa prúdu (napr. motory) k rovnakému zdroju napätia, aký používa Arduino, náhly odber prúdu môže narušiť napájanie Arduina.