-
        

Ergebnis 1 bis 7 von 7

Thema: Temperaturfuehler DS18S20 bei Frost

  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.10.2008
    Ort
    Wulferstedt
    Beiträge
    1.042

    Temperaturfuehler DS18S20 bei Frost

    Anzeige

    Wie der gewählte Titel schon erahnen lässt, habe ich ein Problem, mit
    den 9 Bytes des DS18S20 eine negative Temperatur zu berechnen.
    Während das Auslesen der Bytes, auch das spezielle Übertragen, der
    Prüfsummencheck und die Berechnung der positiven Temperatur
    mittels der im Datasheet vorhandenen Formel funktioniert, kommt bei
    Temperaturen unterhalb von 0 Grad C nur Unsinn heraus. Vorsichtshalber
    habe ich schon versucht, die benutzten Zwischenvariablen als Integer
    bzw. Long zu dimensionieren, um Überläufe zu vermeiden. Hat jemand
    vielleicht eine Lösung oder Quelle, wo diese Berechnungsroutine als
    Bascom genutzt werden kann. Beim Googeln fiel ich bisher immer nur
    um die komplette Routine, mir gehts jedoch nur um die Berechnung
    nicht nur der positiven Werte mittels der ohne Checksumme 8 Bit.
    Vielen Dank und Viele Grüsse. Micha

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.186
    Ich habe bis jetzt nur mit dem DS1621 gearbeitet.
    Die Minusgrad Erkennung ist das höchste Bit vom MSB. Wenn das 1 ist, musst du beide Byte invertieren. Die 0,5 Erkennung ist dann allerdings 0 und nicht mehr 1 am niederwertigsten Bit von LSB.
    Routine für Bascom habe ich allerdings nicht.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.10.2008
    Ort
    Wulferstedt
    Beiträge
    1.042
    Auf den ersten Blick scheint das Bitmuster und die Rechenroutine
    ja die Gleiche zu sein. Ich verstehe nur nicht, warum die Rechenroutine
    offensichtlich bei den negativen Werden nicht funktioniert.
    Die Routine in Bascom zu schreiben ist für mich kein Problem.
    Hoffe, dass ich keinen Tippfehler o. drgl. drin habe, deshalb meine
    Frage zu einem ev. fertigen Decodiercode in BASCOM. VG Micha

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    46
    Beiträge
    765
    Hier die zuletzt von mir verwendete Routine:

    Code:
    Templesen:
       Dim Sc(9) As Byte
       Dim Dg As Integer
       Dim Tmp As Byte , T As Integer , T1 As Integer
    
             1wreset
             1wwrite &HCC
             1wwrite &HBE
             Sc(1) = 1wread(9)
             Rom1 = 1wread(2) 'Dim Rom1 As Integer
             1wreset
             If Sc(9) = Crc8(sc(1) , 8) Then
                Tmp = Sc(1) And 1
                If Tmp = 1 Then Decr Sc(1)
                T = Makeint(sc(1) , Sc(2))
                T = T * 50
                T = T - 25
                T1 = Sc(8) - Sc(7)
                T1 = T1 * 100
                T1 = T1 / Sc(8)
                T = T + T1
                Dg = T / 10
             End If
             Temperatur = Dg    'Dim Temperatur As Integer
             Menu = Str(temperatur)' dim menu as string * 30 (kann auch weniger sein)
             If Temperatur >= 0 Then
                Stemperatur = Format(menu , " 000") 'Dim Stemperatur As String * 4
             Else
                Stemperatur = Format(menu , "-000")
             End If
     
    Return
    Variablendeklarationen stehen teilweise in den Zeilen als Bemerkung
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.10.2008
    Ort
    Wulferstedt
    Beiträge
    1.042
    Vielen Dank, das werd ich mal ausprobieren. Ging ja um die Berechnung.
    Vg Micha

  6. #6
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    66
    Beiträge
    10.970
    Hallo!

    Sehe dazu Table2 auf 3.Seite des DBs: http://www.datasheetcatalog.org/data...im/DS18S20.pdf .

    MfG

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.10.2008
    Ort
    Wulferstedt
    Beiträge
    1.042
    Vielen Dank, jedoch genau nach dieser Formel und den Bitmustern
    verfahre ich. Die Messung klappt ja auch im Positiven Bereich.
    Aber morgen weiss ich mehr. Ich vermute einen Schreibfehler meinerseits.
    VG Micha

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •