Anzeige

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.

Ich würde mich freuen, wenn du diesen Beitrag bewerten würdest :-)

Durchschnittliche Bewertung 0 / 5. Anzahl Bewertungen: 0

Bisher keine Bewertungen! Sei der Erste, der diesen Beitrag bewertet.

Deine Meinung ist mir sehr wichtig!

Lasse uns diesen Beitrag verbessern!

Wie kann ich den Beitrag verbessern? Was würdest du dir wünschen? Was hat dir gefehlt?

Ich hoffe, der Beitrag hilft dir weiter. Und falls du weitere Fragen hast, stelle sie gern hier im Arduino-Forum.

Du willst noch tiefer in die Materie einsteigen? Dann präsentiere ich dir die neuen E-Books von StartHardware:

  • 20 Lektionen
  • Projektbasiert und kurzweilig
  • Aus den Erfahrungen unzähliger Workshops
  • Sofortiger Download

  • Die beliebtesten Projekte von StartHardware
  • Mit Code, Schaltplan und Erklärungen
  • Fachwissen-Kapitel
  • Sofortiger Download


Willst du lieber ein Buch zum Anfassen? Dann werde mit diesem hier zum Arduino-Experten! Arduino: Kompendium: Elektronik, Programmierung und Projekte* – Damit lernst du alle Tricks!

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.