www.mikrocontroller.net

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


Autor: Makke (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: rweber (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: TriccyMan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Makke,

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


Gruß
TriccyMan

Autor: Makke (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Makke (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: rweber (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Makke,

hier mein Code zur Ansteuerung vom DS18B20 und DS24E04

Gruss,
rweber

Autor: Joachim Börke (joachimb)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Uwe (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Makke (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.