Image
15.4.2015 0 Comments

ARDUINO - programujeme mikrokontroléry /3.časť

Späť na úvod >> Späť na programovanie >> Späť na seriál

V predchádzajúcej časti sme ukázali, ako nainštalovať vývojové prostredie (IDE) Arduina. Zároveň sme si nainštalovali správny ovládač pre príslušný kit Arduina (v našom prípade Arduino Uno) a nakonfigurovali prostredie IDE na spoluprácu s ním. Len na zopakovanie – IDE si pamätá posledné použité nastavenie, ak teda budeme chcieť pracovať s iným kitom, musíme zmeniť príslušné nastavenia. Nastal čas na naozajstnú prácu s Arduinom. Tentoraz opíšeme kit Arduina Uno a vytvoríme si náš prvý program, naučíme sa ho skompilovať a nahrať do kitu Arduina.

Opis Arduina Uno


Na obrázku č. 1 je kit Arduina Uno. Jeho najdôležitejšie časti sú označené číslami. Tu je vysvetlenie jednotlivých častí:

  1. Resetovacie tlačidlo – použijeme ho, ak  z určitého dôvodu chceme nahraný program spustiť znova od začiatku (pri niektorých klonoch Una môže byť resetovacie tlačidlo umiestnené inde na doske kitu)
  2. Konektor USB typu B – používame na spojenie Arduina Uno s počítačom na nahrávanie programu do kitu, na sledovanie výsledkov alebo na komunikáciu kitu s počítačom
  3. Napájací konektor – používa sa na napájanie kitu, ak ten nie je napájaný cez konektor USB; dovolené napätie je od 7 do 12 voltov
  4. Prevodník USB – serial – zabezpečuje komunikáciu mikrokontroléra s počítačom cez konektor USB
  5. Konektor ICSP na programovanie prevodníka USB – serial; tento konektor nebudeme bežne používať
  6. Indikačná LED dióda označená L je pripojená na výstup č. 13, takže nepotrebujeme ku kitu pripájať  externú LED diódu; na nej si ukážeme naše prvé programy
  7. Indikačné diódy TX a RX – slúžia na indikáciu sériového prenosu medzi kitom a počítačom
  8. Indikačná dióda ON – signalizuje pripojené napájacie napätie kitu (niekde označovaná aj PWR)
  9. Mikrokontrolér Atmel – srdce kitu Arduino
  10. Konektor ICSP na programovanie mikrokontroléra Atmel; využívajú ho niektoré shieldy
  11. Lišta s výstupmi napätí kitu
  12. Analógové vstupy – tu budeme pripájať analógové súčiastky. Dajú sa využiť aj ako digitálne vstupy a výstupy
  13. Digitálne vstupy a výstupy – tu budeme pripájať  rôzne obvody; piny označené vlnovkou  možno použiť ako moduláciu PWM, čo si ukážeme neskôr

Sketch

Arduino sa dá programovať v jazyku C alebo C++. Vývojové prostredie Adruina obsahuje kompilátory pre oba tieto jazyky. No na ľahšie osvojenie programovania a efektívnejšiu prácu pre amatéra (domáceho majstra) je vhodnejšie používať knižnicu Wiring, priamo šitú pre Arduino, ktorá je v poslednom čase veľmi rozšírená a ktorá sa označuje ako samostatný programovací jazyk, podobný jazykom C a C++. Touto cestou pôjdeme aj my a až po zvládnutí Wiringu si ukážeme, ako programovať v  C.

Otvorme si teda prostredie IDE (obr. č. 2). Všimnime si, že titulok okna aj záložka nového listu majú v názve slovo sketch a aktuálny dátum. Slovo sketch (čítaj skeč) znamená skica alebo náčrt (skeč) a takto sa v Arduine, presnejšie vo Wiringu, označuje zdrojový text programu.  

Náš prvý program

Vývojové prostredie IDE obsahuje množstvo vzorových príkladov a knižníc (čo sú knižnice a ako sa s nimi narába, to si vysvetlíme neskôr). Prejdime teraz do položky menu File – Examples – 01.Basics (obr. č. 3). 

A otvorme príklad s názvom Blink (obr. č. 4).

 Zdrojový text tohto programu je na výpise č. 1.

/*
  Blink
  Turns on an LED on for one second, then off for one second, repeatedly.
 
  This example code is in the public domain.
 */
 
// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;
 
// the setup routine runs once when you press reset:
void setup() {               
  // initialize the digital pin as an output.
  pinMode(led, OUTPUT);    
}
 
// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);               // wait for a second
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);               // wait for a second
}
Všimnime si, že na uvedenom výpise sa nachádza niekoľko častí.

Medzi znakmi /* a */ sa nachádzajú viacriadkové komentáre. Tie slúžia na opis programu a pri kompilácii sa neakceptujú ( teoreticky by sme ich mohli vymazať a nič by sa nestalo; komentáre v programovaní však majú svoj význam – sami zistíme, že si nebudeme pamätať, ako sme určitý problém vyriešili pred pol rokom, ale komentár nám to znova objasní).  Podobne aj  jednoriadkové komentáre, ktoré sa začínajú znakmi  // na začiatku riadka.  Jednoriadkové komentáre sa používajú na opis funkcie alebo príkazu.

Všetko ostatné mimo komentárov je zdrojový text programu (skeče). Ten má svoju štruktúru a delí sa na niekoľko dôležitých častí:

  • Definičná časť
  • Blok setup
  • Blok loop

