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.
coco
Administrator
Posts: 8
Joined: Thu 12. Apr 2012, 21:36

Hausaufgabe: Thermometer

Post by coco »

Hallo,

kommt jemand mit der Hausaufgabe weiter? Wer dem Spannungsteiler einen sinnvollen Wert entlocken konnte, bitte mal melden! Meiner misst immer ca. 40 Grad, auch wenn es maximal 20 in echt sein können.

Gruß
coco
DL9GFA
Posts: 66
Joined: Thu 12. Apr 2012, 22:30

Re: Hausaufgabe: Thermometer

Post by DL9GFA »

Hallo Coco,

wo stehst Du denn? Hast Du die letzten beiden Folien meiner Präsentation angeschaut? Damit kannst Du anhand der gezeigten Diagramme auf Plausibilität testen.

Ups, nun sehe ich erst, daß die erste Kennlinie die eines 10kOhm-NTCs ist (aus meiner Elektronik-AG), nicht die eines 100kOhm-Typs. Das sieht man am Widerstandswert bei 25°C, der dem Nennwert entsprechen muß. Die anderen beiden Diagramme, die das Verhalten des Spannungsteilers darstellen, sind aber korrekt! Ich werde das erste Diagramm umgehend korrigieren.

Ich vermute, Du hast den Spannungsteiler ( Vcc o---100k---Untc---NTC100k---| ) aufgebaut. Da der NTC seinen Nennwert von 100kOhm bei 25°C erreicht, sollte Untc bei 25°C ziemlich genau Vcc/2 = 3.6V/2 = 1.8V betragen. Bei 20°C ist Rntc höher und damit auch Untc (ca. 2V siehe 2. Diagramm bei 20°C). Das solltest Du mit einem Multimeter prüfen können.
Mit dem Poti-Beispiel aus dem Kurs solltest Du bei 20°C einen AD-Wandler-Wert von ca. 600 auf dem Display sehen (3. Diagramm bei 20°C). Wenn das alles stimmt, kann der Fehler nur noch in der Umrechnung liegen (Tabelle, Geradengleichung oder gar kubische Funktion?).

Hast Du daran gedacht, die Jumper RXD/TXD von J3 zu entfernen, wenn Du A1 oder A2 als AD-Wandlereingang benutzt? (Tipp auf Seite 54 der Präsentation)

vy 73 Gerrit, DL9GFA

P.S.
Ich hoffe ja, daß sich noch der eine oder andere mehr zur Diskussion meldet.
DG9OBU
Posts: 6
Joined: Sun 22. Jul 2012, 17:28

Re: Hausaufgabe: Thermometer

Post by DG9OBU »

Moin

Bei mir läuft der NTC. Hier mal, wie ich vorgegangen bin. Die Schritte sind etwas vage aus dem Gedächtnis reproduziert, ist schon fast
zwei Wochen her, dass ich es zusammengesteckt und den Rest entwickelt habe. Den einen oder anderen Schritt muss man ggf. selbst mit Hilfe von
den genannten Tools oder Quellen nachvollziehen. Ausserdem kann es auch sein, dass es viel einfacher geht als ich es hier aufgezäumt habe :lol:

