Forum: Mikrocontroller und Digitale Elektronik DS18B20 Sensor


von HM65 (Gast)


Angehängte Dateien:

Lesenswert?

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?

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

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.

: Bearbeitet durch User
von HM65 (Gast)


Lesenswert?

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!!

von Wolle G. (wolleg)


Lesenswert?

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

von HM65 (Gast)


Lesenswert?

Oh, ich verstehe. Vielen Dank das Sie mich auf diesen Fehler aufmerksam 
gemacht haben!

von Peter_ (Gast)


Lesenswert?

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?

von Falk B. (falk)


Lesenswert?

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!

von Peter_ (Gast)


Lesenswert?

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?

von eProfi (Gast)


Lesenswert?

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.

von Wolfgang (Gast)


Lesenswert?

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.

von Bauform B. (bauformb)


Lesenswert?

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?

Beitrag #6643425 wurde vom Autor gelöscht.
von svensson (Gast)


Lesenswert?

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.

von Wolle G. (wolleg)


Angehängte Dateien:

Lesenswert?

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.

von Wolle G. (wolleg)



Lesenswert?

Jetzt  Bild 2

von Holger D. (hodoe)


Lesenswert?

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

von (prx) A. K. (prx)


Lesenswert?

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.

: Bearbeitet durch User
von Wolle G. (wolleg)


Lesenswert?

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.

von Holger D. (hodoe)


Lesenswert?

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

von Wolle G. (wolleg)


Lesenswert?

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.

von Wolfgang (Gast)


Lesenswert?

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.

von Peter_ (Gast)


Lesenswert?

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.;-)

von Holger D. (hodoe)


Lesenswert?

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.

von Holger D. (hodoe)


Angehängte Dateien:

Lesenswert?

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

von Genauer Auflöser (Gast)


Lesenswert?

Das ist doch nicht schlecht: Maximal 1% Unterschied zwischen "Bestem" 
und "Schlechtesten"

von svensson (Gast)


Lesenswert?

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.

von Wolfgang (Gast)


Lesenswert?

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.

von Guenter H. (bigfix)


Lesenswert?

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

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
Noch kein Account? Hier anmelden.