analogRead()

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[1] 10 Bit
Leonardo 5 Volt A0 to A11[1] 10 Bit
Zero 3.3 Volt A0 to A5 12 Bit[2]
Due 3.3 Volt A0 to A11 12 Bit[2]
MKR-Familie 3.3 Volt A0 to A6 12 Bit[2]
  • [1]: A0 bis A5 sind auf dem Board benannt, A6 bis A11 sind auf den Pins 4, 6, 8, 9, 10, und 12 verfügbar
  • [2]: 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.).

Please note: These are affiliate links. If you buy the components through these links, We may get a commission at no extra cost to you. We appreciate it.