Hausaufgabe: Thermometer

Was wird wie gelöst, warum geht es nicht, wer bekommt es zum Laufen? Eure Projekte und Programme könnt ihr hier vorstellen, diskutieren und verbessern.
DL9GFA
Posts: 66
Joined: Thu 12. Apr 2012, 22:30

Re: Hausaufgabe: Thermometer

Post by DL9GFA »

Hallo,

wenn das B im Datenblatt statt 4600 mit 4200 angegeben wäre, würden die Kurven (oben rot und blau) quasi übereinander liegen. Mich wundert die relativ hohe Abweichung beider Angaben (B zur Tabelle 2005) im selben Datenblatt, die nicht der Formel geschuldet ist. Die angegebene Toleranz des Parameters B von +/- 3% ist mit dieser Abweichung auch bei weitem überschritten (ca. -9%).

Für genaue Temperaturmessungen sind NTCs sowieso nicht besonders gut geeignet, aufgrund ihres recht nichtlinearen Verhaltens, dafür nimmt man bevorzugt Platin-PTCs (linearer). Für unseren MC-Kurs habe ich zugunsten des geringen Preises noch zusätzlich die große Toleranz akzeptiert. Sehr genaue Temperaturmessungen erlaubt uns dafür der DS18B12-Sensor in unserem Materialsatz.

Diese Übung hilft uns aber trotzdem, die später typisch auftretenden Probleme zu lösen, bei denen es oft um Linearisierung und mehrfache Umrechnung gehen wird. ;)

Warum habt Ihr (Marc, Matthias) den Spannungsteiler eigentlich genau anders herum aufgebaut als beschrieben und in der Präsentation skizziert? Hat das einen bestimmten Hintergrund? Wahrscheinlich wart Ihr schneller als die Präsentation kam. Der Vergleich der Zwischenergebnisse (-kurven) fällt dadurch etwas schwerer...

vy 73 de Gerrit, DL9GFA
DG9OBU
Posts: 6
Joined: Sun 22. Jul 2012, 17:28

Re: Hausaufgabe: Thermometer

Post by DG9OBU »

