Forum: Mikrocontroller und Digitale Elektronik DS18B20 Fehler beim Auslesen unter 10*C


von Hannes H. (hannes31)


Angehängte Dateien:

Lesenswert?

Hallo liebe Community,

ich habe an einen Attiny84 den DS18B20 Temperatursensor klappt auch 
alles super, aber wenn die Temperatur unter 10*C geht, werden auf einmal 
90*C angezeigt. Das komische ist auh ich lese die Spannung vom Attiny 
aus, sobald der Fehler auftritt ist die ausgelesene Spannung auch 
falsch. Könnt ihr mir vl. ein paar Tipps geben was ich noch machen kann?

Ich dachte schon es liegt am Attiny aber habe dann das Kabel vom Sensor 
verlängert und nur diesen nach draußen in die Kälte gelegt, selber 
Fehler. Habe mal ein kleines Bild angehängt, dort ist das Phänomen bei 
Device 2 zu beobachten.

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

Hannes H. schrieb:
> Könnt ihr mir vl. ein paar Tipps geben was ich noch machen kann?

Ich würde systematisch vorgehen und erstmal prüfen, ob irgendwas mit dem 
Sensor ist (was ich nicht glaube), die Datenübertragung ok ist (CRC) 
oder ob es am Programm liegt. Dann kann man weiter sehen.

p.s.
Warum meinst du, dass bei deinem Datenbankeintrag mit id 159 die 
Temperatur unter 10°C war. Was ist da mit supplyv los?

von Hannes H. (hannes31)


Lesenswert?

Wenn ich den Sensor rauß packe wird er ja langsam kälter und bei 155 ist 
zu sehen das es kurz vor unter 10 Grad ist, danach wird er kälter als 10 
und Puff das wars, .. habe schon 4 Sensoren getestet genau das gleiche 
bei exakt der gleichen Temperatur. Was mit der Spannung los ist kann ich 
nicht sagen, keine Ahnung warum diese genau an diesen Punkt auch falsch 
ausgelesen wird.


Werde morgen mal dazu die entsprechenden Auszüge der Sketches posten, 
und die verkabelung.

: Bearbeitet durch User
von Dirk K. (dekoepi)


Lesenswert?

Quellcode wäre gut, ja.
Vermutung: Fehlender Abblockkondensator und falscher Formatstring.

von JensM (Gast)


Lesenswert?

Ich behaupte, dass es bei Datensatz 159 9,43 °C hat und die Spannung 
3,111V ist. Falsche aufbereitung der Daten auf dem Attiny oder den 
Datenbankserver (die Temperatur hat 1 Stelle weniger).
Gruss JensM

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

JensM schrieb:
> Ich behaupte, dass es bei Datensatz 159 9,43 °C hat
Und bei 103,45℃ würden dann wieder 10,34 angezeigt...

BTW: ist der Sensor tatsächlich so genau oder werden da 2 
Nachkommastellen "hergelogen"?

von Wolfgang (Gast)


Lesenswert?

Lothar M. schrieb:
> BTW: ist der Sensor tatsächlich so genau oder werden da 2
> Nachkommastellen "hergelogen"?

Du darfst Auflösung nicht mit Genauigkeit verwechseln. Native beträgt 
die Auflösung 0.0625°C und Genauigkeit 0.5°C (im Bereich -10°C to 
+85°C).

von (prx) A. K. (prx)


Lesenswert?

Lothar M. schrieb:
> BTW: ist der Sensor tatsächlich so genau oder werden da 2
> Nachkommastellen "hergelogen"?

Die Auflösung von 1/16° in einer solchen Tabelle vollständig zu 
speichern ist zunächst einmal kein Sakrileg.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Dort wird ja nicht die Auflösung gespeichert, sondern das finale 
Ergebnis. Und das ist eben um den Faktor 50 (also fast 2 Zehnerpotenzen) 
schlechter. Wenn da irgendwann mal jemand draufschaut, dann könnte er 
meinen, die Temperatur sei "damals" wirklich do exakt gemessen worden...

