Autor |
NTC mit Mikrokontroller auswerten (in engem Temperaturintervall) |
|
|
|
|
BID = 468340
Lupin III. Schriftsteller
Beiträge: 616 Wohnort: Salzburg
|
|
Hallo!
Ich möchte mit einem NTC den Temperaturbereich zwischen 15 und 35°C überwachen (hat übrigens nix mit PC-Modding zu tun, auch wenn der Temperaturbereich passen würde ;-). Werte darüber oder darunter sind mir eigentlich egal, der Bereich sollte aber in engen Grenzen anpassbar sein. Der Wert soll mit dem ADC eines atMega geausgewertet werden und dabei möchte ich möglichst den ganzen Bereich ausnutzen, d.h. bei einer Temperatur an der unteren Grenze sollte möglichst 0 Volt anliegen, bei der oberen Grenze 5 Volt (AVcc). Die Software ist dann kein Problem (deswegen steht das hier auch nicht im Mikrokontrollerforum).
Meine erste Idee war eine Widerstand in Serie mit dem NTC. Aber der Wert des NTC ändert sich gerade mal um 20% innerhalb des Temperatur-Intervalls. Ich werde also Werte zwischen 2 und 3 Volt sehen, wenn ich den Widerstand so dimensioniere wie den NTC.
Wie bekomme ich eine Spannung, die den Intervall von 0 bis 5 Volt ausnützt (Linearität ist nicht ganz so wichtig)? |
|
BID = 468341
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
|
Zitat :
| Aber der Wert des NTC ändert sich gerade mal um 20% innerhalb des Temperatur-Intervalls. Ich werde also Werte zwischen 2 und 3 Volt sehen, | Das ist doch eine Menge!
Andere Temperatursensoren liefern viel geringere Ausgangssignale.
Bei einem 10Bit-ADC mit 5V Referenzspannung (kann man ja auch kleiner machen!) wäre das 1/5 des Messbereichs also 200 Digits.
Für den beabsichtigten Temperatzurbereich entspräche das einer Auflösung von 1/10 °C.
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten ! |
|
BID = 468416
Lupin III. Schriftsteller
Beiträge: 616 Wohnort: Salzburg
|
Ja, aber die 10-Bit-Werte sind etwas lästig zu handhaben, besonders da die Grenzen irgendwelchen 10 Bits entsprechen. Außerdem muss die Differenz dann auch noch irgendwie skaliert werden, da der Intervall sicher kein 2^n Vielfaches von 256 breit ist. Hätte ich Werte zwischen 0 und 5 V könnte ich einfach die 8 MSBs des ADC nehmen und wäre fertig.
Klar, man spart sich Bauteile, wenn man das alles in Software macht. Aber heben wir das mal auf ein hypothetisches Level (kann ja sein, dass ich irgendwann mal über einen so kleinen Spannungsunterschied stolpere): was ist, wenn der Bereich nicht ausreichen würde? Was wäre dann eine typische Messschaltung?
|
BID = 468417
Kleinspannung Urgestein
Beiträge: 13359 Wohnort: Tal der Ahnungslosen
|
Zitat :
Lupin III. hat am 1 Nov 2007 13:48 geschrieben :
|
Was wäre dann eine typische Messschaltung?
|
Irgendwo hab ich mal was gesehen,da haben die mit einem OPV das Signal in den "richtigen" Bereich verstärkt.
_________________
Manche Männer bemühen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitätstheorie.
(Albert Einstein)
|
BID = 468427
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
Zitat :
| die 10-Bit-Werte sind etwas lästig zu handhaben |
Dann rechne doch mit 16Bit.
Zitat :
| Außerdem muss die Differenz dann auch noch irgendwie skaliert werden |
Das wirst du sowieso müssen.
Wenn man den Bereich hardwaremäßig anpassen will, nimmt man einen Operationsverstärker. Dann ist es auch zweckmäßiger PTCs (KTY...) zu verwenden, da diese fast gerade Kennlinie haben. Der Tk ist da zwar kleiner, aber das kann der Opamp leicht ausgleichen.
Die Problematik bei der Verwendung eines Opamp ist, dass man fast immer eine negative Versorgung oder ein kompliziertes Widerstandsnetzwerk für die Nullpunktsverschiebung braucht.
Anstatt mich bei der Dimensionierung dieses Vorverstärkers totzurechnen, würde ich lieber die paar Softwarebefehle nehmen, sofern die Auflösung reicht.
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !
|
BID = 468657
Rafikus Inventar
Beiträge: 4150
|
Hallo,
und wenn Du eine Hardware-Lösung hast, was ist dann, wenn das Ganze mal wieder abgeglichen werden müßte? Trimmer vorsehen und dann munter losdrehen?
Wenn unbedingt ein größerer Signalhub gewünscht wird, würde ich aber trotzdem auf die 0,0 Volt am Anfang verzichten und mit nur einer Versorgunsspannung für den OP arbeiten. Dann aber den passenden Typ auswählen, nicht daß Du OP-Rauschen als Temperatur interpretierst.
Du schreibst doch : Die Software ist dann kein Problem.
Gruß,
|
BID = 468947
berufsbastler Schriftsteller
Beiträge: 615
|
Du kannst doch schon mal bei dem Atmel deine Referenz nur mit 3V füttern.
Ich denke auch, dass du mit nem OP am besten bedient bist.
Oder du beschränkst dich auf die 3V und kannst 1/3 des ADC-Bereichs ausnutzen.
|
BID = 469129
Lupin III. Schriftsteller
Beiträge: 616 Wohnort: Salzburg
|
Danke für die Antworten.
Ich habe jetzt gerade das gemacht, was Perl mit "kompliziertem Widerstandsnetzwerk" und "totrechnen bei der Dimensionierung" gemeint hat. Aber ich möchte sowieso was lernen und statt so wie viele andere Sudokus zu lösen, habe ich halt ein paar Formeln durchgerechnet ;-). Und so kompliziert ist es doch nicht.
Ich werde es mal mit einer Wheatstonebrücke und Opamp probieren. Scheint so als könnte ich damit am besten das erreichen, was ich will. Beim Spannungsteiler mit dem NTC sollte für maximale Änderung der zweite Widerstand so groß sein wie der Wert des NTCs in der Mitte des Temperaturintervalls. Der zweite Spannungsteiler ist ein Poti mit dem man dann den Nullpunkt auf ein Ende des Temperaturintervalls einstellen kann. Mit einem zweiten Poti ändere ich die Verstärkung des Opamps so, dass am anderen Intervallende der maximale Wert herauskommt.
Drei Widerstände hätte ich sowieso gebraucht, wenn ich eine zweite Referenzspannung verwenden würde. Die zwei Potis kann ich wahrscheinlich auch durch Widerstände ersetzen, wenn ich mal die richtigen Werte mit den Potis gefunden habe (bzw. eigentlich habe ich die Werte schon berechnet und die scheinen sich mit den Potis zum Glück zu bestätigen). Einzig allein der Opamp ist etwas "aufwändig".
Und das macht in der Tat Probleme. Ich habe in meinem ganzen (zugegebenermaßen nicht unbedingt best sortiertem) Fundus keinen einzigen Rail-to-rail-Opamp. Elektronik-Apotheker gibt's keinen in der Nähe, deswegen stehe ich wieder vor dem leidigen Thema, wo ich sowas herbekomme ohne vom Mindermengenzuschlag erschlagen zu werden. Aber das ist eine andere Geschichte.
|
BID = 474750
Lupin III. Schriftsteller
Beiträge: 616 Wohnort: Salzburg
|
So, Dank einer Sammelbestellung mit einem Bekannten bin ich jetzt doch auf die 150€ für Reichelt gekommen (auf die noch saftige 35€ Versandgebühren für ca. 1kg draufgeschlagen wurden). Ich habe jetzt mit einem TS912 (war der billigste Rail-to-rail-Opamp, den ich gefunden habe) die Schaltung unten aufgebaut.
Da möglicherweise auch Leute mitlesen oder das später mal finden, die das zum ersten Mal sehen:
Der linke Teil nennt sich Wheatstonebrücke (nicht so gut zu erkennen, weil zwei Widerstände im Poti R3 zusammengefasst sind). Die Differenz der beiden Spannungsteiler, einmal NTC + fester Widerstand, einem Poti R3 mit Mittelanzapfung wird vom Opamp verstärkt und auf einen Wert zwischen beinahe 0 und 5V gebracht (deswegen rail-to-rail). Mit R3 stellt man den unteren Punkt ein, mit R4 den oberen.
Das schwierigste ist übrigens den NTC auf die gewünschte Temperatur (z. B. 15 und 35° C) zu bringen und dann dort zu halten, um die Potis entsprechend einstellen zu können. Da weiß ich ehrlich gesagt noch nicht wie ich tue. Das hat aber nix mit dem Aufbau ansich zu tun, sondern wäre auch bei der Software-Methode das gleiche Problem.
PS: da ich den zweiten Opamp im TS912 sowieso brauche, habe ich mich für die "Hardware-Skalierung" entschieden. Sonst wäre das wahrscheinlich tatsächlich etwas aufwändig und in Software allein auch zu lösen (probiert habe ich in der Hinsicht aber nichts).
|
BID = 474873
photonic Schreibmaschine
Beiträge: 1301 Wohnort: Zürich, Schweiz
|
Zitat :
| Das schwierigste ist übrigens den NTC auf die gewünschte Temperatur (z. B. 15 und 35° C) zu bringen und dann dort zu halten, um die Potis entsprechend einstellen zu können. Da weiß ich ehrlich gesagt noch nicht wie ich tue. |
Das würde ich mit einer Thermoskanne voll Wasser der gewünschten Temperatur machen, in die der NTC eintaucht. Das hält die Temperatur sehr schön stabil. Die Temperatur misst du mit einem genauen Thermometer und kannst sie durch zugeben von kaltem oder warmem Wasser präzise einstellen (gut schütteln nicht vergessen).
|
BID = 475039
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
Zitat : Lupin III. hat am 4 Nov 2007 01:31 geschrieben :
|
...Ich habe jetzt gerade das gemacht, was Perl mit "kompliziertem Widerstandsnetzwerk" und "totrechnen bei der Dimensionierung" gemeint hat. Aber ich möchte sowieso was lernen und statt so wie viele andere Sudokus zu lösen, habe ich halt ein paar Formeln durchgerechnet ;-). Und so kompliziert ist es doch nicht. |
und am 22.11.:
Zitat :
| Das schwierigste ist übrigens den NTC auf die gewünschte Temperatur (z. B. 15 und 35° C) zu bringen und dann dort zu halten, um die Potis entsprechend einstellen zu können. Da weiß ich ehrlich gesagt noch nicht wie ich tue. |
Ah ja, so ändern sich die Zeiten.
Man muss nicht unbedingt selber messen, sondern kann ganz gut die Datenblätter der Hersteller verwenden, aber wenn man die wackeligen Potis gegen Festwiderstände ersetzt und auch noch käuflich erhältliche Widerstandswerte einsetzen möchte, ist vielleicht doch ein wenig Gehirnschmalz erforderlich.
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !
|
BID = 475094
Lupin III. Schriftsteller
Beiträge: 616 Wohnort: Salzburg
|
Das Rechnen hat mir in der Hinsicht geholfen, dass ich die Größenordnung/das Verhältnis der Widerstände rausgefunden habe. Ich wusste nicht, bei welchen Werten der Wheatstonbrücke eine Änderung des NTCs die größte Änderung der Spannungsdifferenz zur Folge hat (möchte ich ja für möglichst hohe Auflösung der Messwerte). Wenn ich alles richtig gemacht habe, weiß ich's jetzt und es scheint zu klappen.
Datenblätter habe ich zu den NTCs leider nicht, da ich da ca. 100 Stück billigst bei Ebay für 2-3 Euro gekauft habe. Insbesondere die Form ist praktisch: es sind nicht diese typischen Draht-links-Draht-rechts-NTCs. Beide Anschlüsse sind an der Unterseite des Plättchens (sehen aus wie kleine Schwammerl, wenn sie im Breadboard stecken). Dadurch kann man sie super an flachen Oberflächen mit möglichst großem Flächenkontakt anbringen. Für genauere Sachen hätte ich sicher nur Teile mit verfügbarem Datenblatt gekauft, aber für mich reicht bei den meisten Sachen (Sensoren für "Spielerein") 10% Genauigkeit. Die hohe Auflösung möchte ich vorallem wegen der Kontinuität. Wenn das mit der Thermoskann funktioniert nehme ich mir vielleicht mal selber eine Kennlinie auf.
|
BID = 475106
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
Du kannst natürlich eine Kennlinie aufnehmen, aber es reicht auch den Widerstand bei zwei genau bekannten Temperaturen zu messen.
Dafür bietet sich zum einen eine Eis-Wasser-Mischung (idealerweise auch das Eis aus entionisiertem Wasser machen) an, die ziemlich genau 0°C hält und zum anderen ein gut handwarmes Wasser, dessen genaue Temperatur man mit einem Fieberthermometer misst.
Wenn das Wasser wirklich sauber ist, kann man evtl. sogar auf elektrische Isolation verzichten, denn reines Wasser leitet sehr schlecht.
Allerdings reicht schon das Salz in einem Fingerabdruck damit sich das gravierend ändert.
Das warme Wasser füllt man am besten in eine Thermosflasche, damit die Temperatur während der Messung möglichst stabil bleibt.
Der Widerstand des NTC bei einer bestimmten Temperatur berechnet sich nach der Formel
RT= A * eB/T
wobei RT der Widerstand in Ohm bei der absoluten Temperatur T in K,
A eine Formkonstante in Ohm,
und B die Regelkonstante in K
ist.
Durch Logarithmieren der obigen Gleichung und Einsetzen der Messwerte kann man leicht die beiden Konstanten A und B bestimmen.Typische Werte für B liegen zwischen 2000K und 6000K.
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !
|