Der Rohwert des Analogeingangs erreicht nie 4096, sondern endet bei 4095. Ein Zahlenvergleich auf 4096 löst deshalb nie aus, weil er auf Off-by-one (einen um eins verschobenen Zahlenvergleich) beruht. Umgekehrt entspricht ein Wert wie 2048 fast, aber nicht ganz der halben Referenzspannung.
Der Analog-Digital-Wandler (ADC), also die Schaltung, die eine Spannung in eine Zahl umsetzt, liefert beim ESP32 12 Bit Auflösung. 12 Bit bedeuten 2 hoch 12, also 4096 mögliche Stufen. Da die Zählung bei 0 beginnt, ist der größte Rohwert 4095, nicht 4096. Die Auflösung teilt den Messbereich in diese Stufen, sagt aber nichts über die Genauigkeit: 4096 Stufen garantieren nicht, dass der Wert der wahren Spannung entspricht.
Bei einer Referenzspannung, also der Vergleichsspannung für die Messung, von 3,3 V ergibt sich der kleinste Schritt aus 3,3 V geteilt durch 4095, etwa 0,8 mV je Stufe. Zurückrechnen ist ein Dreisatz: Spannung gleich Rohwert geteilt durch 4095, multipliziert mit der Referenzspannung. Wichtig: Die Referenzspannung des ESP32 streut von Chip zu Chip; Espressif speichert deshalb einen Kalibrierwert im eFuse, den die Kalibrierfunktionen von ESP-IDF nutzen.
„So prüft man es:“ Einen Spannungsteiler (zwei Widerstände, die eine Spannung herabsetzen) oder ein als Referenz geeignetes Multimeter an den Pin legen und Rohwert sowie gerechnete Spannung vergleichen. Weicht der Wert stark ab, die Kalibrierfunktionen nutzen und mehrere Messungen mitteln.
12 Bit heißt nicht 4095 Stufen, sondern 4096 Stufen mit letztem Wert 4095. Auflösung ist nicht Genauigkeit: Sie zählt Stufen, nicht Messfehler.
📌 ADC-Auflösung · Dreisatz · Referenzspannung
📚 IoT von Grund auf · Tag 3 von 30
#esp32 #Arduino #sensorik