Forum: Mikrocontroller und Digitale Elektronik Temperatursensor DS1820 spinnt um 0°C herum


von Makke (Gast)


Lesenswert?

Hi,

ich weiß nicht was los ist mit meinem DS1820. Alle Routinen mit 1-wire
funktionieren einwandfrei und die TEmperaturanzeige geht auch bis gut
90°C(mehr hab ich noch nicht getestet) ohne Probleme hoch. Aber sobald
die reale Temperatur um den Gefrierpunkt schwankt, spinnt die
ANzeige.Ich hab mir mal das MSB-Byte ausgebeben lassen. Laut Datenblatt
sollen ja nur die Zustände Ox00 für positive und 0xFF für negative
Temperaturen geben. Aber Pustekuchen. Ab +2°C bis 0°C fängt das
MSB-Byte an auch Zwischenzustände anzunehmen und dadurch kann sich das
LSB nicht entscheiden ob es jetzt positive oder negative Temperaturen
darstellen soll.
Kann mit jemand sagen, ob das normal ist oder ob mein Sensor defekt
ist? Oder hatte jemand schon ähnliche Erfahrungen gemacht?

Danke für eure Hilfe und danke den Aussentemperaturen, die mir den
Fehler erst jetzt zeigen...

von rweber (Gast)


Lesenswert?

Hallo Makke,

ich habe den DS18B20, der funktioniert problemlos. Getestet habe
ich von -40C bis an die 90C. Falls Interesse am Code besteht bitte
melden.


Gruss,
rweber

von TriccyMan (Gast)


Lesenswert?

Hallo Makke,

ich habe einen DS18S20 las Aussenthermometer. Beim MSB schau ich nur
auf Bit7 und keine Probleme.


Gruß
TriccyMan

von Makke (Gast)


Lesenswert?

Hi rweber,

klar bin ich am Code interessiert, sofern er in C ist. Assembler kann
ich nicht.
Ich hab schon überlegt, ob es vielleicht an meinem Code liegt zur
Auswertung der negativen Temperaturen. Ich versuch mal den Code
reinzustellen...

von Makke (Gast)


Lesenswert?

Und hier der Code für die Abfrage ob positive oder negative Temperatur:

if(read_temp_msb()==0xFF){//wenn MSB=0xFF(also neg. Temperatur)dann
diese Berechnng
    temp=((~read_temp_lsb()+1)*(-1))/2;
 }
else{        //Berechnung für positive Temperatur
    temp=read_temp_lsb()/2;
 }

Danke schon mal für eure Tipps!

von rweber (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Makke,

hier mein Code zur Ansteuerung vom DS18B20 und DS24E04

Gruss,
rweber

von Joachim B. (joachimb)


Lesenswert?

Hallo Makke,

es wurden schon Feuchtigkeitsprobleme um die 0 Grad beobachtet, die zu
merkwürdigen Ergebnissen geführt haben. Details sind hier nachzulesen:
http://www.digitemp.com/docs/ds1820-report.pdf

Ich hatte einen ähnlichen Effekt zwischen +1 und -1 Grad, der
allerdings auf einen Rechenfehler zurückzuführen war.
Ich benutze den Code aus dem Atmel Applikationsbericht AVR318. Der Code
ist in C geschrieben und in meinem Webserver zu finden.
http://mikrocontroller.cco-ev.de/de/ISA_1wire.php

Gruß
Joachim

von Uwe (Gast)


Lesenswert?

Hi!
Haste einen DS18B20 oder einen DS18S20 beide unterscheiden sich in den
Temp.Bytes und dem Rem, sind also nicht kompatibel.
Beim B20 dind die 1/10 im Temp.-Word enthalten und beim S20 sind sie
aus dem Rem zulesen. Nicht das da deine SW was verwürfelt?

Viel Erfolg, Uwe

von Makke (Gast)


Lesenswert?

Danke für die vielen Tipps und Anregungen.
Ich habe jetzt den Fehler gefunden. Endlich, nach 1 1/2 Wochen.Ich habe
die Read_Bit() Time von 15µSekunden auf etwa 10µSekunden
heruntergestellt. UNd siehe da: auch die negativen Temperaturen werden
angezeigt. Fragt mich jetzt nicht warum, aber es war so. Ich habe keine
Erklärung dafür, warum die positiven Temperaturen normal angezeigt
wurden, er aber mit den negativen Probleme hatte.
Also vielen DAnk nochmal für eure Hilfe, ihr glaubt gar nicht wie
erleichtert man ist, wenn es endlich funktioniert.

Schöne Grüße, Makke

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.