analogRead()

[Analóg I/O]

Leírás

Egy értéket olvas a megadott analóg kivezetésről. Az Arduino kártyák többcsatornás, 10 bites analóg-digitális átalakítót tartalmaznak. Ez azt jelenti, hogy a 0 és az üzemi feszültség (5 V vagy 3,3 V) közötti bemeneti feszültségeket 0 és 1023 közötti egész értékekre képezi le. Például Arduino UNO esetén ez a következő értékek közötti felbontást eredményezi: 5 volt / 1024 egység vagy, 0,0049 volt (4,9 mV) egységenként. Nézze meg az alábbi táblázatot egyes Arduino kártyák használható kivezetéseiről, üzemi feszültségéről és maximális felbontásáról.

A bemeneti tartomány megváltoztatható az analogReference() segítségével, míg a felbontás (csak Zero, Due és MKR kártyák esetén) az analogReadResolution() segítségével.

Az ATmega alapú kártyákon (UNO, Nano, Mini, Mega) körülbelül 100 mikroszekundum (0,0001 s) szükséges egy analóg bemenet olvasásához, így a maximális olvasási sebesség másodpercenként körülbelül 10 000.

Kártya Üzemi feszültség Használható kivezetések Max felbontás

Uno

5 Volt

A0-tól A5-ig

10 bit

Mini, Nano

5 Volt

A0-tól A7-ig

10 bit

Mega, Mega2560, MegaADK

5 Volt

A0-tól A14-ig

10 bit

Micro

5 Volt

A0-tól A11*-ig

10 bit

Leonardo

5 Volt

A0-tól A11*-ig

10 bit

Zero

3.3 Volt

A0-tól A5-ig

12 bit**

Due

3.3 Volt

A0-tól A11-ig

12 bit**

MKR család kártyái

3.3 Volt

A0-tól A6-ig

12 bit**

*Az A0-tól A5-ig címkék vannak a kártyán, az A6-tól A11-ig a 4-es, 6-os, 8-as, 9-es, 10-es és 12-es kivezetéseken találhatók.

**Az alapértelmezett analogRead() felbontás ezeknél a kártyáknál 10 bit a kompatibilitás érdekében. Az analogReadResolution() segítségével 12 bitesre módosíthatja.

Szintaxis

analogRead(pin)

Paraméterek

pin: az analóg bemeneti kivezetés neve (a legtöbb kártyán A0-tól A5-ig, MKR kártyákon A0-tól A6-ig, Mini és Nano esetén A0-tól A7-ig, Megán A0-tól A15-ig).

Visszatérési érték

Az analóg leolvasás a kivezetésen. Bár ez az analóg-digitális konverter felbontására korlátozódik (0-1023 10 bitnél vagy 0-4095 12 bitnél). A visszatérési érték típusa: int.

Példa

A kód beolvassa az analogPin feszültségét, és megjeleníti azt.

int analogPin = A3; // potenciométert (középső kivezetését) az A3 analóg kivezetéshez csatlakoztatva, 
                    // a szélső vezetékek a testhez és a +5 V-hoz
int val = 0;  // változó az olvasott érték tárolására

void setup() {
  Serial.begin(9600);           //  a soros vonal beállítása
}

void loop() {
  val = analogRead(analogPin);  // az input kivezetés olvasása
  Serial.println(val);          // az érték kiírása
}

Megjegyzések és figyelmeztetések

Ha az analóg bemeneti kivezetés nincs csatlakoztatva semmihez, az analogRead() által visszaadott érték számos tényező függvényében ingadozni fog (pl. a többi analóg bemenet értéke, milyen közel van a kezed a kártyához stb.).

Az A0, A1 stb. analóg bemeneti kivezetések digitális kivezetésként is használhatók. Ez alól kivételt képez az Arduino Nano, a Pro Mini és a Mini A6 és A7 kivezetése, amelyek csak analóg bemenetként használhatók.