Hallo! Ich hab den Microcontroller C8051FX20 von Silabs. Ich mach ne Facharbeit zum Thema "Temperaturmessung mit Microcontroller". Grundsätzlich hab ichs schon fast fertig, ich kann zumindest die Temperatur des auf dem Chip "befindlichen" Sensors am PC ausgeben. Nun zu meinem Problem: Ich will einen zusätzlichen, externen Sensor an einen freien ADC anschließen. Dieser kann Spannungen von 0 bis 2,4 Volt in 12 Bit auslesen. Wie kann ich also einen Sensor, z.B. einen Pt1000, dazu bringen, in diesem vorgefertigten Bereich eine Spannung abzugeben? Wie viel A/mA muss die konstante Stromquelle liefern? Wie schauts aus mit dem Vorwiderstand? Ich sag im Voraus schon mal Danke, mit einigen aufschlussreichen Antworten wär mir sehr geholfen! mfg, Tobi
PT1000 ist allerdings der umständlichste Weg, es sei denn die spezifischen Eigenschaften dieses Sensortyps sind wirklich erforderlich.
Es kann ja auch ein Pt100 sein. Mir gehts ja eigentlich nur prinzipiell darum, wie man in einem vorher definierten Temperaturbereich (z.B. -50 bis 150°C) bewerkstelligt, dass beim µC höchstens 2,4 Volt ankommen.
Ds ist ja der Punkt. PT100/PT1000 sind zwar präzise und für grossen Tempteraturbereich geeignet, aber vergleichweise aufwendig zu nutzen. Halbleitersensoren sind einfacher auszuwerten, weil stärker temperaturabhängig (wenn analog) oder weil sie die Information bereits digital abliefern. Wie üblich sollte also zu allererst ein sauberes Anforderungsprofil definiert werden: welcher Bereich, wie genau, ggf. auch Bauform. Und dann die passende Lösung gefunden werden. Wer Spott ernten will definiert das dann so: möglichst grosser Bereich, so genau wie möglich. Leider kein Witz, so liest man das öfter.
Wenn du es dir einfach machen willst: LM335. Pro K gibt verändert sich die Spannung am Sensor mit ca. 10mV. Das ganze ist relativ linear. Dem LM335 klemmst du mit einem Widerstand gegen 5V. Einfacher kann man die Temperatur mit dem ADC eines µCs nicht erfassen. (Natürlich nur, wenn der Temperaturbereich ausreicht.)
Ok, dann definier ich das mal genauer: Ziel meiner Facharbeit ist, mehrere verschiedene Sensoren (NTC/PTC/PT ...) an je einen ADC anzuschließen, und daraus je eine Temperaturkurve zu erhalten. Die Kurven werden dann bzgl. ihrer Linearität miteinander verglichen. Außerdem stellt sich mein Physik-Lehrer vor, dass zumindest einer der Sensoren gewisse Besonderheiten vorweisen kann, z.B. dass man damit bis zu 1000°C messen kann. Die Genauigkeit ist wieder ein anderes Thema - sie soll eigentlich sogar möglichst abweichend sein, weil dann die einzelnen Kurven viel interessanter werden. Also: Ich brauch an die 2 Sensoren, die im "normalen" Temperaturbereich von -20°C bis 80°C einigermaßen präzise messen können, dürfen aber durchaus sehr verschieden sein. (Mit dem auf dem Chip integrierten Sensor wärens dann 3) Außerdem soll ein Sensor dabei sein, der in einem weitaus höheren Bereich messen kann, sagen wir mal ca 800°C bis 1100°C. Wenn es Sensoren mit noch höherem Bereich gibt (so bis 2200°C), solange sie einigermaßen erschwinglich sind, wärs natürlich optimal, weil man dann z.B. Flammentemperaturen messen könnte. Ich schätz mal, dafür wär ein Thermoelement nötig, da es schon sehr hoch ist. Die Bauweise ist also nur bei dem letzten Sensor wichtig, weil sie eben solche Temperaturen aushalten muss. Ansonsten, einfach ein möglichst großer Bereich, und natürlich so genau wie möglich! (Kleiner Witz am Rande ;))
@ Igor: Danke für deine Antwort! Aber wie darf ich das verstehen, das mit 5V? Ich dachte, es muss eine konstante Stromquelle sein, keine Spannungsquelle?
Der LM335 kann man auch "temperaturabhängige Z-Diode" nennen. Beschaltung: 5V -> Vorwiderstand(2,7k) -> LM335 -> GND Hierbei misst du die Spannung über dem LM335. Die gesamte Beschaltung des Sensor besteht also nur aus einem Widerstand. (+RC-Glied am AD-Wandler) Kosten: 50Cent bei Reichelt.
Aah, Ok, vielen Dank! Ich schau mir mal das Sheet an. Gut, dann hab ich ja schon einen Sensor gefunden! Und wie schauts mit der Vorschaltelektronik von z.B. nem Thermoelement aus? Wird sicher relativ aufwendig sein, oder?
Thermoelemente geben Spannungen im µV-Bereich ab. Da ist die Signalauswertung ungleich aufwändiger. Zudem messen Thermoelemente nur einen Differenzbetrag zu einer Temperatur-Vergleichsstelle. Man braucht also noch einen absoluten Temperatursensor, bzw. ein entsprechendes IC, dass die Vergleichsstelle simuliert. Das ganze ist zu komplex um sowas einzusetzen. Es sei denn, man entwickelt gewerblich Messgeräte. Wenn man Thermoelemente einsetzen will, dann kauft man die Sensoren mit passendem Messgerät. Eine weitere Möglichkeit wäre - wie oben schon geschrieben wurde - einen digitalen Temperatursensor einzusetzen. Das sind ICs, die die Temperatur messen und den Wert über eine digitale Schnittstelle (SPI, I²C) z.B. zu einem µC senden können. Die Teile sind teurer größer als einfache zweipol-Sensoren. Dafür beinhalten sie alles, um die Temperatur zu ermitteln. Der µC muss dann nicht mehr groß rumrechnen.
Ah, hab mir schon gedacht dass das zu aufwendig is. Digitale Sensoren- auch ne Möglichkeit. Aber dann muss ich mich ja wieder mit anderen Schnittstellen auseinandersetzen - Oh Gott! Naja mal schaun. Und wie siehts aus mit den einfachen PTCs? Oder doch dem Pt100? Kostet ja alles nicht die Welt. Und eine Konstantstromquelle krieg ich mit Sicherheit auch hin. Also daran solls nicht scheitern. Es soll ja auch eine Facharbeit werdn, ich will kein Fertigteil kaufen, das die Temperatur anzeigt. Ich mein, wenn mich dann in der mündlichen Prüfung der Lehrer fragt, worums eigentlich geht, hab ich dann kein Plan. Dazu kommt, dass mich die Materie auch wirklich interessiert. Ich glaub auch, dass ich schon einiges geschafft hab, indem ich den µC zum Laufen gekriegt hab. Aber das reicht eben noch ned ganz. Naja, aber genug gelabert, nun zu meiner Frage: Wie würde beispielsweise eine Beschaltung eines PTC/NTC aussehen? (Vor allem brauch ich auch sowas wie Formeln, welche die einzelnen Widerstandswerte zur Linearisierung usw bestimmen, am besten in allgemeiner Form)
Schau dich mal bei sprut.de um. Auch wer PICs nicht mag lernt da was (http://sprut.de/electronic/temeratur/temp.htm).
Formeln von nichtlinearen Sensoren sind in deren Datenblättern angegeben. PT100 ist linear, jedoch ist der Temperaturkoeffizient klein (wenig Widerstandsänderung bei einer Temperaturänderung) Nimm lieber Halbleiterwiderstände wie KTY11-xxx. Die funktionieren ähnlich, der Temperaturbereich ist eingeschränkt (meist -50..150°C). Speziell bei den KTY ist im Datenblatt ne Formel, mit der man die Temperatur anhand des aktuellen Widerstandswertes ausrechnen kann. Diese Gleichung ist für einen µC schon relativ aufwändig zu berechen - aber es geht. Beschaltung: Du musst einfach den Widerstandswert bestimmen. Entweder über eine Konstantstromquelle den Sensor bestromen und die Spannung ablesen, oder einen Vorwiderstand vor den Sensor. Dann die Spannung über dem Sensor messen und den Widerstandswert wie bei einem normalen Spannungsteiler ausrechnen. Mit Konstantstromquelle ists wohl einfacher. PT100, PT1000 werden genauso ausgewertet. Durch den geringen Temperaturkoeffizient bekommst du mit deinem ADC im µC jedoch eine Temperatur mit weniger Auflösung hin.
Aha, Ok. @ Andreas: Sehr interessante Seite, hab schon viel davon gelesen! Aber zu Temperaturmessung hab ich noch nix gesehn, aber ich schau noch mal. @ Igor: Es ist ned mal nötig, die Formel vom µC ausrechnen zzu lassen, das kann ich in mein PC-Programm auch einbaun. Aber woher weiß ich, welchen Wert die konstante Stromquelle haben muss? Muss ich einfach schaun, meinetwegen hat der PTC nen Widerstand von 120 Ohm, bei 150°C (der Maximalwert, den ich messen will). Dann ohmsches Gesetz, 2,4 Volt als Maximum des µC eingesetzt, und gut is? Dann hätt ich nen Strom von 20mA. Is das korrekt so? oder muss ich vielleicht mehr Luft lassen? Also statt 2,4 Volt nur 2 Volt? Wie gesagt ich kenn mich ned aus ;) Zum Thema pt100: Wie wärs mit nem Operationsverstärker? Oder ändert das auch nix?
Das Problem ist folgendes: Durch den Konstantstrom erwärmst du den Sensor. P = I² * R. Du bekommst also einen Fehler rein. Von dem her ist der Strom möglichst klein zu halten. Ein kleiner Strom führt aber nur zu einer kleinen Spannungsänderung bei der Temperaturänderung. Man muss sich also für einen Kompromiss entscheiden. Die Eigenerwärmung kannst du aber auch eventuell wieder im Programm rausrechnen. Ich verstehe dein Rechnungsbeispiel nicht ganz. Neus Beispiel: Konstantstrom = 2mA. Temperatur = x°C Am Sensor fällt eine Spannung ab (z.B. 1,3V), welche du mit dem ADC misst. Durch R = U/I = 1,3V/0,002A = 650 Ohm. kannst du den Widerstandswert ausrechnen. Diesen Widerstandswert setzt du nun in die Gleichung aus dem Datenblatt ein und bekommst dadurch eine Temperatur. Bei einem linearen Sensor wie PT100 ist die Gleichung in der ersten Näherung nur eine Geradengleichung - also relativ trivial. Wenn du den Temperaturwert am PC berechnen kannst, dann ist die Gleichung kein Problem. Nichtlineare Sensoren kannst dann einfach einsetzen. Früher - bevor die digitale Technik so weit etabliert und günstig war wie heute - galt ja: Alles was nicht linear ist, ist unbrauchbar. Heute ist das kein großen Problem mehr. Zum OPV: Natürlich kannst du die Spannung über dem Sensor verstärken. Dadurch bekommst du bei einer Temperaturänderung eine höhere Spannungsänderung, ABER: Bedenke, dass dein ADC nur bis zu einer bestimmten Spannung messen kann. Das bringt meist nichts. Zudem bekommt man dadurch noch Fehler rein (Offset-Spannung vom OPV, Bauteiltoleranzenj...)
Danke für deine Antwort! Zu deinem Beispiel: Was ich vorher gemeint hab, war, dass es doch eigentlich am Besten wär, wenn man die Konstantstromquelle dem Messbereich des µC anpasst. Ich mein, wenn er bei 0,2mA 2V liefert, und das bei Raumtemperatur, kann ich vielleicht bloß bis 40° messen, und dann is schon 2,4V erreicht. Natürlich bloß bei einem Heißleiter. Beim Kaltleiter wärs genau anders rum. Man müsste in dem Fall also einen kleineren Strom liefern. Deswegen vorhin meine Rechnung, die eben die Stromquelle genau an die maximale Spannung anpasst. Eine ganz andre Idee (Die wahrscheinlich bescheuert is, aber nen Versuch wärs wert) Falls ich mein erstes Problem gelöst hab, also nen Widerstandsthermometer auslesen kann, kann ich doch bezüglich Thermoelement folgendes machen: Ich nehm die 2 Drähte, die als Thermoelement fungieren, und füg sie zusammen. Dann bau ich beide Enden in sowas wie nen Thermoblock ein, der ne Heizung hat (blöde Idee, ich weiß). Dessen Temperatur überwach ich über nen PTC oder ähnliches, und lass den Microcontroller das ganze auf z.B. 50°C regeln. Die Heizung is natürlich übern Relais mit dem µC verbunden, der z.B. jede Sekunde die Temperatur des Thermoblocks abfragt. Somit hätt ich die Referenztemperatur am anderen Ende der Drähte, und könnte dann die Spannung verstärken. Hab ja immerhin 7 ADCs auf dam µC. Aber egal, das is jetz ned so dringend. Auf jeden Fall mal Danke an alle, ihr habt mir sehr geholfen!
Tobi D wrote: > Ich nehm die 2 Drähte, die als Thermoelement fungieren, und füg sie > zusammen. Dann bau ich beide Enden in sowas wie nen Thermoblock ein, der > ne Heizung hat (blöde Idee, ich weiß). Dessen Temperatur überwach ich > über nen PTC oder ähnliches, und lass den Microcontroller das ganze auf > z.B. 50°C regeln. Die Heizung is natürlich übern Relais mit dem µC > verbunden, der z.B. jede Sekunde die Temperatur des Thermoblocks > abfragt. Wenn du die Temperatur des Blocks sowieso misst, braucht's die Heizung nicht mehr... Absolute Thermoelement-Spannung = Thermoelement-Spannung der Kaltstellte (NTC, PTC, PT100, etc.) + Thermoelement-Spannung d.h. einmal Temperatur in Spannung umrechnen, beide Spannungen addieren, und dann das ganze in die Temperatur umrechnen ansonsten gibt's falsche Ergebnisse http://srdata.nist.gov/its90/menu/menu.html > Somit hätt ich die Referenztemperatur am anderen Ende der Drähte, und > könnte dann die Spannung verstärken. Hab ja immerhin 7 ADCs auf dam µC. > Aber egal, das is jetz ned so dringend. > > Auf jeden Fall mal Danke an alle, ihr habt mir sehr geholfen! Wenn schon SiLabs Controller vorhanden sind, warum dann nicht den C8051F350, dann hätte man z.B. die Möglichkeit direkt PT100/1000 (interne Stromquelle) und Thermoelemente anzuschließen (für negative Temperaturdifferenzen braucht's noch passende Offsets) Mögliche Eingangsbeschaltung gibt's z.B. hier http://focus.ti.com/lit/an/sbaa134/sbaa134.pdf
"Wenn du die Temperatur des Blocks sowieso misst, braucht's die Heizung nicht mehr... Absolute Thermoelement-Spannung = Thermoelement-Spannung der Kaltstellte (NTC, PTC, PT100, etc.) + Thermoelement-Spannung" stimmt, da hätt ich selber draufkommen können! Was könnte man eigentlich hernehmen als Block? Metall schließt sich ja aus. "Wenn schon SiLabs Controller vorhanden sind, warum dann nicht den C8051F350, dann hätte man z.B. die Möglichkeit direkt PT100/1000 (interne Stromquelle) und Thermoelemente anzuschließen (für negative Temperaturdifferenzen braucht's noch passende Offsets) Mögliche Eingangsbeschaltung gibt's z.B. hier" Eine Auswahlmöglichkeit hatte ich ned; ich war bei der FH, und hab mir vom E-Technik-Prof den µC besorgt. Er hat einfach bei Silabs im Amiland angerufen, und gefragt, ob die mir ned kostenlos so nen 100€ Controller zur Verfügung stellen können, für ne Facharbeit... war gar kein Problem!
Tobi D wrote: > "Wenn du die Temperatur des Blocks sowieso misst, braucht's die Heizung > nicht mehr... > Absolute Thermoelement-Spannung = > Thermoelement-Spannung der Kaltstellte (NTC, PTC, PT100, etc.) + > Thermoelement-Spannung" > > stimmt, da hätt ich selber draufkommen können! > Was könnte man eigentlich hernehmen als Block? Metall schließt sich ja > aus. Wenn nicht absolut höchste Genauigkeit gefordert ist, kann man z.B. sowas nehmen http://omega.de/produkt/t2/pcc.html für Platinenmontage mit Halterung für einen Temperatursensor oder man nimmt nen Standardsteckverbinder und packt den Kaltstellensensor mit ins Gehäuse (und kann dann das ganze in einen großen Block packen). > "Wenn schon SiLabs Controller vorhanden sind, warum dann nicht den > C8051F350, dann hätte man z.B. die Möglichkeit direkt PT100/1000 > (interne Stromquelle) und Thermoelemente anzuschließen (für negative > Temperaturdifferenzen braucht's noch passende Offsets) > Mögliche Eingangsbeschaltung gibt's z.B. hier" > > Eine Auswahlmöglichkeit hatte ich ned; ich war bei der FH, und hab mir > vom E-Technik-Prof den µC besorgt. Er hat einfach bei Silabs im Amiland > angerufen, und gefragt, ob die mir ned kostenlos so nen 100€ Controller > zur Verfügung stellen können, für ne Facharbeit... war gar kein Problem! Dann bleiben nur externe Schaltungen. Sprich Stromquelle für PT100/1000, Differential/Instrumentation-Amp für das Thermoelement. Andere Möglichkeit fürs Thermoelement: AD595 oder einen einfachen externen ADC http://www.linear.com/pc/downloadDocument.do?navId=H0,C1,C1155,C1001,C1152,P1843,D4458
Also ich habs mal kurz ausgerechnet. Als Beispiel nen Pt100 und 1000 genommen. Ich hab als Maximum 500°C genommen, sowie 2,4V zur Verfügung, auf Seiten des ADC. Dann müsste bei nem Pt100 eine Stomquelle 8,54mA liefern. Theoretisch wär da aber der Pt1000 beser, weil der mit weniger Strom auskommt, um 2,4V zu liefern (Erwärmung): 0,854mA. Ich hab aber keine Ahnung, ob man eine konstante Stromquelle baun kann, die so exakt ist. Geht das? Weil ideal wärs schon, bei -200°C würdn ca 0,15V rauskommen. Insgesamt ne theoretische Auflösung von ca 0,2°C (die aber sinnfrei in extremen Bereichen ist) Und zum Thermoelement: Könntest du mir erklären was ein Differential/Instrumentation-Amp ist? Oder nen Link wos beschrieben ist? (Is es ein Verstärker?)
Tobi D wrote: > Also ich habs mal kurz ausgerechnet. > Als Beispiel nen Pt100 und 1000 genommen. Ich hab als Maximum 500°C > genommen, sowie 2,4V zur Verfügung, auf Seiten des ADC. Dann müsste bei > nem Pt100 eine Stomquelle 8,54mA liefern. Theoretisch wär da aber der > Pt1000 beser, weil der mit weniger Strom auskommt, um 2,4V zu liefern > (Erwärmung): 0,854mA. Ich hab aber keine Ahnung, ob man eine konstante > Stromquelle baun kann, die so exakt ist. Geht das? > Weil ideal wärs schon, bei -200°C würdn ca 0,15V rauskommen. Insgesamt > ne theoretische Auflösung von ca 0,2°C (die aber sinnfrei in extremen > Bereichen ist) Die Stromquelle muss nicht genau sein ;-) Stichwort: Ratiometrische Messung Beitrag "Re: Sehr hoch auflösender PT100 Messverstärker" > > Und zum Thermoelement: Könntest du mir erklären was ein > Differential/Instrumentation-Amp ist? Oder nen Link wos beschrieben ist? > (Is es ein Verstärker?) von Microchip gibt's da ein paar brauchbare AppNotes: RTD http://ww1.microchip.com/downloads/en/AppNotes/00687b.pdf Thermoelement: http://ww1.microchip.com/downloads/en/AppNotes/00684a.pdf
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.