Obsah:
- Krok 1: Revize
- Krok 2: Proč AnalogRead () vrací hodnotu mezi 0 a 1023?
- Krok 3: Co je tedy AREF?
- Krok 4: Externí AREF
- Krok 5: Interní AREF
Video: Pin Arduino AREF: 6 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
V tomto tutoriálu se podíváme na to, jak můžete měřit menší napětí s větší přesností pomocí analogových vstupních pinů na vašem Arduinu nebo kompatibilní desce ve spojení s pinem AREF. Nejprve však uděláme nějakou revizi, abychom vás dostali do tempa. Před první prací s AREF si prosím přečtěte celý tento příspěvek.
Krok 1: Revize
Můžete si vzpomenout, že můžete použít funkci Arduino analogRead () k měření napětí elektrického proudu ze senzorů a tak dále pomocí jednoho z analogových vstupních kolíků. Hodnota vrácená z analogRead () by byla mezi nulou a 1023, přičemž nula představuje nulové napětí a 1023 představuje provozní napětí používané desky Arduino.
A když říkáme provozní napětí - to je napětí, které má Arduino k dispozici po napájecích obvodech. Pokud například máte typickou desku Arduino Uno a spouštíte ji z USB zásuvky - jistě, na desce je k dispozici 5 V z USB zásuvky na vašem počítači nebo rozbočovači - ale napětí se mírně snižuje, jak se proud vine kolem obvod k mikrokontroléru - nebo zdroj USB prostě není na poškrábání.
To lze snadno demonstrovat připojením Arduino Uno k USB a vložením multimetrové sady pro měření napětí na piny 5V a GND. Některé desky se vrátí tak nízké, jak 4,8 V, některé vyšší, ale stále pod 5V. Pokud tedy toužíte po přesnosti, napájejte desku z externího zdroje napájení pomocí zásuvky DC nebo Vin - například 9 V DC. Poté, co to projde obvodem regulátoru výkonu, budete mít pěkných 5 V, například obrázek.
To je důležité, protože přesnost všech hodnot analogRead () bude ovlivněna tím, že nebudete mít skutečných 5 V. Pokud nemáte jinou možnost, můžete v náčrtu použít nějakou matematiku ke kompenzaci poklesu napětí. Pokud je například vaše napětí 4,8 V - rozsah analogového čtení () 0 ~ 1023 se bude vztahovat na 0 ~ 4,8 V a ne na 0 ~ 5 V. Může to znít triviálně, pokud však používáte snímač, který vrací hodnotu jako napětí (např. Teplotní senzor TMP36) - vypočítaná hodnota bude špatná. V zájmu přesnosti tedy použijte externí napájecí zdroj.
Krok 2: Proč AnalogRead () vrací hodnotu mezi 0 a 1023?
To je způsobeno rozlišením ADC. Rozlišení (pro tento článek) je míra, do jaké lze něco reprezentovat číselně. Čím vyšší je rozlišení, tím větší je přesnost, s jakou lze něco reprezentovat. Rozlišení měříme z hlediska počtu bitů rozlišení.
Například 1bitové rozlišení by umožnilo pouze dvě hodnoty (dvě na sílu jedné)-nula a jedna. 2bitové rozlišení by umožnilo čtyři (dvě až dvě mocniny) hodnoty-nula, jedna, dvě a tři. Pokud bychom se pokusili změřit rozsah pěti voltů s dvoubitovým rozlišením a naměřené napětí bylo čtyři volty, náš ADC by vrátil číselnou hodnotu 3-protože čtyři volty klesají mezi 3,75 a 5V. Je snazší si to představit na obrázku.
Takže u našeho příkladu ADC s 2bitovým rozlišením může reprezentovat pouze napětí se čtyřmi možnými výslednými hodnotami. Pokud vstupní napětí klesne mezi 0 a 1,25, vrátí ADC numerickou hodnotu 0; pokud napětí klesne mezi 1,25 a 2,5, ADC vrátí číselnou hodnotu 1. A tak dále. S naším ADC rozsahem Arduino 0 ~ 1023-máme 1024 možných hodnot-nebo 2 do výkonu 10. Takže naše Arduino mají ADC s 10bitovým rozlišením.
Krok 3: Co je tedy AREF?
Abychom to zkrátili, když váš Arduino odebírá analogové hodnoty, porovnává napětí naměřené na analogovém pinu, který se používá, s tím, co je známé jako referenční napětí. Při běžném používání analogového čtení je referenční napětí provozním napětím desky.
U populárnějších desek Arduino, jako jsou desky Uno, Mega, Duemilanove a Leonardo/Yún, je provozní napětí 5V. Pokud máte desku Arduino Due, provozní napětí je 3,3 V. Pokud máte něco jiného - podívejte se na stránku produktu Arduino nebo se zeptejte svého dodavatele desky.
Pokud tedy máte referenční napětí 5V, každá jednotka vrácená analogRead () je oceněna na 0,00488 V. (To se vypočítá dělením 1024 na 5V). Co když chceme měřit napětí mezi 0 a 2 nebo 0 a 4,6? Jak by ADC věděl, co je 100% našeho napěťového rozsahu?
A v tom je důvod pro pin AREF. AREF znamená Analogový REFerence. Umožňuje nám napájet Arduino referenčním napětím z externího napájecího zdroje. Pokud bychom například chtěli měřit napětí s maximálním rozsahem 3,3 V, přivedli bychom na pin AREF pěkné hladké 3,3 V - možná z IC regulátoru napětí.
Pak by každý krok ADC představoval přibližně 3,22 milivoltů (rozdělte 1024 na 3,3). Všimněte si, že nejnižší referenční napětí, které můžete mít, je 1,1 V. Existují dvě formy AREF - interní a externí, pojďme se na ně podívat.
Krok 4: Externí AREF
Externí AREF je místo, kde na desku Arduino dodáváte externí referenční napětí. To může pocházet z regulovaného napájecího zdroje, nebo pokud potřebujete 3,3 V, můžete jej získat z 3,3 V pinu Arduina. Pokud používáte externí napájecí zdroj, nezapomeňte připojit GND ke kolíku GND Arduina. Nebo pokud používáte zdroj Arduno 3,3 V - stačí spustit propojku z 3,3 V na pin AREF.
Chcete -li aktivovat externí AREF, použijte ve void setup () následující:
analogReference (EXTERNÍ); // pro referenční napětí použijte AREF
Tím se nastaví referenční napětí na cokoli, co jste připojili ke kolíku AREF - což samozřejmě bude mít napětí mezi 1,1 V a provozním napětím desky. Velmi důležitá poznámka - při použití externí referenční hodnoty napětí musíte nastavit analogovou referenci na EXTERNÍ před použitím analogRead (). Zabráníte tím zkratu aktivního interního referenčního napětí a pinu AREF, což může poškodit mikrokontrolér na desce. Pokud je to pro vaši aplikaci nutné, můžete se vrátit zpět na provozní napětí desky pro AREF (tj. - zpět do normálu) s následujícím
analogReference (VÝCHOZÍ);
Nyní předvedeme externí AREF v práci. Následující skica pomocí 3.3V AREF měří napětí od A0 a zobrazuje procento celkového AREF a vypočítané napětí:
#include "LiquidCrystal.h"
LiquidCrystal lcd (8, 9, 4, 5, 6, 7);
int analogový vstup = 0; // náš analogový pin
int analogamount = 0; // ukládá příchozí hodnotu float procento = 0; // slouží k ukládání naší procentuální hodnoty plovoucí napětí = 0; // slouží k ukládání hodnoty napětí
neplatné nastavení ()
{lcd.begin (16, 2); analogReference (EXTERNÍ); // použijte AREF pro referenční napětí}
prázdná smyčka ()
{lcd.clear (); analogamount = analogRead (analogový vstup); procento = (analogové množství/1024,00)*100; napětí = analogové množství*3,222; // v milivoltech lcd.setCursor (0, 0); lcd.print ("% z AREF:"); lcd.print (procento, 2); lcd.setCursor (0, 1); lcd.print ("A0 (mV):"); lcd.println (napětí, 2); zpoždění (250); }
Výsledky výše uvedené skici jsou uvedeny ve videu.
Krok 5: Interní AREF
Mikrokontroléry na našich deskách Arduino mohou také generovat interní referenční napětí 1,1 V a toto můžeme použít pro práci AREF. Jednoduše použijte řádek:
analogReference (VNITŘNÍ);
Pro desky Arduino Mega použijte:
analogReference (INTERNAL1V1);
v neplatném nastavení () a jste pryč. Pokud máte Arduino Mega, je k dispozici také referenční napětí 2,56 V, které se aktivuje pomocí:
analogReference (INTERNAL2V56);
Nakonec - než se pustíte do výsledků z vašeho pinu AREF, vždy proveďte kalibraci naměřených hodnot proti známému dobrému multimetru.
Závěr
Funkce AREF vám poskytuje větší flexibilitu při měření analogových signálů.
Tento příspěvek vám přinesl web pmdway.com - vše pro výrobce a nadšence do elektroniky s doručením zdarma po celém světě.
Doporučuje:
Elektronický zabezpečovací systém s RTC a PIN kódem definovaným uživatelem: 7 kroků
Elektronický zabezpečovací systém s RTC a PINem definovaným uživatelem: Ahoj kluci! Toto je projekt, který jsem vytvořil pomocí mikroprocesoru pic, což je jeho elektronický systém zabezpečení PIN kódů s hodinami v reálném čase a uživatelsky definovatelnými funkcemi PIN kódu. Tato stránka obsahuje všechny podrobnosti, abyste si jej mohli vytvořit sami. JEHO PRÁCE A KONCEPT: No
Zapnuto Vypnuto Západkový obvod s UC. Jedno tlačítko. Jeden pin. Diskrétní komponenta: 5 kroků
Zapnuto Vypnuto Západkový obvod s UC. Jedno tlačítko. Jeden pin. Diskrétní komponenta: Ahoj všichni, hledal jsem na síti obvod zapnutí/vypnutí. Všechno, co jsem našel, nebylo to, co jsem hledal. Mluvil jsem sám se sebou, nutně k tomu existuje způsob. To jsem potřeboval.-Pouze jedno tlačítko pro zapnutí a vypnutí.-Musí používat pouze
Přidání CS Pin na ST7789 1,3 "IPS LCD: 5 kroků
Přidání CS Pin na ST7789 1,3 "IPS LCD: Nedávno jsem narazil na levný 1,3" IPS TFT displej. Má velmi vysoké rozlišení 240 x 240 pixelů a velmi vysokou hustotu pixelů díky své malé velikosti. Jedná se o panel IPS, IPS znamená InPlane Switching. Jedná se o vyšší typy LCD obrazovek
AT příkazy pro Bluetooth modul (HC-05 W/ EN Pin a BUTTON) pomocí Arduino Board !: 5 kroků
AT příkazy pro Bluetooth modul (HC-05 W/ EN Pin a BUTTON) pomocí desky Arduino!: Jay Amiel AjocGensan PH Tento návod vám pomůže začít s používáním vašeho bluetooth modulu HC05. Na konci tohoto pokynu se naučíte o odesílání AT příkazů do modulu pro jeho konfiguraci/úpravu (jméno, přístupový klíč, baud ra
Pin -Pointer detektor kovů - Arduino: 6 kroků (s obrázky)
Pin -Pointer Metal Detector - Arduino: Pokud jste nadšenec do detektoru kovů nebo jen hledáte praktický dílenský nástroj, pak se vám bude líbit tento jedinečný ruční pinpointer pro zúžení konkrétního umístění kovového cíle. Pomocí čtyř nezávislých vyhledávacích cívek ochlaďte Barvy LED pro sig