Czech English

8. Analogový svět

aneb není vše černé nebo bílé

Zatím jsme používali pouze digitální vstupy a výstupy Arduina. Mnoho signálů není jen binárních (dvouhodnotových), ale jejich hodnota se mění plynule (ne skokově) a těmto signálům říkáme analogové (spojité). Ovšem číslicový počítač s nimi neumí pracovat, ten umí pracovat jen s čísly. Proto je nutné nejprve takový signál převést na číslo.


Teorie

K převodu spojitého (analogového) signálu na číslicový slouží analogově-digitální převodník. Ten "měří" napětí na vstupu a jeho výstupem je číslo odpovídající měřenému napětí.
Počet různých hodnot, které převodník poskytuje udává tzv. rozlišení převodníku. A/D převodník v mikrokontroleru Arduina je 10-bitový, tzn. že rozeznává 2^10 (1024) hodnot napětí. Nulovému napětí odpovídá hodnota 0 a maximálnímu napětí (5V) hodnota 1023. Z toho vyplývá, že jeden "dílek" odpovídá: 5V/1024 tj. přibližně 4,88 mV.
Pokud tedy naměříme např. hodnotu 724, tak napětí na vstupu je asi 3,53V.
Přesnost A/D převodu je závislá na mnoha faktorech: rozlišení a přesnost samotného A/D převodníku, přesnost referenčního napětí (napětí, se kterým se měřené porovnává - u Arduina přímo napájecí napětí), teplota, ...

Zapojení

Pro vyzkoušení potřebujeme nějaký zdroj proměnného napětí. Nejjednodušeji ho realizujeme potenciometrem (proměnným rezistorem) zapojeným jako dělič napětí. Jeho výstupní napětí je dáno poměrem odporu části dráhy (od jedné krajní svorky k tzv. běžci) a odporu celé dráhy potenciometru.
U_výstup = Rx / R . U_napájení
Krajní svorky potenciometru připojíme na napájení (jednu na GND a druhou na 5V), prostřední svorku - běžec na jeden z analogových vstupů Arduina označených AnalogIn.
Schéma připojení potenciometru
Schéma připojení potenciometru
Zapojení realizované na kontaktním poli
Zapojení realizované na kontaktním poli

Program

Pro čtení hodnoty analogového vstupu slouží příkaz
analogRead(pin)

  pin   ... určuje nožičku, na kterou je přivedeno měřené napětí (0-5)
Pro zobrazení měřené hodnoty na analogovém vstupu nám už led nestačí (umí rozlišit jen dvě hodnoty: svítí - nesvítí). K tomu by se hodil např. znakový LCD displej, ale jeho připojení si necháme na později. Nyní využijeme pro zobrazení měřených hodnot PC, do kterého budeme čísla posílat pro seriové lince.
První program tedy bude velmi jednoduchý. Změříme hodnotu napětí na analogovém vstupu Arduina a zjištěné číslo odešleme do PC.
Nyní upravíme program tak, aby odesílal změřenou hodnotu přímo jako napětí. Tím vyrobíme jednoduchý voltmetr s rozsahem 0 - 5V.

Úkoly na samostatnou práci

1. Použijte potenciometr na řízení rychlosti blikání LED. (Perioda blikání nebude konstanta, ale bude dána hodnotou čtenou na analogovém vstupu).
2. Sestavte program pro ovládání čtyř LED, které se budou postupně z jedné strany rozsvěcovat podle stoupajícího napětí na analogovém vstupu. (pro napětí menší než 1V nesvítí žádná, 1-2V svítí jedna, 2-3V svítí dvě, 3-4V svítí tři a pro více než 4V svítí čtyři). Pro jiný počet LED upravte rozsahy pro rovnoměrné rozložení.