mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik DS18B20 Temperaturauswertung


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

Bewertung
0 lesenswert
nicht lesenswert
Nachdem der Threadtitel vom alten so garnicht mehr zum Thema past und 
auch etwas unübersichtlich geworden ist, hier mal ein neuer.

Ich möchte einen DS18B20 Temperatursensor an einem ATmega16 mit 4MHz auf 
meinem STK500 in Betrieb nehmen.

Der Sensor ist mit einem 4,7k Pull-Up angeschlossen

Die 3 obigen Dateien sind die Sources für das Temperatur auslesen.
Ich kann bereits erfolgreich einen Reset mit Prescence erzeugen.
Außerdem kann ich beliebige Werte in die beiden Userbytes schreiben und 
erfolgreich zurücklesen.
Des weiteren kann ich erfolgreich das Komplette Scratchpad auslesen. 
Auch da sind dann alle Werte wie im Datenblatt angegeben.

Wenn ich nun aber eine Temperaturwandlung starte und versuche den Status 
über den Datenpin abzufragen, bekomme ich sofort eine eins zurück. 
Sprich er meint er wäre fertig.

Also warte ich momentan fest 750ms.

Wenn ich dann das Scratchpad auslese sind die Bytes 2-7 richtig, aber 
MSB und LSB haben folgende Werte:

LSB: 0xFF  1 1 1 1 1 1 1 1
MSB: 0x07  0 0 0 0 0 1 1 1

die fünf Nullen sind das vorzeichen und die 12 einsen sind die 
Temperatur.

Das würde dann aber einer Temperatur von 127,9375°C entsprechen und das 
kann ja nicht stimmen.

Kann mir einer sagen wo der fehler in meinem Programm liegt?

Autor: Alex W. (a20q90)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast einen 18B20 und der Code ist für einen 18S20!

Autor: Johannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok,

und was ist da noch Flasch, ich hab den ja angepasst von den Timings und 
der auswertung für die Temperatur.

Wo hab ich denn noch was vergessen.

Autor: Johannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat sich erledigt,

Ich hab mal den Sensor getausch!

Jetzt funktioniert alles wie es soll
Wenn jemand den Code verwenden möchte viel Spaß damit, so wie er da 
steht läuft ein DS18B20  pro pin damit, aber nur ohne adressierung.

Autor: Franz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hattest du es auch mit einem 18S20 laufen? Da müsste ja nur die 
Berechnung anders sein oder? Aber wie?

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.