Die Bauteile
Für dieses Tutorial benötigst du folgende Komponenten:
- Arduino (UNO, Nano, Mini, Mega, Micro, Leonardo, Zero, Due oder MKR-Board) – Auf Amazon ansehen
- Potentiometer 10kΩ – Auf Amazon ansehen
Was ist analogRead()?
Die analogRead()-Funktion liest analoge Spannungswerte an den Analog-Pins (A0-A5 beim UNO) deines Arduino aus. Im Gegensatz zu digitalen Pins, die nur HIGH oder LOW erkennen, können analoge Pins Spannungswerte zwischen 0V und 5V messen. Das eröffnet dir völlig neue Möglichkeiten für deine Projekte.
Der Analog-Digital-Wandler (ADC)
Der Arduino verfügt über einen 10-Bit Analog-Digital-Wandler. Das bedeutet für dich:
- Eingangsspannung: 0V bis 5V (beim 5V-Arduino)
- Ausgabewert: 0 bis 1023 (2^10 = 1024 Schritte)
- Auflösung: ca. 4,9mV pro Schritt (5V / 1024)
Ein Wert von 0 entspricht 0V, ein Wert von 1023 entspricht 5V. Alle Werte dazwischen werden proportional umgerechnet.
Verkabelung / Schaltplan

Die Verkabelung des Potentiometers ist einfach und ich erkläre dir jeden Schritt:
- Linker Pin des Potentiometers → 5V am Arduino
- Mittlerer Pin (Schleifer) des Potentiometers → A3 am Arduino
- Rechter Pin des Potentiometers → GND am Arduino
Wenn du das Potentiometer drehst, verändert sich die Spannung am mittleren Pin zwischen 0V und 5V. Diese Spannung wird vom Arduino ausgelesen und in einen Wert zwischen 0 und 1023 umgewandelt.
Der Code
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
}
So funktioniert der Code:
Ich erkläre dir die einzelnen Bestandteile des Codes:
- Variable
analogPin: Hier definierst du Pin A3 als Eingangspin für dein Potentiometer - Variable
val: Diese Variable speichert den ausgelesenen Wert Serial.begin(115200): Damit initialisierst du die serielle Kommunikation mit 115200 BaudanalogRead(analogPin): Diese Funktion liest den analogen Wert am Pin A3 ausSerial.println(val): Gibt den gemessenen Wert im seriellen Monitor aus
Öffne den seriellen Monitor (Strg+Shift+M) in der Arduino IDE und drehe am Potentiometer – du wirst sehen, wie sich die Werte zwischen 0 und 1023 verändern.
Praktische Anwendungen
Mit analogRead() stehen dir zahlreiche Möglichkeiten offen:
- Drehregler und Joysticks für Steuerungen auslesen
- Temperatursensoren wie den TMP36 einbinden
- Lichtsensoren (LDR) für lichtabhängige Projekte nutzen
- Feuchtigkeitssensoren für Bewässerungssysteme verwenden
- Analoge Spannungen messen und verarbeiten
Tipps für fortgeschrittene Anwendungen
Ich gebe dir noch ein paar nützliche Hinweise:
- Verwende die
map()-Funktion, um den Wertebereich von 0-1023 auf andere Bereiche umzurechnen - Mit
analogReference()kannst du die Referenzspannung ändern (z.B. auf 3.3V) - Für stabilere Messungen kannst du mehrere Werte mitteln
- Beachte, dass analogRead() ca. 100 Mikrosekunden benötigt
Fazit
Mit analogRead() erschließt du dir die Welt der analogen Sensorik. Du kannst nun die Brücke zwischen der digitalen Arduino-Welt und analogen Sensoren schlagen. Die Funktion bildet die Grundlage für viele Arduino-Projekte und ist essentiell für die Interaktion mit der realen, analogen Welt. Ich empfehle dir, mit verschiedenen Sensoren zu experimentieren und die vielfältigen Möglichkeiten zu entdecken!
Wenn dir das Projekt gefallen hat und du von weiteren interessanten Projekten inspiriert werden willst, sieh dir doch mal mein neues E-Book »Arduino Projekte Volume 1« an!
- Die beliebtesten Arduino-Projekte von StartHardware
- Inklusive Schaltplan, Beschreibung und Code
- Arduino-Schnellstart-Kapitel
- Kompakter Programmierkurs

Hallo,
ich habe die Analogwebseite aufgerufen und mit Tinkercad.com simuliert.
Habe einen Spannungsteiler mit zwei Widerständen je 1kOhm aufgebaut und die an die Arduino 5V dran gehängt. Bei Messung kam aber nicht 2,5 V (Wert 512) raus, sondern 637 (3V). Woran liegt das? Ist das ein Bug von Tinkercad?
Moin, ich bin blutiger Anfänger. Kann man über die analogen Eingänge z.B. 5 Volt auf A0 auslesen und dann über einen analogen Ausgang A3 ein Relais ansteuern?
Gruß Rainer