- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 10

Thema: DS18S20 genauigkeit, calibrierung, differenzen?

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #6
    Benutzer Stammmitglied
    Registriert seit
    20.03.2012
    Beiträge
    32
    aber Daniel das hat nichts mit Kalibrieren zu tun wenn ich einen Offset mit einrechne.

    so sieht es aus:

    jede volle sekunde kommt wird der nächste sensor ausgelesen und 750ms zuvor "Read_temperatur_prepair"

    das funzt auch sehr gut..nur die Sensoren haben eine zuhohe streuung. wie ich finde.

    Code:
    '###############################################################################
    ' 1 Wire Sensoren Initialisieren
    '###############################################################################
    Sub 1wire_init:
    
     For Ds_no = 1 To Sensorenanzahl
      Ds_ie = Ds_no * 8
      Ds_i = Ds_ie - 7
      If Ds_no = 1 Then
       Dsid(ds_i) = 1wsearchfirst()
      Else
       If Err = 1 Then
        Exit For
       End If
       Dsid(ds_i) = 1wsearchnext()
      End If
      'Waitms 10
     Next
    
    Ds_count = 1wirecount()
    
    
    End Sub
    
    '###############################################################################
    ' 1 Wire Temperatur auslesen
    '###############################################################################
    Sub Read_temperatur_prepair
     ' Alle angeschlossenen DS1820 zum Messen veranlassen
     1wreset
     1wwrite &HCC
     1wwrite &H44
     '### testen
     'Ds_ie = Ds_no * 8
     'Ds_i = Ds_ie - 7
    
     '1wverify Dsid(ds_i)
     '1wwrite &H44
    
    End Sub
    
    Sub Read_temperatur(byval Ds_no As Byte)
     'Start Byte finden füd dsid array
     Ds_ie = Ds_no * 8
     Ds_i = Ds_ie - 7
     'Call Read_temperatur_prepair
     'Waitms 10
     ' Den gewünschten Sensor auswählen
     1wreset
     1wverify Dsid(ds_i)
     ' Kommando READ SCRATCHPAD
     1wwrite &HBE
     Sc(1) = 1wread(9)
    
     If Sc(9) = Crc8(sc(1) , 8) Then
      ' Genauere Temperaturberechnung auf 0,1 °C
      I = Sc(1) And 1
      If I = 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
      Temperaturen(ds_no) = T / 10
     Else
      ' Wenn lese Fehler -76 eintragen
      Temperaturen(ds_no) = -76
     End If
    End Sub
    Geändert von kask (18.05.2012 um 11:53 Uhr)

Ähnliche Themen

  1. DS18S20
    Von Naturp im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 4
    Letzter Beitrag: 29.04.2010, 11:14
  2. DS18S20 ID Fehler
    Von apohero im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 0
    Letzter Beitrag: 15.05.2008, 10:26
  3. Genauigkeit des DS18S20
    Von franzl im Forum Sensoren / Sensorik
    Antworten: 1
    Letzter Beitrag: 07.05.2006, 19:55
  4. DS18S20 mit ATMEGA8515
    Von demir im Forum AVR Hardwarethemen
    Antworten: 2
    Letzter Beitrag: 25.01.2006, 10:45
  5. Sharp GP2D12 hat Differenzen!
    Von BlueNature im Forum Sensoren / Sensorik
    Antworten: 43
    Letzter Beitrag: 05.01.2005, 21:10

Berechtigungen

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

LiFePO4 Speicher Test