V definičnej časti sa definujú konštanty a premenné, ktoré chceme v programe používať. V tomto prípade text

int led = 13;

znamená, že sme definovali premennú s názvom led, ktorá je typu integer (odtiaľ skratka int), čo sú celé čísla v rozsahu -32768 až 32767, a hneď sme premennej led priradili hodnotu 13.  Zapamätáme si, že za každým príkazom nasleduje znak bodkočiarky ;.

Nasleduje blok s názvom void setup(). Ten je uzavretý do zložených zátvoriek { a }. V týchto zložených zátvorkách sa nachádzajú príkazy, ktorými v programe nastavujeme rôzne hodnoty, jednotlivé vývody kitu a podobne. Tento blok sa po spustení programu vykoná iba raz, a to na jeho začiatku. V našom prípade máme v tomto bloku príkaz

pinMode(led, OUTPUT);

Tento príkaz nastaví pin s názvom led ako výstupný (OUTPUT). A keďže my už vieme, že slovo led má hodnotu 13, môžeme povedať, že tento príkaz nastaví pin č. 13 na kite Arduino Uno ako výstup. A z prvého obrázka a opisu šiestej položky vieme, že na pin č. 13 je pripojená LED dióda, ktorá je integrálnou súčasťou kitu (označená ako L).

Nasleduje blok void loop(). Aj tento blok je uzavretý v zložených zátvorkách { a }, medzi ktoré sa píšu príkazy jazyka Wiring. Ako názov bloku loop predznačuje, ide o slučku (angl. loop =  slučka). Príkazy v tejto slučke sa vykonávajú stále dookola až do vypnutia napájania kitu.

Ako prvý príkaz v tejto slučke je

digitalWrite(led, HIGH);

ktorý znamená, že na digitálny výstup led (teda pin č. 13) sa zapíše logická jednotka (HIGH). Keďže logická jednotka značí napätie okolo 5 voltov, pripojená LED dióda sa rozsvieti.

Druhý príkaz

  •  

značí, že mikrokontrolér si dá prestávku (delay) 1000 milisekúnd, čo je presne jedna sekunda.

Tretí príkaz

digitalWrite(led, LOW);

je veľmi podobný tomu prvému, ibaže na digitálny výstup led (pin č. 13) sa zapíše logická nula (LOW). A keďže logická nula je skoro nulové napätie, pripojená LED dióda zhasne.

Štvrtý príkaz

  •  

je identický s druhým, takže mikrokontrolér čaká jednu sekundu.
 

Nasleduje koniec slučky loop, takže táto slučka začne znovu od začiatku prvým príkazom. Uvedený opis môžeme stručne interpretovať takto:

Na pine č. 13 rozsvieť LED-ku, čakaj sekundu, zhasni LED-ku, čakaj sekundu a opakuj dookola.

Preklad a nahratie do kitu

Teraz pripojme kit Arduino Uno pomocou kábla USB k počítaču. Kliknime na druhú ikonku zľava v podobe šípky. Spustí sa kompilácia (preklad) programu, čo môžeme sledovať v spodnom čiernom okne. Keď sa objaví takýto (alebo podobný) text: „Binary sketch size: 1 082 bytes (of a 32 256 byte maximum)“,  značí, že preklad sa uskutočnil v poriadku a po hlásení „Uploading“ počítač nahrá preložený kód do kitu Arduina. To spozorujeme tak, že na kite budú blikať diódy TX a RX (položka č. 7 na obrázku č. 1) a úspešné nahranie je ukončené hlásením „Done uploading“.

Ak všetko prebehlo bez chýb, môžeme prostredie IDE Arduina vypnúť. Odteraz vždy, keď pripojíme napájanie k Arduinu, či už cez konektor USB, alebo napájací konektor, začne LED dióda na kite blikať v sekundových intervaloch.

Ako domácu úlohu si vyskúšajte pomeniť hodnoty v príkaze delay a sledujte, ako sa mení blikanie LED diódy.

 

                                                                                                      

 

 

 

 

 

 

 

 

Zobrazit Galériu

Nechajte si posielať prehľad najdôležitejších správ emailom

Mohlo by Vás zaujímať

Ako na to

CES 2017: Lenovo predstavilo nové notebooky ThinkPad X1, Miix 720 a prvý smartfón s podporou Tango - Lenovo Phab 2

03.01.2017 00:09

Lenovo odštartovala ďalší ročník veľtrhu s celou škálou nových produktov. Nová generácia produktov radu ThinkPad X1 Carbon 2017 je najľahším 14-palcovým biznis notebookom, ktorý váži len 1,14kg a obsa ...

Ako na to

Tipy a triky: Ako správne poskytovať IT pomoc a ako o ňu správne žiadať?

14.12.2016 09:40

Či už ste pokročilý používateľ počítača, ktorý často poskytuje IT pomoc známym a rodine, alebo ste to vy, kto o takúto pomoc zvyčajne žiada, ľahko sa stanete nechcenou príčinou frustrácie a obrovskej ...

Ako na to

Tipy a triky: Ako diagnostikovať a opravovať neúspešné upgrady Windows 10

14.12.2016 09:37

Microsoft prešiel s Windows 10 do celkom novej éry vývoja. Namiesto samostatných verzií Windows, vydávaných zvyčajne s odstupom dvoch až piatich rokov (XP, Vista, 7 a podobne), začal svoj systém vyvíj ...

Žiadne komentáre

Vyhľadávanie

Kyocer TASK

Najnovšie videá