Při psaní kódu pro Arduino je nezbytné porozumět základním stavebním kamenům programování, kterými jsou proměnné a datové typy. Proměnná v programování funguje na stejném principu jako matematická proměnná - je to symbolické označení pro určitou hodnotu, která může být v průběhu programu měněna. V kontextu Arduina si můžeme proměnnou představit jako malý "šuplík" v paměti, na kterém je cedulka s jménem (název proměnné) a uvnitř je uložena nějaká informace (hodnota proměnné).
Aby Arduino mohlo s daty efektivně pracovat, je nutné definovat, jaký druh a jakou velikost informace bude proměnná uchovávat. K tomu slouží datové typy. Výběr správných a nejvíce úsporných datových typů přichází s praxí. Každá proměnná má dvě základní vlastnosti: její název a hodnotu, kterou může nabýt.
Název proměnné je klíčový pro její identifikaci v kódu. Při vymýšlení názvů proměnných je třeba dodržovat několik pravidel:
Pro lepší čitelnost a srozumitelnost kódu se doporučuje používat tzv. velbloudí notaci (camelCase), kde se první písmeno prvního slova píše malým a každé další slovo začíná velkým písmenem (např. `motorBrana`), nebo hadí notaci (snake_case), kde se slova oddělují podtržítkem (např. `motor_brana`).

Než začneme proměnné používat, musíme je deklarovat. Deklarace říká programu, že daná proměnná bude existovat, jaký bude mít název a jaký datový typ. Deklarace je zakončena středníkem.
V rámci deklarace můžeme proměnné rovnou přiřadit počáteční hodnotu pomocí operátoru "=". Pokud hodnota není přiřazena explicitně, proměnná může obsahovat náhodnou hodnotu z paměti (v případě číselných typů jako `int` nebo `float` se často jedná o 0, ale nelze na to spoléhat).
Příklad deklarace proměnné:
int pocetKroku = 10; // Deklarace celočíselné proměnné 'pocetKroků' s počáteční hodnotou 10char prvniPismeno = 'A'; // Deklarace znakové proměnné 'prvníPismeno' s hodnotou 'A'
Pro lepší pochopení kódu je možné vkládat komentáře. Komentáře program ignoruje, ale pomáhají programátorům (včetně vás samotných v budoucnu) porozumět logice kódu. V jazyce Wiring (používaném pro Arduino) existují dva způsoby komentování:
Příklad:
// Toto je jednořádkový komentář/* Toto je víceřádkový komentář */
Volba správného datového typu je klíčová pro efektivní využití paměti a správnou funkci programu. Každý datový typ definuje, jaký druh dat proměnná uchovává a kolik paměti k tomu potřebuje.
Pole je speciální typ proměnné, který umožňuje shromáždit více hodnot stejného datového typu do jedné proměnné. Můžeme si jej představit jako krabičku s očíslovanými přihrádkami. Každá přihrádka (prvek pole) je přístupná pomocí svého indexu, který začíná od nuly.
Příklad deklarace pole:
int cisla[5]; // Deklarace pole 'cisla' s 5 prvky typu intcisla[0] = 10; // Přiřazení hodnoty do prvního prvku (index 0)

Arduino disponuje integrovanou EEPROM pamětí, která umožňuje ukládat data, která zůstanou zachována i po odpojení napájení. Pro rozšíření této kapacity lze použít externí moduly EEPROM, jako je například AT24C256.
Modul EEPROM AT24C256 má kapacitu 256 kbit (32 kbyte), což odpovídá 32 768 bajtům. Pro komunikaci s Arduinem využívá protokol I2C a vyžaduje připojení pouhých čtyř vodičů (VCC, SCL, SDA, GND). Data lze do EEPROM zapisovat a následně je číst.
Příklad zápisu a čtení do EEPROM:
#include <Wire.h>void setup() { Serial.begin(9600); Wire.begin(); // Zápis znaku '!' na maximální adresu EEPROM.write(32767, '!'); // Čtení a výpis znaku z EEPROM char data = EEPROM.read(32767); Serial.print("Precteny znak: "); Serial.println(data);}void loop() { // ...}EEPROM paměť je vhodná pro ukládání konfigurací, nastavení nebo zálohu dat, která je potřeba uchovat i po výpadku napájení.
Při psaní kódu v Arduino IDE je důležité dodržovat základní pravidla syntaxe:
Příklad správného použití středníku:
int promenna; // Deklarace proměnné zakončená středníkempromenna = 5; // Přiřazení hodnoty zakončené středníkemdigitalWrite(13, HIGH); // Volání funkce zakončené středníkemif (promenna == 5) { // Blok kódu uvnitř if Serial.println("Promenna je 5"); // Příkaz uvnitř bloku} // Konec bloku kódu, středník zde není
Pro lepší pochopení principu proměnných si ukážeme několik jednoduchých příkladů.
V tomto příkladu použijeme proměnnou pro určení délky pauzy mezi rozsvícením a zhasnutím LED diody. To nám umožní snadno měnit rychlost blikání pouhou změnou hodnoty proměnné.
int ledPin = 13; // Pin, ke kterému je připojena LEDint interval = 500; // Délka pauzy v milisekundáchvoid setup() { pinMode(ledPin, OUTPUT); // Nastavení pinu jako výstup}void loop() { digitalWrite(ledPin, HIGH); // Rozsvícení LED delay(interval); // Pauza digitalWrite(ledPin, LOW); // Zhasnutí LED delay(interval); // Pauza}Zkuste si změnit hodnotu proměnné `interval` na 100 nebo 1000 a pozorujte rozdíl v rychlosti blikání.
V tomto příkladu použijeme proměnnou k počítání, kolikrát bylo stisknuto tlačítko. Každé stisknutí zvýší hodnotu proměnné.
int buttonPin = 2; // Pin, ke kterému je připojeno tlačítkoint ledPin = 13; // Pin, ke kterému je připojena LEDint pocetStisku = 0; // Proměnná pro uchování počtu stiskůvoid setup() { pinMode(buttonPin, INPUT); // Nastavení pinu tlačítka jako vstup pinMode(ledPin, OUTPUT); // Nastavení pinu LED jako výstup Serial.begin(9600); // Inicializace sériové komunikace}void loop() { int buttonState = digitalRead(buttonPin); // Přečtení stavu tlačítka if (buttonState == HIGH) { // Pokud je tlačítko stisknuto pocetStisku++; // Zvýšení počtu stisků Serial.print("Pocet stisku: "); Serial.println(pocetStisku); digitalWrite(ledPin, HIGH); // Rozsvícení LED delay(200); // Krátká pauza, aby se jedno stisknutí nepočítalo vícekrát } else { digitalWrite(ledPin, LOW); // Zhasnutí LED, pokud tlačítko není stisknuto }}Tento příklad ukazuje, jak lze proměnné využít k uchování stavu nebo počtu událostí v programu.
tags: #arduino #uint #promenna #byte