Vorab: bei mir ist es so: VCC -> NTC -> zum AD -> 100k -> GND. Das geht auch anders herum, dazu siehe unten.
  • Google anschmeissen und sich über NTC allgemein schlau machen, wie wir wissen hat der Knilch eine nichtlineare Kennlinie. In vielen Foren findet man entsprechende Tipps wie man die Kennlinie mit Hilfe des Spannungsteilers "geradebiegt", und, sofern es einen interessiert, warum das mit dem Spannungsteiler geht.
  • Zu dem Fühler die passende Kennlinie besorgen (extra Datenblatt!), sie ist im Datenblatt des Fühlers genannt.
  • Die Werte der passenden Kennlinie in Excel (oder einem anderen Tabellenkalkulationsprogramm) als Temperatur-Widerstandsverhältnis-Wertepaare kopieren und darstellen lassen. Ziemlich krumme Sache...
  • Man beachte: die Kennlinie sind relative Werte, die sich auf den Widerstand bei 25°C beziehen, mit 100k multipliziert ergeben sie den Widerstand des Fühlers bei den jeweiligen Temperaturen. Bei 25°C sollte der Fühler 100kOhm aufweisen.
  • Den Spannungsteiler mit diesen Widerstandswerten, dem festen Widerstand und VCC benutzen, um die Spannungen bei den unterschiedlichen Temperaturen zu errechnen. Den erwarteten AD-Wert (bezogen auf 10 Bit @ 3.6V) ausrechnen lassen und als zweite Reihe (mit anderem Maßstab) in das Diagramm mit der NTC-Wiederstandskurve zusätzlich darstellen.
  • Abhängig davon wie rum man den Spannungsteiler aufgebaut hat, erhält man jetzt eine steigende oder fallende Gerade. In meiner Variante ist es eine steigende Gerade.
  • Mit Hilfe der Geradengleichung-Funkion von Excel eine Näherungsgerade in die AD-Werte legen und die gefundene Geradengleichung anzeigen lassen(Stichwort y = m*x + b). Hier einen geeigneten Temperaturbereich wählen, eine Gerade über den gesamten Bereich ist nicht sonderlich genau. Ich habe -10 bis 60°C gewählt, damit hielt ich die Abweichung noch für vertretbar.
  • Die Funktion der Gerade so umstellen, daß man die Temperatur erhält wenn man einen AD-Wert eingibt
  • Die Temperatur auf dem Display anzeigen. Die Nachkommastelle springt u.U. stark, ich zeige sie nicht an.
Wie Gerrit schon gesagt hat: die beiden Jumper TX und RX ziehen, an P1.1 und P1.0 sind noch andere Bauteile angeschlossen, diese sollte man tot legen da man sonst ggf. Mist misst ;)

Bei Interesse kann ich auch gerne noch das Excel-Sheet hochladen, möchte euch jetzt aber die Knobelei nicht gleich vollkommen verderben ;)

Der eigentliche C-Code zur Anzeige auf dem Display ist eher unspektakulär und eigentlich nur eine kleine Modifikation des AD-Servo-Beispiels.

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

Re: Hausaufgabe: Thermometer

Post by DL9MWE »

/* Hallo Forum,

wer sich Gedanken über die Lösung der Hausaufgabe macht, und sich deshalb für die NTC-Characteristik interessiert, wird
vielleicht mit den folgenden Widerstandsfaktoren etwas anfangen können.

Aus dem Datenblatt habe ich für unseren 100k-NTC diese Werte entnommen.
Bei 25 Grad hat das Ding einen Widerstand vom 100k. Deswegen ist der Faktor dazu in der Tabelle 1.0
Die Widerstandswerte für andere Temperaturen lassen sich aus den Faktoren der Tabelle ermitteln.
Die Tabelle beginnt bei -55 Grad und geht in 5 Grad-Schritten bis +125 Grad.
*/


// Datenblatt: NTC Epcos K164 100k R/T characteristic 2005
// http://www.epcos.com/inf/50/db/ntc_09/L ... __K164.pdf


// Widerstandsfaktor ( aktueller R durch R bei 25 Grad * 100k )

// 37 Stützstellen; Anfang -55 Grad, Ende 125 Grad, Schrittweite 5 Grad
120.22,
85.48,
61.004,
43.712,
31.459,
22.746,
16.49,
12.071,
8.8455,
6.5446,
4.8852,
3.6781,
2.7944,
2.1391,
1.6507,
1.2823,
1.0000,
0.78393,
0.61822,
0.49053,
0.39116,
0.31371,
0.25338,
0.20565,
0.16762,
0.13726,
0.11279,
0.093053,
0.077177,
0.064263,
0.053678,
0.044996,
0.037917,
0.032063,
0.027161,
0.023079,
0.01968;


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

Re: Hausaufgabe: Thermometer

Post by DL9GFA »

Hallo Temperatur-Messer,

wer sich fragt, wie die Widerstandswerte des NTCs über Temperatur ermittelt werden können, wird früher oder später auf folgende Formel stoßen:

Rntc = R25 * e^(B*(1/T-1/T25))

Rntc - Widerstand bei Temperatur T (in Kelvin)
R25 - Widerstand bei 25°C (hier 100kOhm)
T25 - Temperatur bei 25°C in Kelvin (=273,15+25K)
B = 4600 (Materialparameter unseres NTCs aus Datenblatt)

