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

Zápisník experimentátora

Hierarchy: A/D prevodník

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.

  • AVCC
  • Interní napětí 1,1 V
  • Externí referenční napětí, které přivedete na pin AREF.
  • Některé jiné Arduina mohou mít další možnosti nastavení referenčního napětí.

V tomto článku se budeme věnovat internímu napětí 1,1 V.

Interní referenční napětí

Interní napětí není nejpřesnější, ale nachází se přímo v mikrokontroléru a na jeho využívání nepotřebujete používat žádné externí součástky. Přesnost je ± 0,1 V, proto je vhodné si konkrétní hodnotu změřit na každém Arduinu. K tomu můžete využít pin AREF. Napětí se na pinu objeví až při prvním měření. K měření můžete použít následující dva programy. Od sebe se liší pouze v tom, že první používá funkce pro Arduino a druhý přímo manipuluje bity v registrech mikrokontroléru.

Příklad 1

void setup() {
  analogReference(INTERNAL);
  analogRead (A0);
}

void loop() {
}

Příklad 2

void setup() {
  ADMUX = bit(REFS0) | bit(REFS1);
}

void loop() {
}

Arduino Pro Mini

Z praktických důvodů používáme na breadboardu Arduino ve verzi Arduino Pro Mini. Toto Arduino nemá pin AREF zapojený a proto je problém hodnotu na pinu AREF změřit multimetrem. Na Internetu jsem našel několik příkladů, jak tento problém vyřešit. Řešení se soustředily na dvě skupiny. Jedna skupina využívala to, že AREF je připojen k jednomu kondenzátoru na desce a bylo možné opatrným pájením propojit tento kondenzátor s některým jiným pinem, na němž se již dalo měřit multimetrem.

Mně se ale líbila úplně jiná metoda. Musíte na to mít ale takové Arduino Pro Mini, které má na desce i piny A6 a A7 (prodávají se různé verze, některé je mají na desce a jiné je nemají). Tehdy stačí propojit malou kapkou cínu dva piny na mikrokontroléru. Jsou to piny AREF a ADC6. Protože obvykle nebudete potřebovat tolik analogových vstupů, můžete využít pin A6, na kterém se objeví požadované napětí.

Filtrační kondenzátor

Pro měření je vhodné doplnit filtrační kondenzátor 0,1 uF mezi piny AREF a GND. Arduino Uno ho má na desce, Arduino Pro Mini ho nemusí mít připojený vzhledem k tomu, že se všechny tyto desky vyrábějí v Číně a používají různé součástky.

Měření vyššího napětí

Můžete měřit i vyšší napětí až po VCC, ale výsledek měření bude mít v takovém případě vždy hodnotu 1023.

Zdrojový kód

Zdrojový kód se nachází na serveru GitHub.


12.09.2018


Menu