Moin
DL9GFA wrote: Warum habt Ihr (Marc, Matthias) den Spannungsteiler eigentlich genau anders herum aufgebaut als beschrieben und in der Präsentation skizziert? Hat das einen bestimmten Hintergrund? Wahrscheinlich wart Ihr schneller als die Präsentation kam.
Ach, da war eine Skizze in der Präsi ... :oops: Habe da ehrlich gesagt gar nicht mehr reingeschaut bevor ich
losgelegt habe weil ich den von Dir bereits im Kurs erwähnten Trick mit dem Spannungsteiler noch im Gedächtnis
hatte und mich zuerst um dessen genauen Aufbau nicht mehr gekümmert habe als das Prinzip klar war. Dann kam
das Problem mit dem RX/TX und dadurch absolut unsinnigen AD-Werten dazu, und als ich das beseitigt hatte, habe
ich den Teiler einfach so gelassen weil er mir mit seiner steigenden Gerade gefiel. Ich habe dann gar nicht mehr in
die Präsi geguckt wie er dort dargestellt war.
Der Vergleich der Zwischenergebnisse (-kurven) fällt dadurch etwas schwerer...
Ich wollte ja meine Grafik sowieso noch nachliefern, da kann ich den Teiler dann auch noch mal in umgekehrtem Aufbau betrachten, ist
ja nur eine Formel leicht umzustellen. Mit dieser Änderung sollte es dann vergleichbar werden, ich werde auch die Achsen
möglichst so anpassen, dass sie zu den bisherigen Darstellungen passen. Leider bin ich gestern nicht mehr dazu gekommen, das noch
entsprechend für das Forum aufzuarbeiten :(

vy 73,
Marc
DL9MWE
Posts: 39
Joined: Sat 12. May 2012, 09:02

Re: Hausaufgabe: Thermometer

Post by DL9MWE »

Hallo Forum,

> Warum habt Ihr (Marc, Matthias) den Spannungsteiler eigentlich genau anders herum aufgebaut als beschrieben...?

Weil sich dann für eine steigende Temperatur eine steigende Spannung am Spannungsteiler ergibt.
NTC bedeutet ja "Negativer Temperatur Coeffizient". Mit steigender Temperatur sinkt also der Widerstand.
Wenn man den NTC an +Vcc anschließt und den konstanten R gegen Masse, steigt die Spannung am Abgriff mit steigender Temperatur
Das ist für die Programmierung einfacher, als umgekehrt... (denke ich...)

vy 73 de Matthias, DL9MWE
DL9MWE
Posts: 39
Joined: Sat 12. May 2012, 09:02

Re: Hausaufgabe: Thermometer

Post by DL9MWE »

Hallo Forum,

hurra! Die Software läuft.

Allerdings nur, wenn ich den AD-Kanal 0 anwähle - also den PIN P1.0.
Eigentlich sollte das egal sein, aber bei allen anderen Kanälen kann ich keine sinnvollen Werte einlesen.
Mal sehen...

Gerade habe ich hier die Raumtemperatur gemessen: 26.3 Grad. Das passt für diesen Sommertag und stimmt mit einem anderen Thermometer ganz gut überein.
Dann habe ich den NTC in den Abluftstrom meines Desktop-PCs positioniert und messe 45 Grad C. Scheiß-Verlustleistung...

Die Software benutzt eine Tabelle, in der die erwarteten AD-Wandler-Werte aufgrund der Temperatur am NTC (klar!), des Spannungsteilers und der verwendeten AD-Parameter (Vref = Vcc = 3,6V, etc.) eingetragen sind. Die Tabelle ist hier im Forum zu finden.
Das Datenblatt liefert in 5 Grad-Schritten von -55 Grad bis +125 Grad die temperaturabhängigen Widerstandsfaktoren, aus denen per Tabellenkalkulation die AD-Werte errechnet wurden.
Bei einer aktuellen Messung durchsucht das Programm nun diese Tabelle nach dem Intervall, in dem der Messwert liegt.
Das sind - wie gesagt - jeweils 5 Grad. Eine lineare Interpolation (Dank an Mr. Newton) liefert schließlich den genauen? Zwischenwert in diesem Intervall.

vy 73 de Matthias, DL9MWE
Last edited by DL9MWE on Fri 27. Jul 2012, 17:25, edited 1 time in total.
DL9GFA
Posts: 66
Joined: Thu 12. Apr 2012, 22:30

Re: Hausaufgabe: Thermometer

Post by DL9GFA »

Hallo Matthias,
NTC bedeutet ja "Negativer Temperatur Coeffizient". Mit steigender Temperatur sinkt also der Widerstand.
Wenn man den NTC an +Vcc anschließt und den konstanten R gegen Masse, steigt die Spannung am Abgriff mit steigender Temperatur
Das ist für die Programmierung einfacher, als umgekehrt... (denke ich...)
:) ja siehst Du, gerade weil es ein NTC ist, erwarte ich diese umgekehrte Proportionalität und bin verwirrt, wenn die Kurven anders herum verlaufen. Für die Genauigkeit der Messung ist ein geringerer Widerstand parallel zum ADC-Eingangswiderstand günstiger, so daß Messungen >25°C genauer werden mit dem NTC gegen GND und <25°C mit den NTC gegen Vcc. Aber die oben besprochenen Fehlerquellen sind allesamt größer, so daß diese Betrachtung rein theoretisch ist. Am Ende ist es also im wahrsten Sinne des Wortes Ansichtssache.

vy 73 Gerrit, DL9GFA
DL9GFA
Posts: 66
Joined: Thu 12. Apr 2012, 22:30

Re: Hausaufgabe: Thermometer

Post by DL9GFA »

Hallo Matthias,
DL9MWE wrote: hurra! Die Software läuft.
Allerdings nur, wenn ich den AD-Kanal 0 anwähle - also den PIN P1.0.
Eigentlich sollte das egal sein, aber bei allen anderen Kanälen kann ich keine sinnvollen Werte einlesen.
Mal sehen...
hast Du die Jumper TXD/RXD von J3 abgezogen, um die AD-Kanäle A1 oder A2 zu verwenden? Ich vermute das war das Problem. Marc hatte mich darauf aufmerksam gemacht, weil ich dieses Problem mit meinem Launchpad V1.4 und 10k-NTC (wahrscheinlich eher die Ursache) nicht hatte.