Die Temperaturen sind grundsätzlich in Kelvin einzusetzen (0K = -273,15°C bzw. 0°C = 273.15K). Man erkennt die Expotentialfunktion und die Tatsache, daß sie durch den Parameter B bestimmt wird. B ist neben dem Temperaturwiderstand von 100kOhm bei 25°C der einzige Parameter, der im Datenblatt für unseren NTC angegeben ist.

Im nächsten Schritt ist nun Untc, also die Spannung zwischen den beiden Widerständen des Spannungsteilers ( Vcc o---100k---Untc---Rntc---| ), als Funktion von Rntc mit Hilfe des Ohmschen Gesetzes zu ermitteln.

Hier dürften sich wieder alle zuhause fühlen ;) .
Der Tipp oben von Marc bzgl. Excel (oder Open Office / Libre Office) ist schon sehr gut!

vy 73 de Gerrit, DL9GFA
Attachments
NTC-Widerstand über Temperatur
NTC-Widerstand über Temperatur
NTC100k_1RntcvsTempC.png (8.81 KiB) Viewed 6408 times
Last edited by DL9GFA on Tue 24. Jul 2012, 21:58, edited 1 time in total.
DL9GFA
Posts: 66
Joined: Thu 12. Apr 2012, 22:30

Re: Hausaufgabe: Thermometer

Post by DL9GFA »

Hallo Matthias,

bist Du Dir sicher, daß Deine angegebenen Werte korrekt sind? Ich habe sie spaßenshalber per copy/paste in meine Simulation übernommen und sehe unter 20°C Abweichungen (siehe Bild anbei, rot - Deine Werte, blau - meine). Hast Du eventuell ein abweichendes B verwendet?

HW?

vy 73 Gerrit, DL9GFA
Attachments
Rot - DL9MWE-Werte, Blau - DL9GFA-Werte
Rot - DL9MWE-Werte, Blau - DL9GFA-Werte
RntcvsTempCD_MWE-GFA.png (9.73 KiB) Viewed 6407 times
DL9MWE
Posts: 39
Joined: Sat 12. May 2012, 09:02

Re: Hausaufgabe: Thermometer

Post by DL9MWE »

Hallo Gerrit,

tja, sicher sein kann man sich nie.
Ich habe die Faktoren RT/R25 aus der Tabelle genommen, und zwar aus der Tabelle 2005, die für unseren NTC maßgeblich ist.
Die Zahlen habe ich dreimal gecheckt, bevor ich sie hier veröffentlicht habe, und keinen Fehler entdeckt.

Inzwischen habe ich daraus die Spannungen ermittelt, die sich am Spannungsteiler (NTC oben) ergeben und die entsprechenden A/D-Werte berechnet.
Bevor ich das aber hier einstelle, sollten wir mal sehen, wo die Abweichung herkommt.
Im Moment messe ich hier im Raum bei 22.1 Grad 1,69V. Das passt. Ok: ist nur ein Wert; und auch in dem Bereich, wo die Kurven übereinstimmen.

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

Re: Hausaufgabe: Thermometer

Post by DL9GFA »

Hallo Matthias,

jetzt habe ich erst gesehen, daß Deine Werte direkt aus dem Datenblatt für das völlig korrekte B kommen. Die Formel oben ist auch als Modell und damit Näherung üblich, aber die Abweichungen sind nach meinem Empfinden zu groß, da sie nicht nur für das gemäßigte Klima in Mitteleuropa verwendet wird ;).

Ich denke noch mal darüber nach und mache vielleicht auch eine Messung (kalibrierter Klimaschrank), um einen Eindruck zu bekommen.

vy 73 Gerrit, DL9GFA

P.S.
Wir haben im Materialsatz auch einen Temperatursensor DS18B20 mit einer Genauigkeit von 0.5°C laut Datenblatt, den man zur Verifikation heranziehen könnte. Marc-Andre schreibt gerade die Interface-SW und Kältespray habe ich noch...
DG9OBU
Posts: 6
Joined: Sun 22. Jul 2012, 17:28

Re: Hausaufgabe: Thermometer

Post by DG9OBU »

Hallo

Ich habe für mein Diagramm ebenfalls die Werte benutzt, die Matthias gepostet hat, das sollte die Kennlinie RT 2005 sein. Ich werde später zum Vergleich auch mal mein Diagramm hochladen, muss es aber erst noch ein bischen aufhübschen, momentan ist es leider nicht sonderlich präsentabel da Achsenbeschriftungen etc. noch fehlen ;)

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

