Tartalomjegyzék:

Az Arduino AREF Pin: 6 lépés
Az Arduino AREF Pin: 6 lépés

Videó: Az Arduino AREF Pin: 6 lépés

Videó: Az Arduino AREF Pin: 6 lépés
Videó: uc/IoT Kurzus 6 : ADC Analóg-Digitális Átalakítás 2/2 rész 2024, November
Anonim
Az Arduino AREF Pin
Az Arduino AREF Pin

Ebben az oktatóanyagban megvizsgáljuk, hogyan lehet kisebb feszültségeket nagyobb pontossággal mérni az Arduino analóg bemeneti csapjaival vagy a kompatibilis kártyán az AREF tűvel együtt. Előbb azonban némi felülvizsgálatot hajtunk végre, hogy gyorsabban tudjunk haladni. Kérjük, olvassa el ezt a bejegyzést, mielőtt először dolgozik az AREF -fel.

1. lépés: Felülvizsgálat

Felülvizsgálat!
Felülvizsgálat!

Emlékeztethet arra, hogy az Arduino analogRead () funkcióval mérheti az érzékelők elektromos áramának feszültségét, és így tovább az analóg bemeneti érintkezők egyikével. Az analogRead () függvényből visszaadott érték nulla és 1023 között lesz, a nulla nulla voltot jelent, és 1023 a használatban lévő Arduino kártya üzemi feszültségét jelenti.

És amikor azt mondjuk, hogy az üzemi feszültség - ez az Arduino számára rendelkezésre álló feszültség a tápegység áramköre után. Például, ha van egy tipikus Arduino Uno kártyája, és az USB -aljzatból futtatja - persze, a számítógép vagy a hub USB -aljzatából 5V áll rendelkezésre a tábla számára -, de a feszültség kissé csökken, ahogy az áram kering áramkör a mikrokontrollerhez - vagy az USB -forrás egyszerűen nem karcolt.

Ez könnyen bizonyítható, ha csatlakoztat egy Arduino Uno -t az USB -hez, és egy multiméter -készletet tesz az 5 V és a GND érintkezők feszültségének mérésére. Néhány tábla 4,8 V -ig tér vissza, néhány magasabb, de még mindig 5 V alatt. Tehát ha a pontosságra törekszik, tápellátását külső tápegységről a DC aljzaton vagy a Vin tűn keresztül - például 9V DC - végezze. Aztán miután átmegy a teljesítményszabályozó áramkörön, szép 5V lesz, például a kép.

Ez fontos, mivel az analogRead () értékek pontosságát befolyásolja, ha nincs valódi 5 V -os értékünk. Ha nincs lehetőségünk, használhatunk néhány matematikát a vázlatunkban a feszültségcsökkenés kompenzálására. Például, ha a feszültsége 4,8 V - az analRead () 0 ~ 1023 tartománya 0 ~ 4,8 V -ra vonatkozik, és nem 0 ~ 5 V -ra. Ez triviálisnak tűnhet, azonban ha olyan érzékelőt használ, amely feszültséget ad vissza (például a TMP36 hőmérséklet -érzékelőt) - a számított érték helytelen. Tehát a pontosság érdekében használjon külső tápegységet.

2. lépés: Miért ad vissza az AnalogRead () 0 és 1023 közötti értéket?

Miért ad vissza az AnalogRead () 0 és 1023 közötti értéket?
Miért ad vissza az AnalogRead () 0 és 1023 közötti értéket?

Ennek oka az ADC felbontása. A felbontás (ebben a cikkben) az, hogy milyen mértékben lehet valamit ábrázolni numerikusan. Minél nagyobb a felbontás, annál nagyobb pontossággal lehet valamit ábrázolni. A felbontást a felbontási bitek számával mérjük.

Például az 1 bites felbontás csak két (kettő egy hatványra) értéket-nulla és egyet-engedne meg. A 2 bites felbontás négy (kettő kettő erejéig) értéket tesz lehetővé-nulla, egy, kettő és három. Ha megpróbálnánk mérni egy öt voltos tartományt kétbites felbontással, és a mért feszültség négy volt, akkor az ADC 3-as számértéket ad vissza-mivel négy volt 3,75 és 5 V közé esik. Ezt könnyebb elképzelni a képpel.

Tehát a példánkban lévő, 2 bites felbontású ADC-vel csak négy lehetséges értékkel képes megjeleníteni a feszültséget. Ha a bemeneti feszültség 0 és 1,25 közé esik, az ADC 0 -t ad vissza; ha a feszültség 1,25 és 2,5 közé esik, az ADC 1 -es számértéket ad vissza. És így tovább. Az Arduino 0–1023 ADC-tartományával-1024 lehetséges értékkel-vagy 2-vel 10-ig. Tehát Arduinóink 10 bites felbontású ADC-vel rendelkeznek.

3. lépés: Tehát mi az AREF?

Röviden, ha az Arduino analóg leolvasást végez, összehasonlítja a használt analóg tűn mért feszültséget az úgynevezett referenciafeszültséggel. Normál analóg olvasás esetén a referenciafeszültség a kártya üzemi feszültsége.

