Az Arduino chip (ATmega8, ATmega168, ATmega328P vagy ATmega1280) analóg bemeneti kivezetésjeinek leírása.
A/D konverter
Az Arduino-hoz használt ATmega vezérlők 6 csatornás (a Mini és a Nano 8 csatornás, a Mega 16 csatornás) analóg-digitális (A/D) átalakítót tartalmaznak. Az átalakító 10 bites felbontású, 0 és 1023 közötti egész számokat ad vissza. Míg a legtöbb Arduino-felhasználó számára az analóg kivezetések fő funkciója az analóg kivezetések olvasása, az analóg kivezetések az általános célú bemeneti/kimeneti (GPIO) kivezetések összes funkciójával is rendelkeznek (ugyanúgy, mint a 0-13 digitális kivezetések).
Következésképpen, ha a felhasználónak általános bemeneti kimeneti kivezetésekre van szüksége, és az összes analóg kivezetés nincs használatban, az analóg kivezetések felhasználhatók a GPIO-hoz.
kivezetés-leképezés
Az analóg kivezetések ugyanúgy használhatók, mint a digitális kivezetések, az A0 (a 0 analóg bemenethez), A1 stb. álnevekkel. Például a kód így néz ki, ha az analóg 0-t kimenetre, és HIGH-ra állítja:
pinMode(A0, OUTPUT);
digitalWrite(A0, HIGH);
Felhúzó ellenállások
Az analóg kivezetések rendelkeznek felhúzó ellenállásokkal is, amelyek ugyanúgy működnek, mint a digitális kivezetések felhúzó ellenállásai. Ezeket egy parancs kiadásával engedélyezik, mint pl
pinMode(A0, INPUT_PULLUP); // beállítja a felhúzást a 0 analóg kivezetésre
Ne feledje azonban, hogy a felhúzás bekapcsolása hatással lesz az analogRead() által jelentett értékekre.
Megjegyzések és figyelmeztetések
Az analogRead parancs nem fog megfelelően működni, ha egy kivezetést előzőleg kimenetre állították, ezért ebben az esetben állítsa vissza bemenetre az analogRead használata előtt. Hasonlóképpen, ha a kivezetés HIGH-ra van állítva kimenetként, a felhúzó ellenállás is be lesz állítva, amikor visszakapcsoljuk bemenetre.
Az ATmega adatlapja arra is figyelmeztet, hogy az analóg kivezetéseket más analóg kivezetéseken való A/D leolvasások (analogRead) időbeli közelségében ne váltsa át. Ez elektromos zajt okozhat, és rezgést okozhat az analóg rendszerben. Az analóg kivezetések manipulálása után (digitális módban) kívánatos lehet egy rövid késleltetés hozzáadása mielőtt másik analóg kivezetéseket olvasna az analogRead()-del.