Obsah:

Pin AREF Arduino: 6 krokov
Pin AREF Arduino: 6 krokov

Video: Pin AREF Arduino: 6 krokov

Video: Pin AREF Arduino: 6 krokov
Video: Demonstrating the Arduino's external AREF pin 2024, Júl
Anonim
Pin AREF Arduino
Pin AREF Arduino

V tomto návode sa pozrieme na to, ako môžete merať menšie napätie s vyššou presnosťou pomocou analógových vstupných pinov na vašom Arduine alebo kompatibilnej doske v spojení s pinom AREF. Najprv však urobíme niekoľko revízií, aby sme vás urýchlili. Pred prvou prácou s AREF si prečítajte tento príspevok.

Krok 1: Revízia

Revízia!
Revízia!

Môžete si spomenúť, že môžete použiť funkciu Arduino analogRead () na meranie napätia elektrického prúdu zo senzorov a podobne pomocou jedného z analógových vstupných kolíkov. Hodnota vrátená z analogRead () by bola medzi nulou a 1023, pričom nula predstavuje nulové napätie a 1023 predstavuje prevádzkové napätie používanej dosky Arduino.

A keď hovoríme prevádzkové napätie - to je napätie, ktoré má Arduino k dispozícii po obvodoch napájania. Napríklad, ak máte typickú dosku Arduino Uno a spustíte ju z USB zásuvky - určite je na doske k dispozícii 5 V z USB zásuvky na vašom počítači alebo rozbočovači - ale napätie sa mierne zníži, pretože prúd sa vinie okolo obvod k mikrokontroléru - alebo zdroj USB jednoducho nie je na poškriabanie.

To sa dá ľahko preukázať pripojením Arduino Uno k USB a vložením multimetrovej sady na meranie napätia cez piny 5V a GND. Niektoré dosky sa vrátia už pri 4,8 V, niektoré vyššie, ale stále pod 5V. Ak teda hľadáte presnosť, napájajte dosku z externého zdroja napájania pomocou zásuvky DC alebo kolíka Vin - napríklad 9 V DC. Potom, čo to prejde obvodom regulátora výkonu, budete mať pekných 5 V, napríklad obrázok.

To je dôležité, pretože presnosť všetkých hodnôt analogRead () bude ovplyvnená tým, že nebudete mať skutočných 5 V. Ak nemáte inú možnosť, môžete vo svojom náčrte použiť niekoľko matematických matematík na kompenzáciu poklesu napätia. Ak je napríklad vaše napätie 4,8 V - rozsah analógového čítania () 0 ~ 1023 sa bude vzťahovať na 0 ~ 4,8 V a nie na 0 ~ 5 V. Môže to znieť triviálne, ale ak používate snímač, ktorý vracia hodnotu ako napätie (napr. Snímač teploty TMP36) - vypočítaná hodnota bude nesprávna. V záujme presnosti preto použite externý napájací zdroj.

Krok 2: Prečo AnalogRead () vracia hodnotu medzi 0 a 1023?

Prečo AnalogRead () vracia hodnotu medzi 0 a 1023?
Prečo AnalogRead () vracia hodnotu medzi 0 a 1023?

Je to kvôli rozlíšeniu ADC. Rozlíšenie (pre tento článok) je miera, do akej je možné niečo reprezentovať číselne. Čím vyššie je rozlíšenie, tým väčšia je presnosť, s akou môže byť niečo reprezentované. Rozlíšenie meriame počtom bitov rozlíšenia.

Napríklad 1-bitové rozlíšenie by umožnilo iba dve (dve až jedna mocnina) hodnoty-nulu a jednu. 2-bitové rozlíšenie by umožnilo štyri (dve až dve mocniny) hodnoty-nula, jedna, dve a tri. Ak by sme sa pokúsili zmerať rozsah piatich voltov s dvojbitovým rozlíšením a namerané napätie by bolo štyri volty, náš ADC by vrátil číselnú hodnotu 3-pretože štyri volty klesnú medzi 3,75 a 5V. Je jednoduchšie si to predstaviť na obrázku.

Takže v našom prípade ADC s 2-bitovým rozlíšením môže reprezentovať napätie iba so štyrmi možnými výslednými hodnotami. Ak vstupné napätie klesne medzi 0 a 1,25, ADC vráti číselnú hodnotu 0; ak napätie klesne medzi 1,25 a 2,5, ADC vráti číselnú hodnotu 1. A tak ďalej. S rozsahom ADC nášho Arduina od 0 ~ 1023-máme 1024 možných hodnôt-alebo 2 do výkonu 10. Naše Arduino má teda ADC s 10-bitovým rozlíšením.

Krok 3: Čo je teda SREF?

Aby sme to skrátili, keď váš Arduino odoberá analógové čítanie, porovnáva napätie namerané na analógovom pine, ktorý sa používa, s tým, čo je známe ako referenčné napätie. Pri normálnom použití analogového čítania je referenčné napätie prevádzkovým napätím dosky.

