Analogová reference AREF | Arduino Shop a návody

    • Rozlišení převodníků ADC.
    • Vnitřní srovnávací reference v Arduinu.
    • Vnější reference AREF.

Potřebný materiál.

.

Španělsko Španělsko Mexiko
UNO Starter Kit UNO Starter Kit
MEGA Starter Kit
MEGA Starter Kit MEGA Starter Kit MEGA Starter Kit MEGA Starter Kit. MEGA Starter Kit

Analogově-digitální převod

V předchozím díle jsme si již řekli, že Arduino má 6 analogově-digitálních převodníků (ADC), což jsou piny A0 až A5, a řekli jsme, že jsou schopny převádět hodnoty napětí maximálně do 5 V, což je referenční napětí na Arduinu.

Řekli jsme si také, že jednou z klíčových vlastností převodníku je počet jeho bitů, který určuje jemnost, s jakou můžeme tento převod na digitální vyčíslit. V případě Arduina je v analogových hradlech 10 bitů, což znamená, že jeho rozlišení je 210 = 1 024 možných hodnot.

Čím vyšší je toto rozlišení, tím lepší je schopnost přiblížit se skutečné hodnotě, jejíž převod hledáme.

  • Je důležité si uvědomit, že převod analogového signálu na digitální je vždy aproximací, a i v nepravděpodobném případě, že analogová hodnota bude přesně taková, jakou nám převodník sdělí, budeme mít vždy nejistotu.
  • Na převodníku Arduino s 10bitovým rozlišením je každý krok měření 5V/1024 = 0,0048828125 V, tedy necelých 5mV, což znamená, že nedokáže rozlišit hodnoty napětí, jejichž rozdíl je menší než tato hodnota.

Aniž bychom zacházeli do přílišných podrobností, stojí za to říci, že převodník ADC postupně porovnává signál, který chceme kvantifikovat, na vstupu s referenčním napětím, s nímž provádí srovnání.

Jinými slovy, ADC neposkytuje absolutní hodnoty, ale poskytuje kvantifikované srovnání vzhledem k referenční hodnotě. V relaci teplotního senzoru TMP36 jsme tedy vypočítali vstupní napětí na jednom z analogových pinů jako údaj vynásobený poměrem maximální hodnoty 5V vstupu a maxima naměřeného převodníkem 1024.

Jelikož signály, se kterými běžně pracujeme na Arduinu, se pohybují kolem 5V, je porovnání s 5V rozumné, protože v průmyslu existuje také celá řada senzorů, jejichž maximální hodnota vrací 5V.

Ale v průmyslu se stále častěji vyrábí 3,3V elektronika, samotné Arduino DUE je toho příkladem, a pokud používáme naše ADC k digitalizaci špičkových 3,3V signálů, ztrácíme přesnost a rozlišení, protože plýtváme částí možných porovnání, vlastně třetinou.

V praxi to, že 3,3 V je maximální vstupní napětí oproti 5 V, znamená, že nikdy nebudeme mít hodnoty větší než 1 024 * 3,3 /5 = 675 a stále budeme mít vstupní kroky 5 mV.

Jestliže je však převodník napěťovým komparátorem, pokud bychom mohli změnit hodnotu napětí, se kterou porovnáváme, na 3,3 V, kroky by byly 3,3 V/1024 = 0,00322265625 nebo 3,2 mV. To znamená, že jsme zlepšili rozlišení našeho převodníku, aniž bychom utratili jediný haléř.

V ideální situaci by tedy srovnávací napětí, proti kterému provádíme převod z analogového na digitální signál, mělo být maximální možnou hodnotou vstupního signálu. Protože tehdy budeme mít s tímto převodníkem nejlepší možné rozlišení.

Chlapci z Arduina si byli tohoto problému vědomi, a proto zařadili externí pin, který jsme dosud nepoužívali a který umožňuje připojit externí referenční napětí, se kterým se bude porovnávat signál, který čteme na našich hradlech A0 až A5.

Tento pin je označen AREF (Analog Reference) a nachází se dva piny nad digitálním pinem 13:

Použití externí analogové reference

Otázka analogové reference, se kterou porovnáváme vzorky v hradlech A0-A6, je natolik důležitá, že Arduino poskytuje několik interních napětí pro porovnání, které můžeme aktivovat pro změnu reference.

Pro aktivaci 1,1V interní reference na Arduino UNO použijte instrukci

analogReference(INTERNAL);

Pokud používáte MEGA, můžete použít výhradně:

analogReference(INTERNAL1V1);
analogReference(INTERNAL2V56);

Která aktivuje 1,1V, resp. 2,56V reference.

Použijete-li klávesu DEFAULT, vrátíte se prakticky u všech modelů Arduina ke standardní referenci 5 V.

analogReference(DEFAULT);
  • Dejte si pozor na referenci DEFAULT, protože na DUE to znamená 3,3 V, protože to je jeho referenční napětí. Před jeho šťastným použitím se o tom ujistěte.

Pokud na pin AREF připojíme referenční napětí, musíme Arduinu sdělit, že jej chceme použít. A to pomocí instrukce

analogReference(EXTERNAL);

Při úpravě analogové reference používejte hlavu, protože pokud si nedáte pozor, dáte si Arduino k večeři. Je poměrně snadné pokazit některé na první pohled nevinné akce:

  • Ujistěte se, že pokud používáte externí referenci, jsou GND Arduina a reference stejné, a to jejich propojením. Nedodržení tohoto postupu má při první změně velmi špatnou prognózu.
  • Na pinu AREF v žádném případě nepoužívejte napětí menší než 0 V (NEBO signál, který se mění a může mít záporné přechodové jevy), protože výsledek je nepředvídatelný.
  • Připojíte-li externí referenční napětí, nevolejte analogRead() před provedením instrukce analogReference(EXTERNAL), protože zkratujete interní srovnávací signál s externím napětím na AREF a případně využijete příležitosti koupit si to nové Arduino, které si tak toužíte koupit.
  • Nepřipojujte k AREF méně než 1V nebo více než 5V, nemůžete prostě nastavit 12 a čekat, že vám to dá hodnotu.

Testovací obvod

Nastavíme testovací obvod s I2C displejem, jak jsme viděli v relaci… a potenciometr. Tentokrát ale připojíme na koncích potenciometru GND a 3,3V, takže na centrálním vývodu, který budeme číst pomocí A1, nemůže nikdy překročit 3,3V a simulovat tak senzor s touto maximální hodnotou.

Při otáčení potenciometru budeme číst úbytek napětí mezi 0V a 3,3V. a čtení vývodu A1, bude dávat hodnoty mezi 0 a 670, protože jsme v případě, který jsme definovali o něco výše.

Program bude jednoduše číst analogový vývod A1 a posílat jeho hodnotu na I2C displej o 16 znacích po dvou řádcích, jak jsme viděli v relaci….

Obsah dostupný pouze pro předplatitele. Přístup k obsahu!

Tady je minivideo s údaji z potenciometru

Pokud nyní připojíme interní napětí 3,3 V Arduina na pin AREF, budeme mít obvod jako tento:

Podívejme se nyní na program:

Tady je video s rozdílem:

Shrnutí sezení

V tomto kurzu arduina jsme se naučili následující:

    • Na otázce převodu analogového signálu na digitální jsme trvali a viděli jsme, že se v podstatě jedná o porovnání s referenční hodnotou.
    • Viděli jsme, že můžeme použít jinou hodnotu interního nebo externího napětí než obvyklých 5 V.
    • Nyní známe přesné pokyny k aktivaci této externí reference a opatření, která je třeba dodržet při jejím použití.

.