SVEN HELLE PRÄSENTIERT: VOLTIGMA v3.0
⌂
Arduino und Microcontroller · FACHBEGRIFF

Analog-Digital-Wandler

Merksatz / Hinweis:
Schaltung zur Umwandlung eines analogen Signals in einen digitalen Wert.

ARDUINO · ANALOGE SIGNALE EINLESEN

Analog-Digital-Wandler

Ein ADC ist die Schaltung, die eine analoge Eingangsspannung in einen digitalen Messwert umwandelt.

Wozu braucht der Arduino einen ADC?

Ein digitaler Eingang unterscheidet im Wesentlichen zwei Zustände: LOW und HIGH. Ein Analogeingang kann dagegen eine Spannung innerhalb seines zulässigen Messbereichs erfassen. Das ist hilfreich, wenn sich ein Signal stufenweise oder kontinuierlich ändert – etwa die Schleiferspannung eines Potenziometers oder die Ausgangsspannung eines Sensors.

Der ADC (Analog-to-Digital Converter) befindet sich bei vielen Arduino-Boards im Mikrocontroller. Über analogRead(A0) fordert das Programm eine Wandlung am Analogeingang A0 an und erhält eine ganze Zahl zurück. Diese Zahl kann es anzeigen, vergleichen, speichern oder zur Steuerung verwenden.

Wichtig: Der ADC misst die Spannung zwischen dem Eingang und dem Bezugspotenzial GND. Soll eine andere physikalische Größe erfasst werden, muss ein Sensor oder eine vorgeschaltete Schaltung sie in eine geeignete Spannung umsetzen.

Beispielschaltung: Potenziometer am UNO

Ein Potenziometer mit beispielsweise 10 kΩ wird als veränderlicher Spannungsteiler angeschlossen. Die beiden äußeren Anschlüsse liegen an 5 V und GND, der mittlere Anschluss (Schleifer) an A0. Beim Drehen ändert sich die Spannung am Schleifer zwischen ungefähr 0 V und 5 V.

PotenziometerVerbindungArduino UNO
Äußerer Anschluss 1──────────────→5 V
Mittelanschluss (Schleifer)──────────────→A0
Äußerer Anschluss 2──────────────→GND

Die beiden äußeren Anschlüsse dürfen vertauscht werden; dadurch kehrt sich lediglich die Drehrichtung für steigende Messwerte um.

Grenze beachten: Dieses 5-V-Beispiel gilt für einen passend versorgten Arduino UNO. Ein 3,3-V-Board wie der Nano ESP32 darf nicht einfach mit derselben 5-V-Schleiferspannung an A0 betrieben werden. Zulässige Eingangsspannung und ADC-Messbereich sind im Datenblatt des jeweiligen Boards zu prüfen.

Vom analogen Signal zur Zahl

Analoge Spannung
am Pin A0
→ ADC
abtasten und quantisieren
→ Digitaler Wert
im Programm

Bei jeder Messung erfasst der Wandler einen Momentanwert (Abtastung). Er ordnet die Spannung einem von endlich vielen Wertebereichen zu (Quantisierung). Der Arduino liefert den zugehörigen Zahlencode. Ein einzelner Messwert beschreibt deshalb die Spannung zum Messzeitpunkt, keine vollständige zeitliche Signalform.

Der klassische UNO R3 liefert bei analogRead() einen 10-Bit-Wert von 0 bis 1023. Der UNO R4 gibt standardmäßig ebenfalls 10 Bit aus; dort lässt sich die Auflösung auch auf 12 oder 14 Bit einstellen. Die Spannungsreferenz und die zulässige Pinspannung müssen jeweils zum Board und zur Schaltung passen.

Rechenbeispiel: 10 Bit und 5 V

10 Bit ermöglichen 210 = 1024 Zahlencodes. Bei einer idealen Referenz von 5,00 V beträgt ein Quantisierungsschritt ungefähr:

ΔU = 5,00 V / 1024 ≈ 0,00488 V = 4,88 mV

Etwa 2,5 V an A0 ergeben ungefähr einen ADC-Wert um 512. Der Wert ist ein digitaler Code, keine Spannungsangabe in Volt. Um aus ihm eine Spannung zu schätzen, braucht man die tatsächlich verwendete Referenzspannung. Die Zahl der möglichen Codes beschreibt die Auflösung; die tatsächliche Genauigkeit hängt zusätzlich von Referenz, Rauschen, Eingangsbeschaltung und ADC-Fehlern ab.

Arduino-Sketch: A0 fortlaufend einlesen

void setup() {
  Serial.begin(115200);
}

void loop() {
  int messwert = analogRead(A0);
  Serial.println(messwert);
  delay(100);
}

Nach dem Hochladen den seriellen Monitor auf 115200 Baud stellen und das Potenziometer langsam drehen. Der ausgegebene Wert ändert sich mit der Schleiferspannung. Beim UNO mit standardmäßiger 10-Bit-Ausgabe liegt er zwischen 0 und 1023. Eine Anzeige am Anschlag kann geringfügig schwanken.

Messschaltung richtig auslegen

  • Gemeinsamer Bezug: Eine externe Signalquelle benötigt einen passenden GND-Bezug zum Arduino, sofern keine galvanische Trennung vorgesehen ist.
  • Spannungsbereich: Negative oder zu hohe Spannungen nicht direkt an den Analogeingang legen. Gegebenenfalls einen geeigneten Spannungsteiler, Verstärker, Pegelwandler oder Schutzbeschaltung verwenden.
  • Signalquelle: Sehr hochohmige Quellen können die Wandlung verfälschen. Sensor-Ausgang, ADC-Eingang und Abtastgeschwindigkeit müssen zueinander passen.
  • Schwankende Werte: Versorgung, Leitungsführung und Rauschen prüfen; bei Bedarf mehrere Werte mitteln oder passend filtern. Ein nicht angeschlossener Eingang kann scheinbar zufällige Werte liefern.

Fachquellen

✓Fachlich geprüft

← Zur Rubrik Arduino und Microcontroller