mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik DS1620-Temperatursensor


Autor: Hölscher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Mikrocontroller Freunde

ich programmierer zur Zeit einen DS1620, soweit kein Problem die
Kommunikation mit meinem AT89S252 ist gewährleistet.

Frage:  Wie bekomme ich nun die Temperatur auf mein LCD-Display

Ich habe die 1.Variable mit dem Inhalt READ-TEMPERATUR
             2.Variable mit dem Inhalt READ-COUNTER
             3.VARIABLE mit dem Inhalt READ-SLOP

Diese drei Variablen setze ich jetzt in die Formel aus dem Datenblatt
und erhalte doch die TEMPERATUR.

Ist doch noch so weit in Ordnung, oder ??

Jetzt benötige ich doch eigentlich nur noch eine Funktion die mir
diesen Wert in seine Bestandteile auflöst z.B  25.5 -> 2  5  5  diese 3
Zahlen kann ich doch dann problemlos auf dem Display darstellen.

Ich würde mich freuen wenn mir jemand seinen Quellcode mailen könnte.

Mit freundlichen Grüßen
Christian Hölscher

Autor: Hölscher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie genau ist den der DS1602!
Stimmt den der gemessene Wert mit der Umgebeung überein?

Christian

Autor: Hölscher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vieleicht kann mir jemand auch den genauen Vorgang der Temperaturmessung
erläutern, aus dem Datenblatt werde ich nicht ganz schlau..

Christian

Autor: Hölscher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Mikrocontroller Freunde

Die Darstellung des Messwertes ist jetzt kein Problem mehr.

Nur bei dem Vorzeichen ist etwas komisch. Im Datenblatt steht, wenn das
2-byte 0000|0000 dann ist der Wert positiv  bei mir ist aber das 2-byte
1111|1111 dann ist der Wert doch eigentlich negativ.

Woran kann das denn wohl liegen.

Christian

Autor: Dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Hölscher

Wie sehe, bist du ja wieder fleissig dabei, weiter zu lernen.

Setzt doch mal deinen Code mit hier rein, sonst fällt es einem
schwer, dir zu helfen.

MFG

Dieter

Autor: Sascha Biedermann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich verwende die DS1820 und um aus dem READ-TEMP-Wert eine Temperatur
zu machen, habe ich folgenden C-Code geschrieben:

val = Read-Temp vom Sensor

double retval=0;
char tmp;

// Ist das 0,5-Flag gesetzt?
if ((val & 0x0001) != 0) retval = 0.5;

tmp = val & 0x00FE;
tmp = tmp >> 1;
// Wenn Negativ, dann Invertieren und 1 dazu
if ((val & 0x8000) != 0) tmp = (tmp^0x7F) + 1;

retval += tmp;

// Wenn Negativ....
if ((val & 0x8000) != 0) retval = retval * -1;

return retval;

Autor: Hölscher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Sascha vielen Dank für deine Hilfe.
Ich kann deinen Auszug aus dem Quellcode sehr gut gebrauchen.

Mit freundlichen Grüßen
Christian

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.