mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Verständnissproblem PT100 - ESP32 ADC


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: MarcoRe (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi zusammen,

da ich jetzt schon mehrer Tage am grübeln bin, benötige ich eure 
Unterstützung.

Ich möchte einen Regler bauen der anhand der gemessenen Temperatur einen 
Verbraucher steuert. Hierzu möchte ich gerne die Spannung eines PT100 
über den ADC des mC einlesen und daraus die Temperatur berechnen. Hier 
mal mein Gedankengang. Vielleicht findet ihr ja den Fehler

Der ADC hat folgende Eigenschaften:
12 Bit Genauigkeit
1.1V Referenzspannung
-> 1.1/4096 =  0,268mV

Die Spannung greife ich an einem Spannungsteiler ab. Hierzu schließe ich 
den Spannungsteiler an U = 3.3 V und an den GND Pin des mC an. Weiterhin 
verwende ich folgende Widerstände:

R1 = 5000 Ohm
R2 = PT100 mit ungefähr 100 Ohm + 0,4 Ohm/K * x K
-> I_max>0°C = 3.3V/5100Ohm = 0,647mA

Das sollte soweit passen, da bei 100 Ohm der Strom zw. 0.3 bis 1 mA 
liegen sollte ( 
https://produktinfo.conrad.com/datenblaetter/175000-199999/181390-da-01-de-KL_B_TEMPERATUR_SENSOR_PT_100_M_222.pdf 
)

Jetzt prüfe ich, ob die Genauigkeit für den Sensor geeignet ist, 
mithilfe der Spannungsteilerformel:
U1/R1 = U2/R2  mit U1 = Uges - U1

folgt: Uges/[(R1/R2) + 1] = U2

Beispiel:

U2_0°C = 3.3V/[(5000/100)+1] = 0,0647 V = 64,7mV
U2_1°C = 3.3/[(5000/100+0.4*1) +1] = 64,96mV

-> U2_1°C - U2_0°C = 0,26mV < Genauigkeit
--> Ich kann zwar nicht auf 1°C genau messen, aber auf 2°C sollte gehen. 
Korrekt?

Nur möchte mein mC das ganze nicht richtig verarbeiten und spuckt 
seltsame Werte aus. Wisst ihr zufällig woran das liegt? Ich werde auf 
einen PT1000 ausweichen, aber dennoch beschäftigt mich diese Frage und 
es wäre super, wenn ihr mir diese Wissenslücke schließen könnt.

Danke euch.

VG Marco

Autor: MaWin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
MarcoRe schrieb:
> Wisst ihr zufällig woran das liegt

Merkwürdige Programmiersprache.
Sicher dass 1100/4096 in ihr 0.2685546875 ergibt ?

Die Auflösung liegt schon nahe bei 1 GradC, die Genauigkeit wird 
natürlich erheblich schlechter sein, der ADC hat sicher 1 bit Fehler, 
der 5000 Ohm Widerstand ist sicher nicht 0.1% genau und die 1.1V 
Referenz wird sicher nicht exakt 3.3V Betriebsspannung / 3 sein.
Du solltest erst mal das reale Verhältnis zwischen Betriebsspannung und 
Referenzsoannung messen.

Ich würde erst mal den unveränderten Wert des adc.read ausgeben, dann 
jedes Zwischenergebnis.

Da dein Messwert 1.099V beträgt, kann kein ca. 100 Ohm / 5000 Ohm 
Spannungsteiler gemessen worden sein, der würde nur 0.065V liefern

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.