Tartalomjegyzék:
- 1. lépés: Felülvizsgálat
- 2. lépés: Miért ad vissza az AnalogRead () 0 és 1023 közötti értéket?
- 3. lépés: Tehát mi az AREF?
- 4. lépés: Külső AREF
- 5. lépés: Belső AREF
Videó: Az Arduino AREF Pin: 6 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:41
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
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?
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:
DIY Arduino Pin Pointer fémdetektor: 3 lépés
DIY Arduino Pin Pointer fémdetektor: Egy hagyományos fémdetektor képes megtalálni az eltemetett tárgyat, és megadja a tárgy durva helyét a földön. Egy mutató lehetővé teszi, hogy rögzítse az objektum helyét, kisebb lyukat készítsen ásáskor és kivonja az elemet . Ezenkívül lehet
Elektronikus biztonsági rendszer RTC -vel és a felhasználó által meghatározott PIN -kód: 7 lépés
Elektronikus biztonsági rendszer RTC -vel és felhasználó által meghatározott PIN -kód: Sziasztok! Ezt a projektet a pic mikrokontroller segítségével készítettem el, egy elektronikus PIN kód biztonsági rendszer valós idejű órával és a felhasználó által meghatározott PIN kód funkciókkal. Ez az oldal minden részletet tartalmaz, hogy saját maga készítse el
ETextile multiméter pin szonda: 10 lépés (képekkel)
ETextile multiméteres tűszonda: Tűszonda, amint azt az eTextile Swatchbook 2017 közzétette. A szonda egy csapból áll, hogy ideiglenesen, de szilárdan érintkezzen textil anyagokkal anélkül, hogy károsítaná
AT parancsok a Bluetooth modulhoz (HC-05 W/ EN Pin and BUTTON) Az Arduino Board használatával!: 5 lépés
AT Commands for Bluetooth Module (HC-05 W/ EN Pin and BUTTON) Az Arduino Board használatával !: Írta: Jay Amiel Ajoc az AT parancsok küldéséről a modulra annak konfigurálásához/módosításához (név, jelszó, baud ra
Pin -Pointer fémdetektor - Arduino: 6 lépés (képekkel)
Pin -Pointer fémdetektor - Arduino: Ha Ön fémdetektor rajongó, vagy csak egy praktikus műhelyszerszámot keres, akkor tetszeni fog ez az egyedülálló kézi mutató, amely szűkíti a fémcél konkrét helyét. Négy független keresőtekercs használatával hűvös LED színek a jelzéshez