A népszerűbb Arduino táblák, például az Uno, a Mega, a Duemilanove és a Leonardo/Yún táblák esetében az 5 V üzemi feszültség. Ha rendelkezik Arduino Due kártyával, az üzemi feszültség 3,3 V. Ha van még valami - nézze meg az Arduino termékoldalát, vagy kérdezze meg a tábla beszállítóját.

Tehát ha 5V referenciafeszültséggel rendelkezik, akkor az analogRead () által visszaadott minden egység értéke 0,00488 V. Mi van, ha 0 és 2, vagy 0 és 4,6 közötti feszültséget akarunk mérni? Honnan tudná az ADC, hogy mi a feszültségtartományunk 100% -a?

És ebben rejlik az AREF csap oka. Az AREF jelentése analóg REFerence. Lehetővé teszi, hogy az Arduino -t referenciafeszültséggel tápláljuk külső tápegységről. Például, ha a feszültségeket maximum 3,3 V tartományban akarjuk mérni, akkor egy szép sima 3,3 V -ot táplálnánk az AREF csapba - esetleg egy feszültségszabályozó IC -ről.

Ekkor az ADC minden egyes lépése körülbelül 3,22 millivoltot jelent (az 1024 -et ossza 3.3 -ra). Vegye figyelembe, hogy a legalacsonyabb referenciafeszültség 1,1 V. Az AREF két formája létezik - belső és külső, ezért nézzük meg őket.

4. lépés: Külső AREF

Külső AREF az, ahol külső referenciafeszültséget szolgáltat az Arduino kártyához. Ez származhat szabályozott tápegységből, vagy ha 3,3 V -ra van szüksége, akkor az Arduino 3,3 V -os tűjéről szerezheti be. Ha külső tápegységet használ, feltétlenül csatlakoztassa a GND -t az Arduino GND -tűjéhez. Vagy ha az Arduno 3,3 V -os forrását használja - futtassa a jumpert a 3,3 V -os tűről az AREF -tűre.

A külső AREF aktiválásához használja a következőket az üres beállításban ():

analogReference (KÜLSŐ); // referenciafeszültséghez használja az AREF -et

Ez a referenciafeszültséget bármire beállítja, amit az AREF tüskéhez csatlakoztatott - ennek természetesen 1,1 V és a kártya működési feszültsége közötti feszültsége lesz. Nagyon fontos megjegyzés - külső feszültségreferencia használatakor az analóg hivatkozást KÜLSŐ az analogRead () használata előtt. Ez megakadályozza, hogy rövidre zárja az aktív belső referenciafeszültséget és az AREF érintkezőt, ami károsíthatja az alaplapon lévő mikrokontrollert. Ha az alkalmazáshoz szükséges, visszatérhet a kártya üzemi feszültségéhez az AREF -hez (vagyis - vissza a normál állapotba) a következőkkel:

analogReference (DEFAULT);

Most a külső AREF bemutatása a munkában. 3.3 V -os AREF használatával az alábbi vázlat méri az A0 -ból származó feszültséget, és megjeleníti a teljes AREF százalékát és a számított feszültséget:

#include "LiquidCrystal.h"

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

int analóg bemenet = 0; // analóg csapunk

int analogamount = 0; // tárolja a bejövő érték float százalékát = 0; // százalékos értékünk tárolására használt úszó feszültség = 0; // feszültségérték tárolására szolgál

üres beállítás ()

{lcd.begin (16, 2); analogReference (KÜLSŐ); // AREF használata referenciafeszültséghez}

üres hurok ()

{lcd.clear (); analogamount = analogRead (analóg bemenet); százalék = (analogamount/1024,00)*100; feszültség = analógmennyiség*3,222; // millivoltban lcd.setCursor (0, 0); lcd.print ("% AREF:"); lcd.print (százalék, 2); lcd.setCursor (0, 1); lcd.print ("A0 (mV):"); lcd.println (feszültség, 2); késleltetés (250); }

A fenti vázlat eredményeit a videó mutatja.

5. lépés: Belső AREF

Az Arduino lapjaink mikrokontrollerei 1,1 V belső referenciafeszültséget is generálhatnak, és ezt használhatjuk az AREF munkához. Egyszerűen használja a sort:

analogReference (INTERNAL);

Az Arduino Mega táblákhoz használja:

analogReference (INTERNAL1V1);

void setup () -ban, és ki van kapcsolva. Ha rendelkezik Arduino Mega készülékkel, akkor rendelkezésre áll egy 2,56 V -os referenciafeszültség is, amely a következőkkel aktiválható:

analogReference (INTERNAL2V56);

Végezetül - mielőtt az AREF tű eredményeiről számolna, mindig kalibrálja a leolvasásokat egy jól ismert multiméterrel.

Következtetés

Az AREF funkció nagyobb rugalmasságot biztosít az analóg jelek mérésében.

Ezt a bejegyzést a pmdway.com hozta neked - mindent a gyártóknak és az elektronika rajongóinak, ingyenes szállítással világszerte.

Ajánlott: