Zum Inhalt springen

Von ADC-Wert bis Spannung und Messung

Welche Spannung und Temperatur entsprechen meinem ADC-Wert?

Antwort: Når du bygger en prototype med en mikrocontroller, læser den en analog sensor som et heltal: på en Arduino Uno fra 0 til 1023 (10 bit). Beregneren omregner tallet til spænding ud fra referencespændingen og opløsningen, og videre til den fysiske størrelse for en lineær sensor: størrelse = (U − offset) ÷ følsomhed. Standardtallene er temperatursensoren TMP36 fra databladet. Har du en anden sensor, taster du dens offset og følsomhed fra dens datablad.

Formel

U = ADC-værdi ÷ (2^bits − 1) × U_ref

Størrelse = (U − offset) ÷ følsomhed (lineær sensor fra databladet)

TMP36: offset 0,5 V og følsomhed 0,01 V/°C, så 0,75 V = 25 °C

Opløsning = U_ref ÷ (2^bits − 1). Mindste ændring = opløsning ÷ følsomhed

Symbole und Einheiten in der Formel
SymbolBedeutungEinheit
adcGelesener ADC-Wert (z.B. von analogRead)—
bitsAuflösung des Analog-Digital-Wandlers—
urefReferenzspannungV
offsetSensorspannung bei 0 (Offset)V
foelsomhedEmpfindlichkeit des SensorsV pr. enhed
=Gemessene Größe (z. B. °C)—
=Spannung am EingangV
=Auflösung pro SchrittmV
=Minimale Änderung, die der Sensor sehen kann—

Gültigkeit und Quelle

Quelle
Arduino analogRead()-Referenz (10 Bit, 0-1023) und TMP36-Datenblatt (Analog Devices: 10 mV/°C, 500 mV bei 0 °C)

Gilt nicht, wenn

  • Die eigene Dokumentation von Arduino rechnet mit 1023 (2^Bit − 1). Einige Bücher dividieren durch 1024; der Unterschied liegt unter 0,1 % und spielt nur bei voller Skalierung eine Rolle. Die Referenzspannung von USB ist selten genau 5,00 V: Miss sie mit dem Multimeter, wenn deine Messungen passen sollen.

Rechenbeispiel

Die eigenen Standardwerte des Rechners sind eingesetzt. Die Zahlen sind mit genau der Formel berechnet, die das Werkzeug verwendet.

Sat ind

  • Gelesener ADC-Wert (z.B. von analogRead)154
  • Auflösung des Analog-Digital-Wandlers10
  • Referenzspannung5 V
  • Sensorspannung bei 0 (Offset)0,50 V
  • Empfindlichkeit des Sensors0,01 V pr. enhed

Geber

  • Gemessene Größe (z. B. °C)25,3
  • Spannung am Eingang0,753 V
  • Auflösung pro Schritt4,89 mV
  • Minimale Änderung, die der Sensor sehen kann0,49

Der Rechner selbst ist gesperrt

Lege einen kostenlosen Zugang an, um alle Artikel, Rechner, Vorlagen und das Sortiment freizuschalten — und Zugriff auf Quizze und Klassen zu erhalten. Es dauert unter einer Minute: Name, E-Mail und ein Passwort. Keine Zahlungskarte.

Willst du zuerst etwas ausprobieren? Sieh, was du ohne Konto nutzen kannst — der Junior-Bereich, das Lexikon, die Videos und mehr.

Sådan bruger du den

Når du bygger en prototype i teknologi eller programmering med en mikrocontroller og en analog sensor, og tallet fra analogRead() skal blive til en spænding og en temperatur eller et tryk. Beregneren viser også, hvor fint din opstilling kan måle.

Schritt für Schritt

  1. Læs ADC-værdien i Serial Monitor.
  2. Vælg ADC'ens opløsning: Arduino Uno er 10 bit, ESP32 er 12 bit.
  3. Skriv referencespændingen. Mål den med multimeteret, hvis du vil være præcis.
  4. Skriv sensorens offset og følsomhed fra databladet.
  5. Aflæs spændingen, den målte størrelse og den mindste ændring, du kan se.

Typische Fehler

  • At regne med 5 V, når boardet faktisk får 4,8 V fra USB. Det giver flere graders fejl.
  • At glemme offset på TMP36. Uden den bliver 25 °C til 75 °C.
  • At regne med 10 bit på et board med 12 bit, eller omvendt.
  • At stole på én måling. Tag gennemsnittet af 10-20 aflæsninger i koden.

Beispiele aus dem Alltag

TMP36 på en Arduino Uno

Din temperaturlogger læser 154 på A0. Arduinoen kører på USB med 5 V reference, og TMP36 har 0,5 V offset og 10 mV/°C.

Gelesener ADC-Wert (z.B. von analogRead)
154
Auflösung des Analog-Digital-Wandlers
10 bit (0-1023, fx Arduino Uno)
Referenzspannung
5 V
Sensorspannung bei 0 (Offset)
0,5 V
Empfindlichkeit des Sensors
0,01 V pr. enhed

Es bedeutet: Indgangen får 0,753 V, og det svarer til 25,3 °C. Hvert trin er 4,89 mV, så du kan kun se ændringer på ca. 0,49 °C.

Samme sensor på en ESP32

Du flytter loggeren til en ESP32 med 12 bit og 3,3 V reference. Loggeren står i jeres drivhusprojekt en varm dag og læser 1.100.

Gelesener ADC-Wert (z.B. von analogRead)
1.100
Auflösung des Analog-Digital-Wandlers
12 bit (0-4095, fx ESP32, Arduino Due)
Referenzspannung
3,3 V
Sensorspannung bei 0 (Offset)
0,5 V
Empfindlichkeit des Sensors
0,01 V pr. enhed

Es bedeutet: Det giver 0,886 V og 38,6 °C. Opløsningen er nu 0,81 mV pr. trin, ca. 0,08 °C. ESP32'ens ADC er dog ikke lineær nær 0 V og 3,3 V, så kalibrér mod et termometer.

Trykføler 0-5 V

En trykføler giver ifølge databladet 0 V ved 0 kPa og 0,05 V pr. kPa. Arduinoen læser 512.

Gelesener ADC-Wert (z.B. von analogRead)
512
Auflösung des Analog-Digital-Wandlers
10 bit (0-1023, fx Arduino Uno)
Referenzspannung
5 V
Sensorspannung bei 0 (Offset)
0 V
Empfindlichkeit des Sensors
0,05 V pr. enhed

Es bedeutet: Spændingen er 2,502 V, og trykket er 50 kPa. Du kan skelne ændringer på ca. 0,1 kPa.

Faustregel

Arduino Uno: 1 trin ≈ 4,9 mV. TMP36: 1 °C = 10 mV ≈ 2 trin.

So überprüfst du die Antwort

Mål spændingen på sensorens udgang med multimeteret. Den skal passe med beregnerens spænding inden for et par trin.