vy 73 Gerrit, DL9GFA
DG9OBU
Posts: 6
Joined: Sun 22. Jul 2012, 17:28

Re: Hausaufgabe: Thermometer

Post by DG9OBU »

Moin

So, hier kommt noch wie versprochen mein Diagramm:
DG9OBUs Diagramm zum NTC
DG9OBUs Diagramm zum NTC
NTC_obu.png (55.6 KiB) Viewed 4904 times
Kurze Erläuterung dazu:

Die gelbe Kurve "AD-Wert" habe ich verwendet, der NTC befindet sich zwischen Vcc und den AD-Pin.
Die "AD-Wert 2"-Kurve in Magenta würde entstehen, wenn ich den Spannungsteiler anders herum aufbauen würde,
der NTC also zwischen dem AD-Pin und GND wäre.

In schwarz sind jeweils die Ausgleichsgeraden eingezeichnet, die man dann zur Gewinnung der Geradengleichung
verwenden kann.

Die Kurve in Dunkelblau ist schließlich die Kennlinie des NTC.

vy 73,
Marc
DL9MWE
Posts: 39
Joined: Sat 12. May 2012, 09:02

Re: Hausaufgabe: Thermometer

Post by DL9MWE »

Hallo Gerrit,

stimmt! Nach Entfernen der Jumper für Tx und Rx im Jumperfeld J3 funktionieren nun auch die anderen AD-Kanäle. mni tnx fer info!
Ich habe hier ebenfalls die Board-Version 1.4, aber natürlich mit 100k-NTC.

vy 73 de Matthias, DL9MWE
DL9GFA
Posts: 66
Joined: Thu 12. Apr 2012, 22:30

Re: Hausaufgabe: Thermometer

Post by DL9GFA »

Hallo Marc,

sehr schön Deine Graphen! Müßte der Schnittpunkt der beiden Geraden nicht bei 25°C und ADC-Wert 512 liegen (NTC und R genau gleich 100k, egal ob gegen Vcc oder GND)? Für die "gelben Messungen" paßt das, aber nicht für die anderen. Wenn ich Dich richtig verstanden habe, hast Du "nur" umgerechnet und da paßt wohl noch etwas nicht ganz (Du hast offensichtlich 20°C als "Spiegelpunkt" verwendet.).

HW?

vy 73 Gerrit, DL9GFA
DG9OBU
Posts: 6
Joined: Sun 22. Jul 2012, 17:28

Re: Hausaufgabe: Thermometer

Post by DG9OBU »

Moin Gerrit

Stimmt, war mir noch gar nicht aufgefallen, die beiden Geraden müssten sich genau in dem Punkt schneiden.

Mal gucken, was da nicht stimmt ... Aha, die zweite AD-Datenreihe bezieht sich auf die linke Y-Achse, die AD-Werte
stehen aber rechts. Dadurch ist die zweite AD-Reihe zu tief dargestellt, der Wert für 25°C steht aber korrekt bei 512,
nur halt auf die linke 512 (kOhm) bezogen ... GRRRR ... :evil: Das ist vermutlich entstanden als ich die Achsenskalierungen
so angepasst habe, dass sie zu den anderen Diagrammen passen, vorher hatte ich den Widerstandswert in Ohm und nicht in
kOhm dargestellt. Da wäre die falsche Zuordnung dann sicherlich gleich aufgefallen.

Mit korrigierter Achsenzuordnung passt das auch:
Diagramm von DG9OBU, jetzt mit richtigen Achsenzuordnungen
Diagramm von DG9OBU, jetzt mit richtigen Achsenzuordnungen
NTC_obu2.png (56.43 KiB) Viewed 4904 times
Interessehalber habe ich mir grad mal eine Standardabweichung von 3% auf Punkte der Datenreihen eintragen lassen,
da zeigt sich deutlich dass man für eine bessere Genauigkeit dann doch noch feiner unterteilen sollte und abschnittsweise mit mehreren
vom AD-Wertebereich abhängigen Geradengleichungen arbeiten sollte. Das ginge dann in die Richtung, die Matthias gewählt hat.

Naja, bei mir funktioniert nun auch der DS18B20, und der spuckt gleich direkt den Temperaturwert aus ;)

vy 73,
Marc
Post Reply