Transcription of ARDUINO – p ř čka programátora - hobbyrobot.cz
1 ARDUINO p ru ka program tora 1 ARDUINO p ru ka program tora S T R U K T U R A P R O G R A M U Z kladn struktura programovac ho jazyka ARDUINO je pom rn jednoduch a skl d se nejm n ze dvou st , p esn ji funkc . Bloky p kaz v t le t chto dvou funkc jsou ohrani eny slo en mi z vorkami. v o i d s e t u p ( ) { p k a z y; } v o i d l o o p ( ) { p k a z y; } Funkce setup() je p pravn a prov d se jen jednou na za tku programu, funkce loop() je v konn a prov d se neust le dokola. Pro spr vnou innost programu je v dy nutn pou t ob tyto funkce. Funkce setup() by m la b t vol na a po deklaraci v ech prom nn ch na za tku programu. Tato funkce se pou v nap klad k nastaven pin Arduina na vstup nebo v stup, nastaven parametr s riov komunikace a podobn ch jednor zov ch akc . Po funkci setup() n sleduje funkce loop(). T lo t to funkce obsahuje programov k d, kter bude opakovan prov d n v nekone n smy ce, nap klad ten vstup , nastavov n v stup , v po ty, atd.
2 Tato funkce je j drem v ech program Arduina a vykon v v t inu innost . setup() Funkce setup(), jak ji bylo e eno v e, se vol pouze jednou p i spu t n programu. Pou v se k inicializaci re imu jednotliv ch pin , k nastaven s riov komunikace apod. Tato funkce mus b t v programu obsa ena v dy, i kdy dn inicializa n p kazy neobsahuje. v o i d s e t u p ( ) { p i n M o d e ( p i n , O U T P U T ) ; / / n a s t a v ' p i n ' n a v s t u p } loop() Po dokon en funkce setup(), se za ne neust le dokola prov d t funkce loop(), jak jej n zev (loop = smy ka) ostatn napov d . P kazy, obsa en v t le t to funkce, jsou ur eny k prov d n ve ker innosti Arduina. v o i d l o o p ( ) { d i g i t a lW r i t e ( p i n , H I G H ) ; / / n a s t a v ' p i n ' n a l o g . 1 d e l a y( 1 0 0 0 ) ; / / e k e j j e d n u s e k u n d u d i g i t a lW r i t e ( p i n , L O W ) ; / / n a s t a v ' p i n ' n a l o g.}
3 0 d e l a y( 1 0 0 0 ) ; / / e k e j j e d n u s e k u n d u } ARDUINO p ru ka program tora 2 S y n t a x e {} slo en z vorky Slo en z vorky definuj za tek a konec bloku k du. Pou vaj se ve funkc ch i ve smy k ch. t yp e f u n c t i o n ( ) { p k a z y; } Za vodn slo enou z vorkou [ { ] mus v dy n sledovat z vorka uzav rac [ } ]. Proto se asto uv d , e slo en z vorky mus b t p rov ny. Samostatn um st n z vorky ( vodn bez uzav rac a naopak) mohou asto v st k z hadn m, patn dohledateln m chyb m kompil toru. Programov prost ed ARDUINO obsahuje praktickou funkci pro kontrolu p rov n slo en ch z vorek. Sta vybrat z vorku, nebo kliknout my bezprost edn pod z vorku a souvisej c z vorka bude zv razn na. ; st edn k St edn kem mus b t ukon ena deklarace i jednotliv prvky programu. St edn k je tak pou v n k odd len prvk ve smy ce.
4 I n t x = 1 3 ; / / d e k l a r u j e p r o m n n o u ' x ' j a k o d a t o v t yp i n t e g e r s h o d n o t o u 1 3 Pozn mka: Pokud zapomenete dek programu st edn kem ukon it, dojde k chyb kompil toru. Z chybov ho hl en m e b t z ejm , e se jedn o zapomenut st edn k, ov em tak nemus . Pokud se objev hl en o z hadn nebo zd nliv nelogick chyb kompil toru, zkontrolujte nejprve, zda v z pisu programu nechyb st edn k v bl zkosti m sta, kde kompil tor chybu ohl sil. /*.. */ blokov koment e Blokov koment e, nebo v ce dkov koment e jsou oblasti textu, kter jsou programem ignorov ny. Jsou pou v ny pro obsa n j komentov n k du nebo pozn mky, kter pomohou pochopit ostatn m v znam st programu. Blokov koment e za naj / * a kon * / a mohou obsahovat v ce dk textu. / * T o t o j e b l o k o v k o m e n t , n e z a p o m e t e h o u k o n i t.
5 Z n a k y p r o j e h o z a t e k a k o n e c m u s b t v d y v p r u ! * / Vzhledem k tomu, e koment e jsou programem ignorov ny, nezab raj dn pam ov prostor; mohou tedy b t hojn pou v ny. Mohou b t tak pou ity k do asn mu znefunk n n cel ch blok k du programu pro ely lad n . Pozn mka: Do blokov ho koment e je mo no vlo it i jedno dkov koment e (uvozen //), ale nen mo no do blokov ho koment e vlo it dal blokov koment . // jedno dkov koment e Jednotliv dky koment e mus za nat // a kon na konci dku. Stejn jako blokov koment e jsou jedno dkov koment e programem ignorov ny a nezab raj dn pam ov prostor. / / t o t o j e j e d n o d k o v k o m e n t ARDUINO p ru ka program tora 3 Jedno dkov koment e jsou asto pou v ny za p kazy k vysv tlen jejich funkce nebo jako pozn mka pro dal pou it.
6 P R O M N N Prom nn je zp sob pojmenov n a ulo en seln hodnoty pro pozd j pou it v programu. Jak jejich n zev nazna uje, prom nn jsou sla, jejich hodnota m e b t pr b n zm n na, na rozd l od konstant, jejich hodnota se nikdy nem n . Prom nn mus b t deklarov ny a voliteln jim lze p i adit hodnoty, kter maj b t do nich ulo eny. N sleduj c k d deklaruje prom nnou n zvem inputVariable a p i ad j hodnotu, z skanou ten m analogov hodnoty vstupn ho pinu 2: i n t i n p u t V a r i a b l e = 0 ; / / d e k l a r u j e p r o m n n o u / / a p i a d j h o d n o t u 0 i n p u t V a r i a b l e = a n a l o g R e a d ( 2 ) ; / / p i a d p r o m n n h o d n o t u / / p o d l e a n a l o g o v h o d n o t y p i n u 2 Prom nnou pojmenujeme 'InputVariable'. Prvn dek k du deklaruje, e prom nn bude obsahovat datov typ int (zkratka pro n zev integer) a nastav jej hodnotu na 0.
7 Druh dek nastav hodnotu prom nn podle hodnoty analogov ho na pinu 2, kter je dostupn jinde v programov m k du. Jakmile byla prom nn p i azena nebo zm n na hodnota, m ete m ete pou t jej hodnotu p mo nebo testovat, zda tato hodnota spl uje ur it podm nky. P klad ukazuje t i u ite n operace s prom nn mi. N sleduj c k d testuje, zda hodnota prom nn inputVariable je men ne 100, je-li to pravda, pak prom nn inputVariable p i ad hodnotu 100, a pak nastav na z klad hodnoty prom nn inputVariable prodlevu, kter je nyn minim ln 100: i f ( i n p u t V a r i a b l e < 1 0 0 ) / / t e s t u j e , z d a j e h o d n o ta p r o m n n m n n e 1 0 0 { i n p u t V a r i a b l e = 1 0 0 ; / / j e - l i t o p r a v d a , j e j p i a z e n a h o d n o t a 1 0 0 } d e l a y( i n p u t V a r i a b l e ) ; / / p o u i j e h o d n o t u p r o m n n j a k o p a r a m e t r f u n k c e / / d e l a y Pozn mka: Prom nn m bychom m li pro lep orientaci v programov m k du d vat popisn n zvy.
8 Jm na prom nn ch, jako je tiltSensor nebo pushButton pom haj program torovi i komukoli jin mu p i ten k du snadn ji poznat, co prom nn znamen . V na ich p kladech ale naopak pou v me kr tk jm na prom nn ch (nap klad var nebo value), aby byl k d krat a p ehledn j . Prom nn m e b t pojmenov na libovoln m jm nem, kter nepat mezi kl ov slova v jazyce ARDUINO . deklarace prom nn ch V echny prom nn mus b t deklarov ny je t p ed jejich prvn m pou it m. Deklarace prom nn znamen , e definujete jej typ (int, long, float, atd.), nastav te jej jm no, a p padn p i ad te po te n hodnotu. Tyto deklarace posta v programu prov st jen jednou, hodnotu prom nn ale m ete v programu kdykoliv zm nit. N sleduj c p klad deklaruje, e prom nn inputVariable je typu int neboli integer, a e jej po te n hodnota je rovna nule. To se naz v jednoduch p i azen . i n t i n p u t V a r i a b l e = 0 ; Prom nn m e b t deklarov na kdekoli v programu a je pou iteln od m sta deklarace d le.
9 ARDUINO p ru ka program tora 4 platnost prom nn ch Prom nn m e b t deklarov na na za tku programu, je t p ed funkc void setup(), lok ln uvnit funkce, a n kdy v deklaraci bloku, jako je tomu u smy ek. M sto, kde je prom nn deklarov na, ur uje jej pou itelnost pro n kter sti programu. Glob ln prom nn je ta, ke kter maj p stup a mohou pou vat v echny funkce a deklarace v programu. Takov prom nn mus b t deklarov na na za tku programu, je t p ed funkc void setup(). Lok ln prom nn je ta, kter je definov na uvnit funkce nebo jako sou st smy ky. Je dostupn a m e b t pou ita pouze uvnit funkce, uvnit kter byla deklarov na. Je tedy mo n m t v r zn ch stech t ho programu um st n dv nebo v ce prom nn ch stejn ho jm na, kter obsahuj r zn hodnoty. To, e p stup ke sv m lok ln m prom nn m m pouze dan funkce zjednodu uje program a sni uje mo nost programov ch chyb.
10 N sleduj c p klad ukazuje, jak m zp sobem m eme deklarovat r zn typy prom nn ch a p edv d viditelnost ka d z prom nn ch v programu: i n t v a l u e ; / / p r o m n n ' v a l u e ' j e v i d i t e l n / / p r o v e c h n y f u n k c e v o i d s e t u p ( ) { } / / f u n k c e n e o b s a h u j e d n i n i c i a li z a n p k a z y v o i d l o o p ( ) { f o r ( i n t i = 0 ; i < 2 0 ; ) / / p r o m n n ' i ' j e v i d i t e l n { / / j e n u v n i t t t o s m y k y i + + ; } f l o a t f ; / / p r o m n n ' f ' j e v i d i t e l n } / / j e n u v n i t t t o s m y k y K o n s t a n t y Jazyk ARDUINO m n kolik p eddefinovan ch hodnot, kter se naz vaj konstanty. Ty se pou vaj k tvorb p ehledn j ch program . Konstanty jsou se azeny do skupin. true / false Jedn se o logick konstanty, kter definuj logick rovn.