Pre populárnejšie dosky Arduino, ako sú dosky Uno, Mega, Duemilanove a Leonardo/Yún, je prevádzkové napätie 5V. Ak máte dosku Arduino Due, prevádzkové napätie je 3,3 V. Ak máte niečo iné - pozrite sa na stránku produktu Arduino alebo sa obráťte na dodávateľa dosky.

Ak teda máte referenčné napätie 5V, každá jednotka vrátená pomocou analogRead () má hodnotu 0,00488 V. (Toto sa vypočíta vydelením 1024 na 5V). Čo keď chceme merať napätie medzi 0 a 2 alebo 0 až 4,6? Ako by ADC vedel, čo je 100% nášho rozsahu napätia?

A tam je dôvod pre pin AREF. AREF znamená analógovú REFerenciu. Umožňuje nám napájať Arduino referenčným napätím z externého zdroja napájania. Ak by sme napríklad chceli merať napätie s maximálnym rozsahom 3,3 V, na pin AREF by sme priviedli pekných plynulých 3,3 V - možno z IC regulátora napätia.

Potom by každý krok ADC predstavoval približne 3,22 milivoltov (rozdelenie 1024 na 3,3). Všimnite si toho, že najnižšie referenčné napätie, ktoré môžete mať, je 1,1 V. Existujú dve formy AREF - interné a externé, pozrime sa na ne.

Krok 4: Externý AREF

Externé AREF je miesto, kde na dosku Arduino dodávate externé referenčné napätie. To môže pochádzať z regulovaného zdroja napájania, alebo ak potrebujete 3,3 V, môžete ho získať z 3,3 V kolíka Arduino. Ak používate externý napájací zdroj, nezabudnite pripojiť GND ku kolíku GND Arduina. Alebo ak používate zdroj Arduno s napätím 3,3 V - jednoducho prepojte prepojku z kolíka 3,3 V na pin AREF.

Na aktiváciu externého AREF použite v neplatnom nastavení () nasledujúce:

analogReference (EXTERNÝ); // na referenčné napätie použite AREF

Tým sa nastaví referenčné napätie na čokoľvek, čo ste pripojili k pinu AREF - čo samozrejme bude mať napätie medzi 1,1 V a prevádzkovým napätím dosky. Veľmi dôležitá poznámka - pri použití externej referenčnej hodnoty napätia musíte nastaviť analógovú referenciu na EXTERNÝ pred použitím analogRead (). Zabránite tým skratu aktívneho vnútorného referenčného napätia a pinu AREF, ktoré môžu poškodiť mikrokontrolér na doske. Ak je to pre vašu aplikáciu nevyhnutné, môžete sa vrátiť späť na prevádzkové napätie dosky pre AREF (to je - späť do normálu) nasledujúcim spôsobom

analogReference (DEFAULT);

Teraz demonštrujte externý AREF v práci. Nasledujúci náčrt pomocou 3.3V AREF meria napätie od A0 a zobrazuje percento z celkového AREF a vypočítané napätie:

#include "LiquidCrystal.h"

LiquidCrystal lcd (8, 9, 4, 5, 6, 7);

int analogový vstup = 0; // náš analógový pin

int analogamount = 0; // ukladá prichádzajúcu hodnotu float percenta = 0; // slúži na uloženie našej percentuálnej hodnoty float napätie = 0; // slúži na ukladanie hodnoty napätia

neplatné nastavenie ()

{lcd.begin (16, 2); analogReference (EXTERNÝ); // použitie AREF na referenčné napätie}

prázdna slučka ()

{lcd.clear (); analogamount = analogRead (analógový vstup); percento = (analogické množstvo/1024,00)*100; napätie = množstvo analogického*3,222; // v milivoltoch lcd.setCursor (0, 0); lcd.print ("% z AREF:"); lcd.print (percento, 2); lcd.setCursor (0, 1); lcd.print ("A0 (mV):"); lcd.println (napätie, 2); oneskorenie (250); }

Výsledky vyššie uvedeného náčrtu sú uvedené vo videu.

Krok 5: Interný AREF

Mikrokontroléry na našich doskách Arduino môžu tiež generovať vnútorné referenčné napätie 1,1 V a to môžeme použiť na prácu AREF. Stačí použiť riadok:

analogReference (VNÚTORNÝ);

Pre dosky Arduino Mega použite:

analogReference (INTERNAL1V1);

v neplatnom nastavení () a máte voľno. Ak máte Arduino Mega, je k dispozícii aj referenčné napätie 2,56 V, ktoré sa aktivuje:

analogReference (INTERNAL2V56);

Nakoniec - pred vyhodnotením výsledkov z vášho kolíka AREF vždy kalibrujte namerané hodnoty proti známemu dobrému multimetru.

Záver

Funkcia AREF vám ponúka väčšiu flexibilitu pri meraní analógových signálov.

Tento príspevok vám prináša pmdway.com - všetko pre výrobcov a nadšencov elektroniky s bezplatným doručením do celého sveta.

Odporúča: