Bastlíme s Arduinem – píšeme první program | Kapitola 4
Seznam kapitol
Po nějakém čase se vracíme k bastlení s Arduinem. Dnes se však od hardwaru trošku odkloníme a podíváme se na software. Arduino totiž není jen o elektrobastlení, ale také o algoritmizaci, která nám prostřednictvím mikroprocesoru umožní celý náš výtvor rozhýbat. Dejme se tedy do práce, programátoři!
Protože už máme připravený a příslušně zadrátovaný harware, můžeme se pustit do díla programátorského. Základním předpokladem je samozřejmě funkční vývojové prostředí, o nemž jsme psali v druhé kapitole. Pokud se s ním umíme připojit k Arduinu, máme už z části vyhráno. O úspěšném nahrání firmwaru do Arduina nás vývojové prostředí informuje zprávou „Done uploading“. Samotný proces uploadu lze pozorovat i na destičce samotné, která po tuto dobu poblikává.
První krůčky k vlastnímu programu
Tak ale teď už vážně do práce. Prostor, kam budeme psát program, se dělí do dvou logických částí, které jsou interpretovány dvěma předpřipravenými funkcemi – setup() a loop(). Obě funkce jsou volány automaticky. Na nás je pouze jejich naplnění smysluplným a syntakticky bezchybným obsahem. Účel každé z těchto funkcí se samozřejmě liší. Zatímco funkce setup() se volá pouze jednou na začátku běhu programu, loop() se volá periodicky v cyklu po celou dobu běhu programu (tedy neomezeně dlouho). A jakým že obsahem je budeme vlastně plnit? Funkce setup() typicky slouží pro inicializaci mikroprocesoru, kterou stačí ve valné většině případů vykonat pouze jednou při startu. V sekci ohraničené funkcí loop() by se pak měla nacházet samotná výkonná část programu běžící v cyklu.
Inicializace – setup()
Po našem programu chceme, aby v pevně dané periodě přiměl mikroprocesor hýbat nožkou a tím naši červenou ledku rozblikal. V našem návrhu jsme tuto LED pověsili na digitální pin číslo 12. Protože tyto digitální piny dokážou pracovat ve dvou režimech – vstupním a výstupním – musíme se o tuto informaci s procesorem podělit a říct mu, jak má daný pin provozovat.
My po našem procesoru chceme, aby generoval na daném výstupu napětí a naší LED uměl změnou hladiny výstupu zapínat i vypínat. Digitální pin budeme tedy provozovat v režimu výstupu. Toto v našem programu provedeme zavoláním funkce pinMode(), která ke svému běhu vyžaduje celkem dva argumenty – číslo pinu a režim provozu. V našem případě je obsah předávaných argmentů zcela zřejmý – vyplníme tedy číslo pinu (12) a výstupní režim (OUTPUT).
void setup() { // nastav digitalni pin 12 do vystupniho rezimu pinMode(12, OUTPUT); }
Používat dokumentaci se vyplácí
Jak každou takovou funkci z Arduino knihovny funkcí použít, lze vždy dohledat v přehledné dokumentaci, ke které se proklikáte přes menu Help a položku Reference. Pro zajímavost – takto vypadá dokumentace funkce pinMode().
V dokumentaci je navíc téměř vždy názorný příklad užití, jímž se můžeme při vývoji inspirovat. Obecně doporučuji tyto příklady využívat, neb Arduino je platforma, na níž se nejlépe učí právě praxí a inspirací v již hotových projektech.