Hallo,
ich möchte gerne mit einem AVR eine Wassertemperatur im Bereich von
30-45°C mit einer Auflösung und Genauigkeit von 0,25°C messen.
Ich habe folgende Ideen.
1. Temperatur über einen PT100 und OPVs entsprechend skalieren
2. Temperatur über einen NTC und Linearisierung dann in Software.
3. Temperatur/Strom Wandler
Das Ganze soll mit einem 8-Bit AVR laufen. Bei 1. habe ich das Problem
der verhältnismäßig hohen Kosten und Bauteilaufwand. 2. Scheint die
Richtige Wahl. 3. Kämpft mit bauteilbedingten Offsetströmen.
Habt ihr noch eine andere Idee die obige Problemstellung
günstig,effizient und platzsparend zu lösen?
Gruß
Knut
Auch sehr nett. Was spricht denn gegen einen NTC und softwaremäßiger
Linearisierung? Ist günstiger und die Genauigkeit sollte auch möglich
sein, oder?
Gruß
Knut
Knut schrieb:> Was spricht denn gegen einen NTC und softwaremäßiger> Linearisierung? Ist günstiger und die Genauigkeit sollte auch möglich> sein, oder?
Wie sagte Ben Stiler in "Starsky und Hutch"?
Tu es!
Es spricht nichts dagegen. Allerdings spart man sich bei der Version mit
dem DS18B20 die ADC-Geschichten und sämtlich analogen Fehler, die bei
der Übertragung auftreten können.
Ein NTC hat einen Temperaturkoeffizienten von etwa -4..-5% je Grad,
bringt also in einem Spannungsteiler, am besten mit U/2 in der Mitte des
Messbereichs, deutliche Spannungsänderung. 0,1Grad Auflösung dürfte da
gut zu machen sein.
Es gibt auch die KTY...-Typen, Siliziumsensoren mit positivem TK im
Bereich zwischen 1,5 und 2% je Grad, dafür sind sie etwas linearer im
Verhalten, lassen sich also leichter linearisieren, per Tabelle oder per
Rechnung.
PT100/Pt1000 bringen größere Genauigkeit (0,5 oder gar 0,3 Grad bei
Lieferung, besser als 0,1 Grad nach Kalibrierung). Dafür ist aber der
schaltungstechnische Aufwand recht hoch.
Fertige Mess-IC's bieten sich am Mikrokontroller an, aber dann liegt der
Aufwand beim Programmieren. Einen DS18B20 zum Laufen zubringen ist nicht
ganz ohne, wie die Beiträge hier im Forum zeigen.
Übrigens, im genannten Temperaturbereich sind die elektronischen
Fieberthermometer recht präzise Thermometer. Da muss man schon hohe
Klimmzüge machen, um gleiche Genauigkeit/Auflösung zu erreichen.
Peter R. schrieb:> Ein NTC hat einen Temperaturkoeffizienten von etwa -4..-5% je Grad,> bringt also in einem Spannungsteiler, am besten mit U/2 in der Mitte des> Messbereichs, deutliche Spannungsänderung. 0,1Grad Auflösung dürfte da> gut zu machen sein.
Ich denke auch. So werd ich es auch machen, mal gucken was bei raus
kommt.
> Übrigens, im genannten Temperaturbereich sind die elektronischen> Fieberthermometer recht präzise Vergleichsthermometer.
Ja, stimmt. Gut Idee!
Für weitere Tips bin ich dennoch dankbar
Knut
Knut schrieb:> Auch sehr nett. Was spricht denn gegen einen NTC und softwaremäßiger> Linearisierung? Ist günstiger und die Genauigkeit sollte auch möglich> sein, oder?
In dem kleinen Temperaturbereich kommt man noch ohne Linearisierung
mittels 2-Punkt Kalibrierung auf ca 0.1 Grad Linearitätsfehler.
Entscheident ist der richtige Pull-up-Widerstand (etwa
Meßbereichsmitte). Die Auflösung ist mit 10-Bit A/D-Wandler auch besser
als 0.1 Kelvin.
Kalibrieren muß man ob PT100 oder NTC sowieso. Das entfällt nur wenn man
kalibrierte Sensoren wie den DS18S20 verwendet.
Peter R. schrieb:> Übrigens, im genannten Temperaturbereich sind die elektronischen> Fieberthermometer recht präzise Thermometer.
Den dazu passenden NTC mit enger Toleranz gibts bei Conrad.
Gruß Anja
Da das Gerät in größeren Stückzahlen gebaut werden soll, möchte ich
ungern jedes Gerät einzeln kalibrieren. Da sollte ich mit einem NTC mit
geringer Toleranz doch drumm herum kommen oder etwa nicht? Ich möchte
halt nur ungern dieses IC benutzen, ist etwas teuer.
Knut
Knut schrieb:> Da sollte ich mit einem NTC mit> geringer Toleranz doch drumm herum kommen oder etwa nicht?
Dann rechne mal die benötigte Toleranz für den NTC und den Pull-Up aus
um auf 0,25 Grad unter Worst Case Bedingungen einschließlich Alterung zu
kommen.
Gruß Anja
Eine Genauigkeit von 0.25 °C mit einem z. B. KTY-10 oder vergleichbaren
(= billigen) Sensor ohne Kalibrierung zu erreichen ist völlig utopisch.
Riskier doch mal einen Blick in die einschlägigen Datenblätter. Das
Messen von Temperaturen ist nämlich prinzipiell eine ziemlich diffizile
Angelegenheit, ABER zum großen Glück gibt es heute ICs wie den DS18S20
oder den LM75, die Genauigkeiten um (pauschal) 0.5 °C ohne
Kalibrierung garantieren. Wenn Du ganz sicher bist, dass es noch
genauer sein muss, fällt das bereits unter Temperaturpräzisionsmessung.
Ich würde mir gut überlegen, ob ein paar Euros für einen ordentlichen
Chip hier nicht gut investiert sind.
Kauf Dir einen NTC und messe seinen Widerstand in der Mitte des
Messbereichs z.B.bei 32 Grad. Mit diesem Wert wähle dann das R des
Spannungsteilers. Da brauchts dann eigentlich keinen exakten Wert für
den NTC.
Bei hohem Widerstandswert des NTC kann man dann sogar mit VCC als
"Referenzspannung" arbeiten, also ratiometrisch messen.
Die exakten Werte für die Linearisierung/ Kalibrierung kann man dann
mit einer Messreihe mittels Fieberthermometer erstellen.
Übrigens: ich glaube fast, ein komplettes Fieberthermometer wird
billiger sein, als ein extra gekaufter NTC enger Toleranz. (Also:
Schlachtfest!)
Ok, ich werde den DS18B20+ nehmen. Jetzt stellt sich mir nur die Frage,
wie ich meine Platine sinnvoll mit Energie versorgen kann. Gedacht ist
eine austauschbare Batterie/ Akku. Aber wie sinnvoll austauschbar
machen, wenn die komplette Schaltung in eine Kugel aus Gießharz
eingegossen wird (Sensoren natürlich nicht). Entweder beim Design der
Kugel eine Öffnung mit vorsehen, durch die man die Batterie tauschen
kann, oder einen Ladeanschluss nach "Außen" führen um ein Nachladen zu
ermöglichen. Die Anschlüsse dann über eine Diode abkoppeln, sodass die
Schaltung sich nicht über die nassen Kontakte entladen kann.
Jemand eine Idee?
Knut