A/D převodník

Page

Stránky / Arduino / Pod kapotou Arduina /

Analogově-digitální převodník provádí propojení mezi analogovým a digitálním světem v Arduinu. Okolní prostředí často poskytuje analogový signál, který ale neumíme přímo zpracovat. Potřebujeme si ho pomocí A/D převodníku přeměnit do digitální podoby. Převodník v Arduinu je desetibitový. To znamená, že dokáže analogový signál rozdělit na 1024 různých hodnot.

Napájení A/D převodníku

V Arduinu se nachází mikrokontrolér ATmega328P, který má napájení převodníku na pinu AVCC. Je připojen na stejné napájení, jak jde do pinu VCC. V Arduinu to nemáte jak ovlivnit, ale pokud byste si navrhovali vlastní desku pro Arduino, můžete tento vstup lépe oddělit od digitální části elektrického obvodu a tím dosáhnout menší šum na vstupu A/D převodníku. Příklad na to, jak pin AVCC zapojit, naleznete v datasheetu mikrokontroléru ATmega328P.

Referenční napětí

A/D převodník porovnává měřený analogový signál s referenčním napětím. Arduino má implicitně zapnuté referenční napětí AVCC. To znamená, že měří signál v rozmezí 0 - 5 V. Referenční napětí lze nastavit funkcí analogReference. Můžete si zvolit tři varianty (Některé Arduina poskytují i více možností). Ve všech případech platí, že nejprve použijete funkci pro nastavení reference a až potom měříte hodnotu.

  • Napájecí napětí mikrokontroléru.
  • Interní reference 1,1 V
  • Externí reference na pinu AREF.

Použití referenčního napětí vyžaduje, aby byl na pinu AREF připojen i kondenzátor 0,1 uF. Ten je připojen na desce Arduino Uno. Na deskách Arduino Pro Mini může být připojen, ale vyskytují se i varianty, které ho připojený nemají. Interní reference má výhodu v tom, že nepotřebujete žádné další součástky, ale na druhé straně se v každém mikrokontroléru liší a proto je vhodné si ji změřit na pinu AREF a ve výpočtech používat jako nastavenou konstantu v programu.

Funkce

Na analogové měření se využívají následující funkce.

Pokročilé analogově-digitální měření

Na běžné situace vás stačí funkce, které poskytuje Arduino. Pokud ale požadujete něco navíc, musíte použít datasheet pro ATmega328P a nastavit si analogově-digitální měření pomocí registrů. Vzorové příklady na některé situace najdete v následujících článcích.

A/D převodník - Interní referenční napětí

Pokud budete používat v Arduinu analogově-digitální převodník, implicitně bude nastaven tak, že jeho referenční napětí je AVCC. Toto implicitní nastavení umožňuje měřit s rozlišením přibližně 4 mV. Na výběr máte více možností, jak toto rozlišení měnit.

A/D převodník - Měření bez blokování

Funkce analogRead je naprogramována tak, že během měření zablokuje mikrokontrolér. Během toho času nemůžete dělat nic jiného. Pokud potřebujete lépe využít čas mikrokontroléru na zpracování jiných úloh, je vhodné upravit analogové měření tak, aby neblokovalo běh programu. V tomto příkladu si takový program navrhneme.

A/D převodník - Měření pomocí přerušení

V předchozím článku jsme si naprogramovali analogové měření, které neblokovalo Arduino během měření. Konec měření jsme kontrolovali pomocí bitu ADSC. Konec analogového měření můžeme kontrolovat i pohodlněji pomocí přerušení, které nám Arduino na konci měření zavolá. V tomto článku si ukážeme, jak se to dá naprogramovat.

A/D převodník - Free Running mód

A/D převodník obsahuje jednu zajímavou možnost, jak měřit analogový signál co nejrychleji. Spuštění nového analogového měření může být vyvoláno ukončením předchozího měření. Tento mód se nazývá Free Running.

A/D převodník - osmibitové rozlišení

A/D převodník v Arduino Uno má rozlišení 10 bitů. Pokud nepotřebujeme takové velké rozlišení, můžeme použít i rozlišení 8 bitů. Získáme tak převod analogové hodnoty na digitální hodnotu, která má přesně 8 bitů. Dosáhneme to tak, že si upravíme zarovnání bitů ve výsledném 16 bitovém registru. Používání 8 bitového A / D převodu má výhodu v tom, že nemusíme dodržovat doporučenou frekvenci převodu 50 kHz - 200 kHz a můžeme používat i vyšší frekvence.

A/D převodník - TL431 externí referenční napětí

V článcích o A/D převodníku jsme se již věnovali internímu referenčnímu napětí. Pin AREF nám umožňuje připojit i externí referenční napětí, které si můžeme přizpůsobit svým požadavkům na měření. TL431 je součástka, která nám poskytuje takové referenční napětí. Je to levná součástka, kterou naleznete v množství výrobků. Například v zdrojích napětí, počítačích nebo LED driveru.

ATtiny85

Tento mikrokontrolér má podobný A / D převodník jako Arduino Uno. Navíc má i několik zajímavých vlastností.

ATtiny85 - A/D převodník

V tomto článku se budeme věnovat A/D převodníku v mikrokontroléru ATtiny85. Vycházet budeme z předchozích článků, ve kterých jsme popisovali A/D převodník v Arduinu Uno. V tomto článku si ukážeme základní použití převodníku a vyjmenujeme si odlišnosti. Odlišnostem se budeme podrobně věnovat v některém z dalších článků.


14.02.2020


Menu