Go Down

Topic: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ) (Read 9 times) previous topic - next topic

jurs

#5
Mar 22, 2013, 09:13 pm Last Edit: Mar 22, 2013, 10:30 pm by jurs Reason: 1

Das Problem ist daß der PTC den Widerstand nicht linear mit der Temperatur ändert.


Das ist normalerweise kein Problem, wenn er ein Multimeter mit möglichst genauem Widerstandsmessbereich hat. Und es ist ein NTC Widerstand (siehe unten).

Dann braucht er nur bei zwei möglichst genau bestimmten Temperaturen den Widerstand seiner VDO-Messschraube auszumessen und kann sich leicht die Formel ermitteln, mit deren Hilfe er dann JEDE Temperatur aus den Messungen mit seinem Arduino ausrechnen kann.

Die Kennlinie eines NTC ist zwar nicht linear, aber praktisch trotzdem durch Messung an zwei Temperaturpunkten zu ermitteln, aufwändiger ist das gar nicht, denn es besteht ein logarithmischer Zusammenhang.

VDO-Schraube in 0° kaltes Wasser hängen ==> Widerstand bei 0° messen
VDO-Schraube in kochendes Wasser hängen ==> Widerstand bei 90° bis 100° messen (je nach Höhenlage über Meeresspiegel)

Damit ist dann alles klar. Wem nicht, dem rechne ich das mal vor, wie die Kalibrierwerte für die Formel ermittelt werden, und wie man aus dem Arduino mit Mess-Vorwiderstand und der Formel dann immer die passende Temperatur ausrechnet.

[Edit] Was rede ich eigentlich vom Messen, die Werte für den 150°-VDO-Öltemperaturgeber stehen im Internet, so dass man damit sofort losrechnen könnte:
http://www.temperaturgeber.de/vdo_temperaturgeber_daten.html

Und das mit dem Rechnen mache ich dann auch gleich mal.
Falls Du einen Standard-Sketch für Messungen mit NTCs verwendest, der die NTC Materialkonstante "B" erfordert, hier die Berechnung des Datenblattwerts "B" anhand der Öltemperatur-Sensordaten auf der Webseite (absolute Temperaturen in Kelvin von mir ergänzt):
60°C ==> 333,15K ==> 221,2 Ohm
120°C ==> 393,15K ==>  36,5 Ohm

Formel für die Konstante B
B= (T1 * T2)/ (T2-T1) * ln(R1/R2)

Einsetzen (mit absoluten Temperaturen in Kelvin):
B= (393,15*333,15)/(393,15-333,15)* ln(221,2/36,5) = 3933

Damit hast Du als Datenblattwerte für den VDO-Sensor zum Einsetzen in einschlägige Berechnungsformeln (wie sie z.B. in den Datenblättern beliebiger NTC-Widerstände genannt werden):
T1 = 333,15 K
R1 = 221,2 Ohm
B = 3933
Die Berechnungsformeln selbst können aus jedem beliebigen Datenblatt eines beliebigen Herstellers von NTC-Widerständen entnommen werden, den Formeln ist es nämlich egal, wenn man in den Formeln die Konstanten eines anderen NTC von einem Fremdhersteller einsetzt.

Wenn das Rechnen das Problem ist, kann ich natürlich noch weiterrechnen und ein paar Zeilen Code dazu schreiben.

Scherheinz

#6
Mar 24, 2013, 03:54 pm Last Edit: Mar 24, 2013, 04:24 pm by Scherheinz Reason: 1
Hallo!
Ich verstehe nicht ganz wie man aus 2 Punkten eine Kurve berechnet, kannst du deine Rechnung in einem Diagramm oder einer Excel Tabelle zeigen?

Ich hab den Sensor seit zwei Jahren im Auto zur Öltemperatursensor, nutze ihn aber bisher nur als Grenzwertüberwachung. Hatte auch hin und her gerechnet und auch nur die Kurve durch den Spannungsteiler etwas strecken können. So hatte ich einen Messbereich von 70 - 130C° aber immer noch mit einer Toleranz von +/- 2,5C°.


Gruß

Heinz

jurs

#7
Mar 24, 2013, 05:00 pm Last Edit: Oct 22, 2013, 07:42 pm by jurs Reason: 1

Ich verstehe nicht ganz wie man aus 2 Punkten eine Kurve berechnet, kannst du deine Rechnung in einem Diagramm oder einer Excel Tabelle zeigen?


Tja, wo man doch aus der Mathematik weiß, dass zwei Punkte mal eben so eine Gerade exakt bestimmen können, ist das vielleicht schwer verständlich.

Vielleicht wird es verständlicher, wenn Du folgende Zusatzbedingung hinzumimmst:
Die Widerstandskurve eines NTC-Widerstands verläuft logarithmisch

Und wenn Du diese Zusatzbedingung als bekannt annimmst, kannst Du die Widerstandskurve eines NTC-Widerstands tatsächlich aus nur zwei Punkten der Kurve ermitteln.

Sobald Du zu jeder Temperatur den Widerstand des NTC ("Temperaturfühler") kennst, dann kannst Du aus den Daten der Schaltung für Vorwiderstand, Betriebsspannung und gemessene Spannung jederzeit den aktuellen Widerstand des NTC ermitteln und von diesem widerum mit hoher Genauigkeit auf die aktuelle Temperatur zurückschließen.


kannst du deine Rechnung in einem Diagramm oder einer Excel Tabelle zeigen?


Sorry, Diagramm oder Excel-Tabelle, sowas kann ich nicht.

Wenn es Dir reicht, kann ich Dir die noch zusätzlich notwendigen Formeln herleiten, so daß Du am Ende aus den Schaltungsdaten (NTC-Konstante B wie oben vorgerechnet, Vorwiderstand, Betriebsspannung) und dem Meßwert (analogRead am Pin) die Temperatur ausrechnen kannst, direkt in Arduino-Code.

Soll ich mal versuchen, das verständlich zusammenzuschreiben?

Scherheinz

Das wäre super! Ich versuche mir halt immer über Excel was herzuleiten, aber selbst wenn das klappt ist es noch schwierig das Ganze in den Arduino zu bekommen  ;)

Hab gerade noch was gefunden....

http://e30-talk.com/attachments/elektrik/141061d1352352184-zusatzinstrumente-durchmessen-vergleichen-vdo-temp-geber_kennlinien.pdf

maeckes

#9
Mar 24, 2013, 05:14 pm Last Edit: Mar 24, 2013, 05:21 pm by maeckes Reason: 1
Tach!

Ich mache zur Zeit genau das Gleiche wie Du.

Also die Temp.-Sensoren von Koso sind 10k NTC's.

Ich kann Dir gerne meinen Code zur Verfügung stellen, dann kannst Du mit dem NTC + Spannungsteileraufbau einfach Deine Temperatur errechnen.
Zum Spannungsteileraufbau:
http://www.nextit.de/2011/07/thermometer-mit-arduino/

Hier kannst Du mein Projekt sehen:
http://arduino.cc/forum/index.php/topic,148346.0.html
Am Ende gibts auch nen kleines Video zum Ist-Stand.

Go Up