Re: Hausaufgabe: Thermometer

Post by DL9MWE »

Hallo Forum,

die Diskussion über die Genauigkeit der NTC-Werte zeigt, dass der rechnerische Weg über den Parameter B (4600) streckenweise zu anderen Ergebnissen führt, als die Nutzung der Widerstandstabelle, die im EPCOS-Datenbaltt für den NTC zu finden ist.
Da eine einfache? Gleichung lediglich eine formelmäßige Annäherung an die Wirklichkeit darstellt, sind die Unterschiede zu den angegebenen gemessenen Tabellen-Werten wohl erklärlich.
Wir dürfen uns aber nichts vormachen: der NTC, und die Verarbeitung der Daten im MSP430, sind ein recht ungenaues Messmittel für Temperaturen. Der Anzeige von Nachkommastellen würde ich kaum Glauben schenken.

Hier folgt eine Tabelle, die allerlei Werte für unseren 100k-NTC enthält. Basis sind die von EPCOS angegebenen Widerstandsfaktoren.

Der Spannungsteiler ist so ausgeführt, dass der NTC an +3,6V (Vcc) liegt und der 100k-Widerstand an Masse.
Dazwischen liegt der Abgriff für den AD-Wandler.

Aufgelistet sind die Temperaturen in 5 Grad Schritten, der jeweils zugehörige Widerstandsfaktor für den NTC; der R-Wert; die Spannung, die sich am AD-Eingang ergibt; der rechnerische A/D-Wert (also mit Nachkommastellen) und der tatsächliche Integerwert.


Temp. NTC-Faktor R-Wert U-Spannungteiler A/D-Wert AD-Wert_Integer
-55 120,22 12022000 0,0296980696 8,4474509157 8
-50 85,48 8548000 0,0416281221 11,8408880666 12
-45 61,004 6100400 0,0580607703 16,5150635443 17
-40 43,712 4371200 0,0805152979 22,9021291823 23
-35 31,459 3145900 0,1109091469 31,5474906806 32
-30 22,746 2274600 0,1516044808 43,1230523035 43
-25 16,49 1649000 0,2058319039 58,5477415666 59
-20 12,071 1207100 0,2754188662 78,3413663836 78
-15 8,8455 884550 0,3656492814 104,0069067086 104
-10 6,5446 654460 0,4771624738 135,7262147761 136
-5 4,8852 488520 0,6117039353 173,9957860396 174
0 3,6781 367810 0,7695431906 218,8922853295 219
5 2,7944 279440 0,9487666034 269,871389416 270
10 2,1391 213910 1,1468255232 326,2081488325 326
15 1,6507 165070 1,3581318142 386,3130493832 386
20 1,2823 128230 1,5773561758 448,6702011129 449
25 1 100000 1,8 512 512
30 0,78393 78393 2,018016402 574,0135543435 574
35 0,61822 61822 2,224666609 632,7940576683 633
40 0,49053 49053 2,4152482674 687,0039516145 687
45 0,39116 39116 2,587768481 736,0763679232 736
50 0,31371 31371 2,7403308188 779,471877355 779
55 0,25338 25338 2,8722334807 816,9908567234 817
60 0,20565 20565 2,9859411935 849,3343839423 849
65 0,16762 16762 3,083194875 876,9976533461 877
70 0,13726 13726 3,1655030512 900,4097567838 900
75 0,11279 11279 3,2351117462 920,2095633498 920
80 0,093053 9305,3 3,2935273953 936,8255702148 937
85 0,077177 7717,7 3,3420691307 950,6329971769 951
90 0,064263 6426,3 3,3826225285 962,1681858714 962
95 0,053678 5367,8 3,4166035544 971,8338999201 972
100 0,044996 4499,6 3,4449892631 979,9080570643 980
105 0,037917 3791,7 3,4684854377 986,5914133789 987
110 0,032063 3206,3 3,4881591531 992,1874924302 992
115 0,027161 2716,1 3,5048059652 996,9225856511 997
120 0,023079 2307,9 3,5187898491 1000,9002237364 1001
125 0,01968 1968 3,5305193786 1004,2366232544 1004


vy 73 de Matthias, DL9MWE
Post Reply