Programovací jazyk, v ktorom prebieha programovanie Arduina, 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 programovaním Arduina 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 jazykom Wiring. Pri vytváraní knižníc predpokladám, že čitatelia už poznajú jazyk C a že teda nie je potreba popisovať dopodrobna 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“.
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ávajú Arduino do stavu s nízkym odberom. U Arduina, ktoré slúži 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 }
No pre úplných začínajúcich doporučujem začať s článkom „Arduino IDE – návod na inštaláciu“ a potom pokračovať článkom „Prvý program: Arduino blikanie LED“, kde sa všetko potrebné dozvieš ako zapojiť a naprogramovať Arduino. Taktiež si preštuduj i tu dole nasledovné referencie jazyka Wiring.
= priradenie
+ sčítanie
– odčítanie
* násobenie
/ delenie
% modulo
++ inkrementácia
-- dekrementácia
+= priradenie sčítaním
-= priradenie odčítaním
*= priradenie násobním
/= priradenie delením
%= priradenie modulo
&= priradenie bitovým and
|= priradenie bitovým or
< menší
> väčší
<= menší alebo rovné
>= väčší alebo rovné
== rovné
!= nerovné
&& and
|| or
! not
<< posun vľavo
>> posun vpravo
& and
| or
~ not
^ xor
* dereferencia
& referencia
? otáznik
: dvojbodka
; bodkočiarka
, čiarka
{} zložené zátvorky
// jednoriadkový komentár
/* */ viacriadkový komentár
#include
#define
#undef
#ifdef
#endif
#else
#elif
#error
if
if… else
switch case
for
while
do… while
break
continue
goto
return
konštanty digitálnych pinov
HIGH | LOW
INPUT | OUTPUT | INPUT_PULLUP
LED_BUILTIN
true | false logické konštanty
10 celočíselné konštanty
10.5 racionálne konštanty
‘a’ znakové konštanty
“text” konštantné reťazce
void
boolean
char, unsigned char
byte
int, unsigned int
word
long, unsigned long
short
float
double
string reťazcové pole
String objekt
array
char()
byte()
int()
word()
long()
float()
variable scope
static
volatile
const
sizeof()
PROGMEM
pinMode()
digitalWrite()
digitalRead()
analogReference()
analogRead()
analogWrite() PWM
tone()
noTone()
shiftOut()
shiftIn()
pulseIn()
delay()
delayMicroseconds()
millis()
micros()
min()
max()
abs()
constrain()
map()
pow()
sqrt()
sin()
cos()
tan()
isAlphaNumeric()
isAlpha()
isAscii()
isWhitespace()
isControl()
isDigit()
isGraph()
isLowerCase()
isPrintable()
isPunct()
isSpace()
isUpperCase()
isHexadecimalDigit()
random()
randomSeed()
lowByte()
highByte()
bitRead()
bitWrite()
bitSet()
bitClear()
bit()
interrupts()
noInterrupts()
attachInterrupt()
detachInterrupt()
Serial
Stream
Tento text je preložený a upravený zo stránok arduino.cc pod licenciou Creative Commons Attribution-ShareAlike 3.0.
Tranzistor je základným stavebným prvkom skoro každého dnešného elektronického zariadenia. Základom tranzistora je kryštál polovodiča s dvoma priechodmi PN. Polovodičové priechody tranzistora vytvárajú štruktúru zodpovedajúcej spojenie dvoch polovodičových...
Objavila sa i ďalšia alternatíva k Arduino IDE a máme tu Codino. Na domovskej stránke sa chváli slušným editorom, ktorý vie automatické doplňovanie, automatické ukladanie alebo zvýrazňovanie. Taktiež obsahauje sériový terminál a ploter. Codino Studio je úplne bezplatný produkt. Môžete si ho stiahnuť ...
V tomto článku prinášam jednu z ďalších možností pre Arduino programovanie a to vývojové prostredie PlatformIO IDE. V tomto vývojovom prostredí si ukážeme jednoduchý príklad „Blink“. Okrem programovania Arduina ho možno použiť aj pre ďalšie podobné...