Navigation
Ein Funk-Thermometer:

Im Kapitel "A/D-Wandler" habe ich es ja schon angekündigt: Man kann mit dem MSP430 recht einfach ein Thermometer aufbauen. Der Mikrocontroller verfügt nämlich über eine eingebaute Thermo-Diode, deren Wert man komfortabel über den A/D-Wandler-Kanal Nummer 10 auslesen kann. Der Nachteil dieses integrierten Temperatur-Sensors ist jedoch seine Ungenauigkeit: Da er ja fest im Chip eingebaut ist, erwärmt er sich genauso wie der MSP430 selber. Und wenn der MSP430 viel rechnet, wird er zwangsläufig wärmer, wodurch sich die die Diode natürlich mit erwärmt. Dass dies für eine zuverlässige Messung der Raumtemperatur natürlich unsinnig ist, muss ich ja nicht weiter erläutern ...

Viel sinnvoller wäre es da schon, an einen der 8 A/D-Wandler-Kanäle einen NTC oder PTC anzuschließen. NTC bzw. PTC bedeutet positive temperature coefficient bzw. negative temperature coefficient, also ein Widerstand, dessen Wert sich mit der Temperatur nach oben oder unten ändert. Ich benutze in meiner Schaltung einen NTC, da NTCs im allgemeinen eine linearere Kennlinie aufweisen als PTCs. Für noch genauere Messungen bietet es sich aber an, einen PT1000-Temperatursensor zu benutzen. Diese Sensoren sind noch genauer als ein PTC oder NTC, leider aber auch deutlich teurer (unter 5 Euro geht gar nichts -- ein NTC kostet nicht mal 1 Euro). Für Hobbyzwecke sollte also erst mal ein NTC genügen.

Wie wird der Temperatursensor nun am sinnvollsten mit dem MSP430 verschaltet? Nun, hierüber scheiden sich die Geister. Die Anschlussweise ist u.a. mit verantwortlich dafür, wie schwierig es später wird, aus der nicht ganz linearen Kennlinie des NTC die korrekte Temperatur zu ermitteln. Ich habe mich für eine Variante entschieden, die auch in den meisten Datenblättern empfohlen wird: Dem Betrieb des NTC an einer Konstantstromquelle. Woher bekommt man aber am einfachsten eine Konstantstromquelle? Hier gibt es einen einfachen Trick: Der bekannte Feld-Wald-und-Wiesen-Spannungswandler LM317 kann nämlich als Stromquelle "missbraucht" werden. Da er intern so beschaltet ist, dass er zwischen seinen Pins Adj und Out stets eine konstante Referenz-Spannung von 1,25 Volt aufrecht erhalten will, muss man dort lediglich einen 1k-Widerstand anschließen, um einen konstanten Strom von 1,25 mA fließen zu lassen. Das ganze sieht bei mir dann so aus:


Der 56-Ohm-Widerstand zwischen Out und GND hat keine besondere Funktion. Er dient lediglich dazu, dass der LM317 belastet wird. Wie man im Datenblatt nachlesen kann, sollten aus seinem Ausgang nämlich mindestens 10 mA herausfließen, damit er stabil läuft.

Den NTC schließen wir nun an die Konstantstromquelle (gegen GND) an. Die am Widerstand abfallende Spannung ist dann direkt proportional zur Temperatur, da sich ja lediglich der Widerstand ändert, der Strom aber konstant bleibt (Ohm'sches Gesetz). Diese Spannung wird schließlich mit dem A/D-Wandler an Port P6.1 des MSP430 gemessen, in einen entsprechenden Temparturwert umgewandelt und auf dem LCD ausgegeben sowie per Funk an einen PC geschickt. Dort könnte dann eine weitere Datenverarbeitung (Logging etc.) stattfinden. Wie das alles funktioniert, sehen wir auf der nächsten Seite.