von Wolfgang (Gast)


Lesenswert?

Lothar M. schrieb:
> Wenn da irgendwann mal jemand draufschaut, dann könnte er
> meinen, die Temperatur sei "damals" wirklich do exakt gemessen worden...

Meinung zählt in solchen Fällen nicht, sondern die Genauigkeitsangabe 
aus dem Kalibrierprotokoll.

Wenn er sich z.B. dafür interessiert, welchen Unterschied es für die 
Raumtemperatur macht, ob der Heizungsregler um einen Strich weiter 
aufgedreht ist, ist es völlig irrelevant, wie der genaue Werte ist.

von Wolfgang (Gast)


Angehängte Dateien:

Lesenswert?

p.s.
Hier mal ein Beispiel für eine Temperaturmessung mit DS18B20 
(Heizungszyklen mit Parameteränderung) und voller Auflösung. Wenn man 
die dieser Graphik zugrunde liegenden Daten mit dem Argument Genauigkeit 
hier nur mit 0.5°C Auflösung abgespeichert hätte, ware damit so gut wie 
nichts anzufangen.

von (prx) A. K. (prx)


Lesenswert?

Lothar M. schrieb:
> Dort wird ja nicht die Auflösung gespeichert, sondern das finale
> Ergebnis.

In einer Aufzeichnung sind zunächst die unverarbeiteten Rohdaten 
wichtig. Genau aufzeichnen und bei einer Auswertung die Genauigkeit 
berücksichtigen. Verlorene Daten kriegt man nicht wieder zurück.

von Dirk K. (dekoepi)


Angehängte Dateien:

Lesenswert?

Naja. Mit 0,1°C Auflösung speichern zeigt immer noch eine Menge, finde 
ich.

von Wolfgang (Gast)


Lesenswert?

Dirk K. schrieb:
> Naja. Mit 0,1°C Auflösung speichern zeigt immer noch eine Menge, finde
> ich.

Bei 60K Skalenumfang reicht das für eine Auflösung von mehr als 1%, 
klar.

Wolfgang schrieb:
> Temperaturmessung_DS18B20.png

Diese Daten sähen bei Aufzeichnung mit nur 0,1K Auflösung schon ganz 
anders aus.

Die Sensorauflösung von 1/16 läßt sich schlecht in 0.1K Datenauflösung 
reinquetschen, jedenfalls nicht, ohne Abweichungen von fast 1 LSB 
gegenüber den Rohdaten in Kauf zu nehmen. Damit bekommt man dann für 
Mittelwerte schon einen temperaturabhängigen Offset. Schlimm genug, dass 
der DS18B20 intern so wenig rauscht, dass man über Oversampling keine 
saubere Erhöhung der Auflösung bekommt.

von Falk B. (falk)


Lesenswert?

@Hannes H. (hannes31)

>ich habe an einen Attiny84 den DS18B20 Temperatursensor klappt auch
>alles super, aber wenn die Temperatur unter 10*C geht, werden auf >einmal
>90*C angezeigt.

Mit welcher Software liest du den Sensor aus und rechnest um? Was 
Eigenes oder eine Bibliothek aus dem Netz?

> Das komische ist auh ich lese die Spannung vom Attiny
>aus,

Welche Spannung?

> sobald der Fehler auftritt ist die ausgelesene Spannung auch
>falsch. Könnt ihr mir vl. ein paar Tipps geben was ich noch machen >kann?

Betreibe eine systematische Fehlersuche. Miss deine Betriebsspannung 
am ATtiny und am Sensor. Füttere deine Umrechungsroutine mit Testdaten 
und prüfe, ob sie auch Werte < 10°C richtig umrechnet und anzeigt.

von Hannes H. (hannes31)


Lesenswert?

Es lag an der Umrechnung der Daten, danke für den Tip, ich hab mein Tiny 
gerade neu geflasht und er steht jetzt draußen und hoffe das es jetzt 
klappt :).

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.