Arduino Befehl: analogRead()

Beschreibung

Liest den Wert vom angegebenen analogen Pin aus. Arduino-Boards enthalten einen mehrkanaligen 10-Bit-Analog-Digital-Wandler. Das bedeutet, dass er Eingangsspannungen zwischen 0 und der Betriebsspannung (5V oder 3,3V) in ganzzahlige Werte zwischen 0 und 1023 abbildet. Bei einem Arduino UNO beispielsweise ergibt dies eine Auflösung zwischen den Messungen von: 5 Volt / 1024 Einheiten oder 0,0049 Volt (4,9 mV) pro Einheit. In der Tabelle unten findest du die nutzbaren Pins, die Betriebsspannung und die maximale Auflösung für einige Arduino-Boards.

Der Eingangsbereich kann mit analogReference() geändert werden, während die Auflösung (nur für Zero-, Due- und MKR-Boards) mit analogReadResolution() geändert werden kann.

Bei ATmega-basierten Boards (UNO, Nano, Mini, Mega) dauert das Lesen eines analogen Eingangs etwa 100 Mikrosekunden (0,0001 s), so dass die maximale Leserate etwa 10.000 Mal pro Sekunde beträgt.

Arduino-BoardBetriebsspannungPinsAuflösung
Uno5 VoltA0 to A510 bits
Mini, Nano5 VoltA0 to A710 bits
Mega, Mega2560, MegaADK5 VoltA0 to A1410 bits
Micro5 VoltA0 to A11*10 bits
Leonardo5 VoltA0 to A11*10 bits
Zero3.3 VoltA0 to A512 bits**
Due3.3 VoltA0 to A1112 bits**
MKR-Boards3.3 VoltA0 to A612 bits**

*A0 bis A5 sind auf dem Board beschriftet, A6 bis A11 sind jeweils auf den Pins 4, 6, 8, 9, 10 und 12 verfügbar.
**Die Standardauflösung analogRead() für diese Boards beträgt aus Kompatibilitätsgründen 10 Bit. Du musst analogReadResolution() verwenden, um sie auf 12 Bit zu ändern.

Syntax

analogRead(pin);

Parameter

Pin: der Name des analogen Eingangspins, von dem gelesen werden soll (A0 bis A5 bei den meisten Boards, A0 bis A6 bei MKR-Boards, A0 bis A7 bei der Mini und Nano, A0 bis A15 bei der Mega).

Returns

Der analoge Messwert auf dem Pin. Sie ist auf die Auflösung des Analog-Digital-Wandlers beschränkt (0-1023 für 10 Bit oder 0-4095 für 12 Bit). Datentyp: int.

Beispiel Code

Der Code liest die Spannung an analogPin und zeigt sie im Seriellen Monitor an. Achte darauf, die richtige Baud-Rate im Seriellen Monitor einzustellen (115200).

int analogPin = A3;    // Anschluss des Potentiometer
int val = 0;           // speichert den gelesenen Wert

void setup() {
  Serial.begin(115200); // startet die serielle Schnittstelle
}

void loop() {
  val = analogRead(analogPin); // Lesen des Eingangspins
  Serial.println(val); // Serielle Ausgabe
}

Schaltung

Arduino analogRead() Befehl

Hinweise und Warnungen

Wenn der analoge Input-Pin nicht mit einem Bauteil verbunden ist, schwankt der von analogRead() zurückgegebene Wert z. B. durch die Werte der anderen Analogeingänge, elektromagnetischer Störungen etc.

ishiro präsentiert buch

Wow! Ich hoffe, der Beitrag hat dir gefallen. Wenn ja hab ich was für dich. Das neue E-Book von StartHardware! Darin findest du die beliebtesten Projekte von StartHardware und vieles mehr!

Wenn du noch tiefer einsteigen willst, empfehle ich Dir dieses umfangreiche Kompendium: Mit Arduino die elektronische Welt entdecken* – Damit wirst Du zum Arduino-Profi!


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

 

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.