AYMPL – Programování mikropočítačů
11.12.2015
Programování mikropočítačů – platforma Arduino
Obsah Arduino .................................................................................................................................................... 1 Digitální výstupy a vstupy ........................................................................................................................ 2 Připojení LED k Arduinu ....................................................................................................................... 2 Co je to LED?........................................................................................................................................ 3 Výpočet hodnoty předřadného rezistoru pro LED .............................................................................. 3 Barevné značení rezistorů ................................................................................................................... 4 Připojení tlačítka k Arduinu ................................................................................................................. 5 Úkoly k procvičení pro LED a tlačítko .................................................................................................. 5 Analogové vstupy .................................................................................................................................... 6 Sériová komunikace ................................................................................................................................ 6 Úkoly k procvičení pro analogové vstupy a sériovou komunikaci....................................................... 7
Arduino Arduino je platforma pro snadný vývoj zařízení s mikropočítačem. Tato platforma se skládá z: • • •
Desky s mikropočítačem (vývojový kit) Vývojové prostředí pro tvorbu programů na počítači (IDE). Sady programových knihoven, které usnadňují tvorbu programů pro mikropočítač.
Arduino je určeno pro „neprogramátory“ a celý proces jeho programování je proto maximálně zjednodušen. Další informace o Arduinu najdete např.: • • •
Webové stránky Arduina: Arduino.cc http://robotika.vosrk.cz/guide/arduino/lesson00/cs http://www.hwkitchen.com/news/arduino-uvod-1/
1
AYMPL – Programování mikropočítačů
11.12.2015
Digitální výstupy a vstupy Digitální (diskrétní, binární) vstupy a výstupy (zkratka V/V, anglicky I/O – Input/Output) jsou vstupy a výstupy, které mohou být jen ve dvou stavech: logická 1 a logická 0. Stavu logické 1 odpovídá napájecí napětí na pinu mikropočítače (5V u Arduino Uno). Stavu logické 0 odpovídá napětí 0 V (GND, zem).
Připojení LED k Arduinu Příkladem jednoduchého digitálního výstupu je ovládání svítivé diody (LED). Vysvětlení k LED a program pro vyzkoušení tohoto zapojení najdete v článku „Blikáme LEDkou“ na http://robotika.vosrk.cz/guide/arduino/lesson02/cs.
Na obrázku je LED připojena na pin 2 Arduina. Pozor: při zapojování LED je třeba dodržet polaritu! Vysvětlení najdete v další kapitole. Pro první pokusy je vhodné připojit ji místo pinu 2 na vývod 5 V, takže bude trvale svítit při zapojení Arduina na napájení (do USB konektoru počítače). Tím ověříme, že zapojení je správně a pak teprve LED přepojíme na pin Arduina a budeme ji ovládat programem.
2
AYMPL – Programování mikropočítačů
11.12.2015
Co je to LED? LED je polovodičový zdroj světla. Při zapojení je důležité dodržet polaritu! Také je důležité do obvodu s LED zařadit rezistor, který omezí proud tekoucí LED, jinak hrozí poškození samotné LED nebo zdroje proudu!
Výpočet hodnoty předřadného rezistoru pro LED Označení veličin: • • • •
Proud – I Napájecí napětí – U Napětí na LED – ULED Odpor rezistoru – R
Proud LED bude: I = (U – ULED) / R Proud LED je udáván výrobcem, obvykle je to kolem 20 mA pro běžné LED a 2 mA pro tzv. nízkospotřebové LED. Potřebnou hodnotu odporu tedy vypočteme:
R = (U – ULED) / I
Příklad: Máme LED, pro kterou požadujeme proud I = 2 mA = 0,002 A. Napájecí napětí (napětí na pinu Arduina) je U = 5 V.
3
AYMPL – Programování mikropočítačů
11.12.2015
Úbytek napětí na LED je ULED = 2 V R = ( 5 – 2 ) / 0,002 = 3 / 0,002 = 1500 Ohmů. Je možné, že nebudeme mít k dispozici (anebo se ani nevyrábí) rezistor s vypočtenou hodnotou. V tom případě použijeme nejbližší vyšší hodnotu. Vyšší proto, že pak bude proud LED nižší a nehrozí tak její poškození.
Barevné značení rezistorů Hodnotu rezistoru můžeme určit pomocí barevných proužků, viz následující obrázek.
Na obrázku jsou vidět také příklady hodnot. Např. horní rezistor má 4 proužky: žlutý, fialový, červený a stříbrný. • • • •
Žlutý: 4 Fialový: 7 Červený: 2 Stříbrný: tolerance 10%
Hodnota je tedy 47 * 100 = 4700 Ohmů = 4,7 kOhmů Pokud máme k dispozici digitální multimetr, může být jednodušší hodnotu rezistoru změřit.
4
AYMPL – Programování mikropočítačů
11.12.2015
Připojení tlačítka k Arduinu Tlačítko je příkladem digitálního vstupu. Ukázku připojení tlačítka k Arduinu najdete v článku „Tlačítko“ na: http://robotika.vosrk.cz/guide/arduino/lesson03/cs. Zde je příslušné zapojení LED a tlačítka:
LED je zapojena na pinu 2, stejně jako v předchozím příkladě. Tlačítko je zapojeno na pinu 5 a to tak, že při stisknutém tlačítku je na pinu logická 1 (digitalRead vrací HIGH).
Úkoly k procvičení pro LED a tlačítko 1. Vypočtěte velikost předřadného rezistoru pro zelenou LED. Na LED je úbytek napětí 2,2 V. Napětí na výstupním pinu Arduina je 5 V. Proud LED by měl být 2 mA. 2. Vytvořte testovací obvod se zelenou LED. LED bude zapojena mezi vývod 5V a GND Arduina (v sérii s rezistorem!). LED by tedy měla trvale svítit, pokud je Arduino připojeno na napájení. 3. Připojte zelenou LED k Arduinu na zvolený pin. Nezapomeňte na předřadný rezistor! Vytvořte program, který bude touto LED blikat. 4. Vytvořte program, který bude blikat střídavě vámi připojenou LED a LED umístěnou přímo na desce Arduina (pin 13) s periodou 1 s. 5. Připojte k Arduinu tlačítko na zvolený pin. Vytvořte program, který při stisku tlačítka rozsvítí LED a při uvolnění tlačítka LED zhasne. Tedy LED svítí, pokud je stisknuto tlačítko. 5
AYMPL – Programování mikropočítačů
11.12.2015
Analogové vstupy Na analogový vstup Arduina můžeme připojit napětí 0 až 5 V. Jednoduchým způsobem, jak získat proměnné napětí pro pokusy s analogovými vstupy je použití potenciometru. Vysvětlení analogových vstupů a příklad jejich použití je v článku „Analogový svět“ na http://robotika.vosrk.cz/guide/arduino/lesson08/cs. Odtud je také následující zapojení:
Běžec potenciometru je zapojen na analogovém vstupu Arduina A0 (šedý drát). Otáčením potenciometru se mění napětí na tomto vstupu. Napětí se pak odesílá na sériovou linku.
Sériová komunikace Nejjednodušším způsobem, jak zobrazit informace z programu běžícího v Arduinu je jejich odeslání na sériovou linku. Pak si je můžeme zobrazit na počítači v okně Serial Monitor v Arduino IDE. Ukázka sériové komunikace je obsažena v programu pro analogové vstupy podle článku „Analogový svět“ na http://robotika.vosrk.cz/guide/arduino/lesson08/cs. Vysvětlení sériové komunikace a také další ukázky, včetně čtení dat ze sériové linky (zpracování příkazů z počítače v Arduinu) pak najdete v článku „Sériová komunikace“ na http://robotika.vosrk.cz/guide/arduino/lesson07/cs.
6
AYMPL – Programování mikropočítačů
11.12.2015
Úkoly k procvičení pro analogové vstupy a sériovou komunikaci 1. Připojte k Arduinu potenciometr a přečtěte jeho hodnotu v programu. Výsledek odesílejte na sériovou linku. Ukázkový program najdete v článku na http://robotika.vosrk.cz/guide/arduino/lesson08/cs. V tomto článku je také ukázáno posílání přečtené hodnoty na sériovou linku. 2. Upravte předchozí program tak, aby neposílal přímo číselnou hodnotu získanou z A/D převodníku, ale přepočetl ji nejprve na skutečné napětí v rozsahu 0 až 5 V.
7