Diese Seite ist auch in 2 anderen Sprachen verfügbar.
Sprache wechseln  

analogRead()

[Analog I/O]

Beschreibung

Liest den Wert vom angegebenen analogen Pin ein. Die Arduino-Boards enthalten einen 10-Bit-Analog-zu-Digital-Konverter. D.h. das Board mappt Eingangsspannungen zwischen 0 und 5 V auf Integer-Werte zwischen 0 und 1023. Die erreichte Auflösung ist damit z.B. auf einem Arduino UNO 5 V / 1024 Teile oder 0,0049 V (4,9 mV) per Teil. Siehe dazu auch die Tabelle unterhalb für die benutzbaren Pins, Betriebsspannung und die maximale Auflösung für einige Arduino-Boards.

Die Eingangsbreite can mit analogReference() geändert werden, die Auflösung mit analogReadResolution() (Nur für Arduino Zero, Due und MKR).

Auf den ATmega-basierten Boards (UNO, Nano, Mini, Mega), benötigt das Board circa 100 Mikrosekunden (0,0001 s), um einen analogen Inputpin zu lesen. Damit ist die maximale Lesegeschwindigkeit 10000 Lesevorgänge pro Sekunde.

Board Betriebsspannung Nutzbare Pins Maximale Auflösung

Uno

5 Volt

A0 to A5

10 Bit

Mini, Nano

5 Volt

A0 to A7

10 Bit

Mega, Mega2560, MegaADK

5 Volt

A0 to A14

10 Bit

Micro

5 Volt

A0 to A11*

10 Bit

Leonardo

5 Volt

A0 to A11*

10 Bit

Zero

3.3 Volt

A0 to A5

12 Bit**

Due

3.3 Volt

A0 to A11

12 Bit**

MKR-Familie

3.3 Volt

A0 to A6

12 Bit**

*A0 bis A5 sind auf dem Board benannt, A6 bis A11 sind auf den Pins 4, 6, 8, 9, 10, und 12 verfügbar **Die standardmäßige Auflösung von analogRead() ist bei diesen Boards 10 Bit aus Kompabilitätsgründen. Mit analogReadResolution() kann die Auflösung auf 12 Bit geändert werden.

Syntax

analogRead(pin)

Parameter

pin: Der Pinname, von der gelesen werden soll (A0 bis A5 auf den meisten Boards, A0 bis A6 auf dem MKR, A0 bis A7 auf dem Mini und Nano, A0 bis A15 auf dem Mega)

Rückgabewert

Den analog gelesenen Wert auf dem Pin (int). Allerdings ist der Wert limitiert durch die Auflösung des Digital-Konverters (0-1023 für 10 Bit und 0-4095 für 12 Bit). Datentyp: int.

Beispielcode

Der Code liest die Spannung auf einem Analogpin und zeigt diese an.

int analogPin = A3; // Pin, der gelesen werden soll: Pin A3
int val = 0; // Variable, die den gelesenen Wert speichert

void setup() {
  Serial.begin(9600); // Setup der seriellen Verbindung
}

void loop() {
  val = analogRead(analogPin); // Pin einlesen
  Serial.println(val); // Wert ausgeben
}

Anmerkungen und Warnungen

Wenn der analoge Pin nicht verbunden ist, wird der zurückgegebene Wert schwanken basierend auf mehreren Faktoren (z.B. Die Werte der anderen analogen Pins, Wie nahe die Hand am Board ist, etc.).