Hallo alle miteinander,
ich beschäftige mich grad mit dem Sensor DS18B20. Ich lese von Maxim
Integrated das Datenblatt durch. ich verstehe einen Teil nicht und habe
gehofft ihr könnt es mir eventuell erklären.
Beim Punkt "Operation—Alarm Signaling" auf der Seite 6 steht:
(Diesen Teil habe ich noch verstanden)
The DS18B20 output temperature data is calibrated in degrees Celsius.
The temperature data is stored as a 16-bit sign-extended two’s
complement number in the temperature register (see Figure 4). The sign
bits (S) indicate if the temperature is positive or negative: for
positive numbers S = 0 and for negative numbers S = 1.
(den unteren Teil habe ich nicht mehr verstanden)
If the DS18B20 is configured for 12-bit resolution, all bits in the
temperature register will contain valid data. For 11-bit resolution, bit
0 is undefined. For 10-bit resolution, bits 1 and 0 are undefined, and
for 9-bit resolution bits 2, 1, and 0 are undefined. Table 1 gives
examples of digital output data and the corresponding temperature
reading for 12-bit resolution conversions.
Entschuldigt ich kann leider die Tabelle nicht einfügen bzw. Anhängen
aber ich habe das Datenblatt anhängen können auf der Seite 6 findet man
die Tebelle.
Also meine Frage ist:
wieso wird bei 11-bit 0 undefiniert, bei 10-Bit 1 und 0 undefiniert und
so weiter worauf kommt das an, wie entscheidet man das?
HM65 schrieb:> Also meine Frage ist:> wieso wird bei 11-bit 0 undefiniert, bei 10-Bit 1 und 0 undefiniert und> so weiter worauf kommt das an, wie entscheidet man das?
Je nachdem, welche Genauigkeit Du eingestellt hast.
Hast Du den Sensor auf 9-Bit konfiguriert, misst er schneller. Du kannst
dann aber nur die oberen 9-Bit verwenden. Alle anderen enthalten
sinnlose Werte, die Du für die Weiterverarbeitung ausmaskieren musst.
Also wenn ich es richtig verstanden habe:
bei 12-bit sind alle daten gültig das man bei 12-bit eine Genauigkeit
von 0,0625°C haben will
bei 11-bit hat man 0 undefiniert da man bei 11-bit eine Temperatur
Genauigkeit von 0,125°C hat
bei 10-bit ist eine Genauigkeit von 0,25°C gegeben dementsprechend sind
0 und 1 undefiniert
und bei 9-bit ist die Messgenauigkeit 0,5°C das heißt 0,1 und 2 müssen
undefiniert sein
aber das gilt nur bei 9-12-bit...
Wenn ich richtig liege; WILL ICH MICH VOM GANZEN HERZEN BEDANKEN!!
vielen Dank für Ihre Hilfe!!
HM65 schrieb:> bei 12-bit sind alle daten gültig das man bei 12-bit eine Genauigkeit> von 0,0625°C haben will
beschäftige Dich mal mit den Begriffen: Genauigkeit und Auflösung
(siehe
https://www.mikrocontroller.net/articles/Aufl%C3%B6sung_und_Genauigkeit)
DS18B20 hat bei 12-bit eine Genauigkeit lt. Datenblatt von +-0,5°C und
eine Auflösung von 0,0625°C
Wolle G. schrieb:> DS18B20 hat bei 12-bit eine Genauigkeit lt. Datenblatt von +-0,5°C und> eine Auflösung von 0,0625°C
Bedeutet das, ich kann mit einen Tempmessgerät von einer Absoluten
Messgenauigkeit von +/+0,03 Grad meinen Sensor Kalibrieren?
Peter_ schrieb:> Bedeutet das, ich kann mit einen Tempmessgerät von einer Absoluten> Messgenauigkeit von +/+0,03 Grad meinen Sensor Kalibrieren?
Du kannst ihn auch mit einem Sensor mit +/-0,01K Genauigkeit
kalibrieren. Egal wie genau deine Kalibrirreferenz auch ist, der Sensor
wird dadurch nicht genauer. Denn in der Genauigkeit stecken auch alle
anderen Fehler drin, welche die Messung beeinflußen, wie Alterung,
Schwankung der Versorgungsspannung, Hysterese des Sensors etc. Viel
besser als die 0,5K vom Hersteller wird man nicht werden. AUFLÖSUNG ist
ein anderes Thema!
Das ist schon verständlich und nicht strittig.
Wenn jetzt eine Temperatur Kurve aufgezeichnet wird und die
Sensortemperatur kalibriert wurde,werden dann die Temperaturschritte von
0,0625 Grad
angezeigt?
Bei 12-bit-Messung: Ja.
Wenn man die äußeren Parameter (Vcc etc., evtl. kein parasite power)
einigermaßen konstant lässt, kann man mit Abgleich schon 0,2°C
Genauigkeit erreichen. Ist halt auch eine Frage des benötigten
Temp-Bereiches.
Peter_ schrieb:> Wenn jetzt eine Temperatur Kurve aufgezeichnet wird und die> Sensortemperatur kalibriert wurde,werden dann die Temperaturschritte von> 0,0625 Grad angezeigt?
Die Auflösung von 0,0625K ist unabhängig von der Kalibrierung. Was auf
der Anzeige erscheint, hängt davon ab, wie die Rohdaten des Sensors
aufbereitet werden. Wahrscheinlich wirst du dich z.B. um ein
überlagertes Rauschen kümmern müssen.
Peter_ schrieb:> Wenn jetzt eine Temperatur Kurve aufgezeichnet wird und die> Sensortemperatur kalibriert wurde,werden dann die Temperaturschritte> von 0,0625 Grad angezeigt?
nicht unbedingt jeder einzelne, es gibt auch noch Linearitätsfehler.
Nicht so sehr vom eigentlichen Sensor, aber der ADC im DS18B20 ist doch
eher auf 1-Wire "optimiert". Selbst einem NTC, aber mit ordentlichem ADC
dahinter, würde ich eher trauen. Ganz abgesehen davon, wer würde bzw.
könnte überhaupt alle 4096 Punkte kalibrieren?
Der DS18B20 dürfte auch so relativ genau sein.
Klar hat der angezeigte Wert eine Genauigkeit von 0,5K, aber die
Wiederholbarkeit scheint wesentlich besser zu sein.
Wir haben welche in Klimakammern und die zeigen über hunderte Messungen
nur eine Abweichung von +/-1 LSB pro Sensor. Die einzelnen Sensoren
unterscheiden sich jedoch voneinander.
D.h. wenn man nur Temperaturveränderungen messen will, dann ist der
schon ziemlich genau.
PS: Bei uns lautet die Vorgabe "auf 1 Grad genau", der DS18B20 erfüllt
diese also ohne irgendwelches Kalibrieren.
Da es mir nicht gelungen ist, zwei Bilder anzuhängen, zunächst Bild 1
Peter_ schrieb:> Wenn jetzt eine Temperatur Kurve aufgezeichnet wird und die> Sensortemperatur kalibriert wurde, werden dann die Temperaturschritte von> 0,0625 Grad angezeigt?
Wie die 0,0625 Grad angezeigt werden, ist bei den oben gezeigten
Abkühlkurven zu erkennen.
Es handelt sich um zwei DS18B20 (+- 0,5K) und um zwei TSiC506 (+-0,1K)
Alle 4 Thermometer wurden zusammen mit Draht zu einem Bündel zusammen
gebunden und in einen Lappen eingewickelt. Bild 2 zeigt einen Ausschnitt
von Bild 1. Hier ist das "Rauschen" des letzten Bit gut zu erkennen.
Hallo, ich möchte gerne ein wenig die Begriffe sortieren. Als Leiter
eines Kalibrierlabores erlaube ich mir das einmal.
1. Der DS18B20 hat bestenfalls eine Auflösung von 0,0625 K. Das sagt
nichts über die Abweichung zu einer Referenz aus. Ich habe mir mal ca.
20 Stück angesehen und die Streuung war schon deutlich.
2. Eine Kalibrierung ist vereinfacht gesagt der Vergleich mit einer
Referenz. Dabei schreibt man die ermittelten Messwerte mit der
zugeordneten Messunsicherheit auf.
- Die Messwerte der Referenz sind mit einer Unsicherheit behaftet.
- Die Messwerte des Kalibriergegenstandes sind ebenfalls mit einer
Unsicherheit behaftet. Wir verwenden den Begriff Unsicherheit und nicht
Genauigkeit oder ähnliches.
- Bei der Kalibrierung hängen das Referenzthermometer und der
Kalibriergegenstand in einem Kalibrierbad. Beide in enger räumlicher
Nähe, aber sie haben keinen Kontakt. Aufgrund der Bauform unserer
Kalibriergegenstände können wir keinen Ausgleichsblock verwenden.
- Wir berechnen die Abweichung zur Referenz und geben für das Delta eine
Unsicherheit an, die 20 mK nicht unterschreiten kann (k=2).
3. Die Bestimmung der Unsicherheit kann aufwändig sein und sehr viele
einzelne Unsicherheitskomponenten aufweisen. Zur Unsicherheit gehört
z.B. auch die Auflösung des Kalibriergegenstandes aber nicht die
Langzeitdrift.
4. Die Ergebnisse der Kalibrierung kann man nutzen, um die Messwerte
unter den gleichen oder ähnlichen Bedingungen wie bei der Kalibrierung
zu korrigieren. Aber eine Korrektur ist wiederum mit Unsicherheiten
verbunden und in der Regel sind die Einsatzbedingungen vollkommen
anders. Das heißt, zur Unsicherheit der Kalibrierung kommt immer noch
eine Unsicherheit für den spezifischen Einsatz. Dass muss der Nutzer
beachten.
5. Bei einer Kalibrierung wird nichts am Kalibriergegenstand
eingestellt, geschraubt oder programmiert; das wäre eine Justierung. Er
bleibt also wie er ist. Sollte aufgrund der Kalibrierung eine mögliche
Justierung durchgeführt werden, erfolgt danach immer eine erneute
Kalibrierung.
6. Ein Thermometer kann also bei 0 °C eine deutliche Abweichung haben,
sagen wir mal 2 K, und kann dennoch kalibriert sein.
Gruß
Holger
Meiner Erfahrung nach ist die Anzeige einer Temperaturentwicklung recht
zuverlässig, auch wenn die absolute Genauigkeit geringer ist. Lies: sehr
geringes Rauschen.
Ich hatte allerdings auch schon vergossene Sensoren erwischt, die mir
wie ungenaue Fälschungen vorkamen.
Holger D. schrieb:> Ich habe mir mal ca.> 20 Stück angesehen und die Streuung war schon deutlich.
Dazu einige Fragen an einen Experten:
a) Kannst Du die Streuungsbreite der untersuchten DS18B20 hier mal
nennen?
Der Einsatztemperaturbereich der DS18B20 beträgt -55°C bis 100°C.
b) Wird, um die Unsicherheit zu bestimmen, der gesamte Temperaturbereich
durchfahren und gibt es dazu zur Darstellung Diagramme o.ä.?
c) gibt es Langzeiterfahrungen zu den DS18B20?
Ich verwende die DS18B20 seit >10 Jahren zur Datenaufzeichnung in
unserer Heizstation bei Temperaturen bis ca. 95°C und schreibe die
Messwerte auf eine SD-Karte.
Wolle G. schrieb:> a) Kannst Du die Streuungsbreite der untersuchten DS18B20 hier mal> nennen?
Die lagen damals alle bei Raumtemperatur in einem Bereich von ca. +/-
0,5 K.
> b) Wird, um die Unsicherheit zu bestimmen, der gesamte Temperaturbereich> durchfahren und gibt es dazu zur Darstellung Diagramme o.ä.?
Bei uns wird der für uns relevante Temperaturbereich in Schritten
durchfahren. -30°C, -15 °C, 0 °C ....
Die Unsicherheit bezieht sich dann immer auf den konkreten Punkt bzw.
den Punkten. Es ist durchaus möglich, dass zwischen den Kalibrierpunkten
andere Unsicherheiten vorkommen können. Das ist wiederum eine Sache, die
der Nutzer beachten muss.
Beispiel Kalibrierung Pt100: Referenz 0,006 °C, Kalibriergegenstand
0,016 °C, Differenz +0,01 K, Unsicherheit (k=2) für die
Differenzbestimmung +/- 0,02 K. Die Abweichung kann auch zwischen -0,01
K und + 0,03 K liegen. Niemand weiß das. Nun könnte man mit einem
gewissen Aufwand die Unsicherheit verringern. Aber bei einem DS18B20
wird die Unsicherheit schon einmal nicht unter der Auflösung liegen.
> c) gibt es Langzeiterfahrungen zu den DS18B20?
Nein, dass war rein aus Interesse, da man ja hier im Forum immer von der
sagenhaften Genauigkeit von 0,0625 K liest. Dabei ist das die vom
Hersteller genannte Auflösung und die Spezifikationen besagen "±0.5°C
Accuracy from -10°C to +85°C". Bei 95 °C soll es ja schon 1K sein.
Interessant dürfte auch die Drift sein.
Gruß
Holger
Holger D. schrieb:> Bei 95 °C soll es ja schon 1K sein.> Interessant dürfte auch die Drift sein.
Vielen Dank für die Erläuterungen.
Schade, dass keine Langzeiterfahrungen vorliegen.
Die Frage ergab sich eigentlich nur interessehalber. Bei dem genannten
Anwendungsfall kommt es ja nicht auf einen Schnaps an. Ob die gelieferte
Fernwärme zum Zeitpunkt xx eine Temperatur von 95°C oder 93°C o. ä
hatte, ist hier unwichtig.
Aber vielleicht kennt jemand das Langszeitverhalten des DS18B20 bei
Temperaturen nahe der Grenztemperatur.
Kleine Fehlerkorrektur aus meinen Beiträgen:
a) Der Temperaturmessbereich des DS18B20 reicht von -55°C bis 125°C.
-55°C bis 100°C gilt für DS18B20 PAR.
b) Die Kurven ‚türkis’ und ‚gelb’ gehören zum DS18B20.
Holger D. schrieb:> ... da man ja hier im Forum immer von der sagenhaften Genauigkeit> von 0,0625 K liest.
Nur von den Leuten, die Auflösung und Genauigkeit nicht auseinander
halten können.
Wolfgang schrieb:> Nur von den Leuten, die Auflösung und Genauigkeit nicht auseinander> halten können.
Manchmal interpretieren die Leser eines Beitrages dies auch nur
unrichtig.;-)
Wolfgang schrieb:> Nur von den Leuten, die Auflösung und Genauigkeit nicht auseinander> halten können.
Was dann auch immer Genauigkeiten sein sollen ... Wir sprechen von
Unsicherheiten.
Moin, ich habe jetzt mal aus der Bastelkiste 9 DS18S20 auf einem
Breadboard mit LCD und Atmega32 gesteckt. Also keine (B) sondern (S),
die aber meines Wissens nach den selben Inhalt aber ein etwas anderes
Frontend haben und lediglich etwas anders ab Werk konfiguriert sind. Man
möge mich korrigieren.
Anbei eine Grafik.
Gruß
Holger
Holger D. schrieb:> Die lagen damals alle bei Raumtemperatur in einem Bereich von ca. +/-> 0,5 K.
Genau so sind sie auch angegeben +/- 0,5K. Für viele Fälle sollte das
ausreichen; bei uns reicht das jedenfalls.
> (S) oder (B)
Der DS18S20 ist als Ersatz für den DS1820 gedacht.
Beim DS18B20 kann die Auflösung vorgewählt werden über das
Konfigurationsregister. Wenn 9-Bit reichen, dann ist der mit <100ms
deutlich schneller.
Holger D. schrieb:> Was dann auch immer Genauigkeiten sein sollen ... Wir sprechen von> Unsicherheiten.
Für den einen ist das Glas halb voll, für den anderen halb leer.
Es ist auch nicht unwesentlich wie "original" der Sensor ist
Hier ist eine sehr gute Auflistung der diversen Fakes/Versionen:
https://github.com/cpetrich/counterfeit_DS18B20
Es gibt dort auch ein Arduino Testprogramm um diverse Versionen zu
erkennen