Forum: Mikrocontroller und Digitale Elektronik ADC: Umrechnung von ADC-Werten in Temperatur - Denkblockade.


von Hans versteck dich! (Gast)


Lesenswert?

Hallo erstmal!

Ich hab mal eine Frage - und zwar möchte ich einen Temperatursensor 
auswerten (Platin-Sensor mit OP-Verstärker dahinter).

Jetzt habe ich gerade lediglich eine Denkblockade.

Also: Ich habe einen Messbereich von -50°C bis +250°C und habe 
rechnerisch (auf dem Papier) eine Spannung am ADC von 1,237V bis 2,915V 
für den angegebenen Messbereich.

Der ADC hat 12 Bit, also 4096 diskrete Werte.

Referenzspannung ist 3V.

In ADC-Werten liege ich damit (rechnerisch) zwischen 1689 bis 3980.

So...jetzt stehe ich grad auf dem Schlauch...wie wandel ich das jetzt am 
geschicktesten in eine Temperatur um?

Ich habe ein Temperaturdelta von 300°C und ein "ADC-Delta" von 2292.

Sollte ich jetzt den ADC-Wert von 0° als Basis nehmen und von da an nach 
oben und unten rechnen, oder wie mache ich das am besten?

Bei 0°C sollte der ADC-Wert theoretisch 2094 sein - die Spannung am ADC 
ist dann 1,533...V.

Ich muss ja auch noch beachten, dass man ab bestimmten Punkten andere 
Berechnungen für die PT-Sensoren benutzt. Dazu kommt, dass meine 
errechneten Werte ja eh niemals genau mit der Realität zusammen kommen 
werden.

Also quasi irgendwie so:
1
if (adc_wert > 2094) // groesser 0°C
2
{
3
  Formel 1
4
}
5
else if (adc_wert < 2094)
6
{
7
  ...
8
}

Naja und die Berechnung erstmal prinzipiell???

T[°C] = ((((3V * ADC-Wert) / 4096) - 1.5333) / Auflösung[V])

Kann mir da einer helfen?

von Karl H. (kbuchegg)


Lesenswert?

Hans versteck dich! schrieb:

> So...jetzt stehe ich grad auf dem Schlauch...wie wandel ich das jetzt am
> geschicktesten in eine Temperatur um?

Du schaust ins Datenblatt und siehst nach ob der Zusammenhang zwischen 
Temperatur und Spannung ein linearer Zusammenhang ist.

Wenn ja, dann postulierst du, dass du eine lineare Gleichung hast

   Temp = ADC_Wert * k + d

einzige Frage ist: Wie gross ist das k, wie gross ist das d?

Da kommt jetzt ins Spiel, dass du 2 Pärchen ADC_Wert/Temperatur kennst:

  -50  =  1689 * k + d
  250  =  3980 * k + d

Das sind 2 Gleichungen in 2 Unbekannten und das kann man lösen.
Danach kennt man die Zahlenwerte für k und d und kann sie benutzen um 
jeden beliebigen ADC_Wert direkt aus dem ADC mittels

   Temp = ADC_Wert * k + d

in eine Temperatur umzurechnen.

> Ich muss ja auch noch beachten, dass man ab bestimmten Punkten
> andere Berechnungen für die PT-Sensoren benutzt.

Dann rechnest du dir die zu diesen Punkten gehörenden ADC_werte aus und 
benutzt dann von einem Punkt ausgehend bis zum nächsten Punkt den 
jeweils gültigen Parametersatz für k und d

> Dazu kommt, dass meine errechneten Werte ja eh niemals genau mit der
> Realität zusammen kommen

Daher kalibriert man den Sensor ja auch. D.h. im obigen Beispiel rechnet 
man nicht einfach mit den Werten aus dem Datenblatt, sondern man bringt 
den Sensor auf -50° und misst mit dem ACD einen ADC_wert von 1587 
(anstelle von 1689). Weiter bringt man den Sensor auf +250° und misst 
mit dem ADC einen Wert von 4005.

  -50  =  1587 * k + d
  250  =  4005 * k + d

k und d bestimmten und die Umrechnung ist auf deinen Sensor und deinen 
Messverstärker kalibriert.
Bei stückweiser linearer Appoximation muss dann natürlich jedes 
Teilstück einzeln kalibiert werden.

von Hans versteck dich! (Gast)


Lesenswert?

Karl heinz Buchegger schrieb:
> Du schaust ins Datenblatt und siehst nach ob der Zusammenhang zwischen
> Temperatur und Spannung ein linearer Zusammenhang ist.

Hallo Karl-Heinz. Danke dir schonmal für deine Antwort!

Also es handelt sich halt um einen PT500. Die Werte dafür sind ja 
allgemein bekannt. Nur meine Verstärkerschaltung (nicht-invertierender 
OP) bringt mir halt ein paar Fehler in die Sache.

Karl heinz Buchegger schrieb:
> Das sind 2 Gleichungen in 2 Unbekannten und das kann man lösen.

Ja gut, klar. Das stimmt natürlich. Ich muss wahrscheinlich nur einmal 
einen Nullpunkt messen, um zumindest schonmal zu wissen, ab wo ich die 
"andere" Berechnung durchführen muss. Evtl. mit einem 
Präzisionspotentiometer die verschiedenen Werte einstellen? Meine 
Tempraturangaben sind absolute Maximalwerte. Die zu erzeugen ist nicht 
so leicht. Aber dadurch, dass ich halt einen genormten PT500 habe, 
könnte ich ja mit dem Poti die Werte "simulieren".

Karl heinz Buchegger schrieb:
> Daher kalibriert man den Sensor ja auch.

Meine Gradzahl muss nicht auf 0,5° genau sein. Ziel wäre bei mir, dass 
ich eine Schaltung aufgebaut habe...und zwar mehrfach - PT500 dran und 
fertig. Ohne jedes Gerät zu kalibrieren. Die Schaltung sollte da schon 
ihre +/- 1° von sich aus mitbringen.

Mein Verstärker ist ein OPA336 - die Widerstände sind alle 0,1% 25ppm.

Ich hoffe, das bekomme ich so hin, wie ich es mir vorstelle.

Nur halt an der Umrechnung hakt es grad. Ich werd mir das jetzt erstmal 
so angucken, wie du es vorgeschlagen hast.

Danke dir!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.