- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 1 von 4 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 35

Thema: DS18B20 zu hoher Temperaturwert!

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    26.09.2006
    Ort
    Eberspoint (84149 Velden)
    Beiträge
    40

    DS18B20 zu hoher Temperaturwert!

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo Leute,
    Hab schon in ganzen Forum geschaut aber leider hat bis jetzt noch keiner so was geschrieben!

    Habe an einem ATmega8-16 einen DS18B20 1-Wire Temperatursensor angeschloss, leider bekomme ich aber nicht den richtigen Wert von dem Sensor. Wenn ich den Sensor länger in der Hand halte zeit er mehr als 100 Grad an. Kann es sein, dass sich der Sensor selber aufheitzt, denn heute früh wurde die Reumtemperatur angezeit und nach ein paar Secunden ist sie wieder auf mehr als das doppelte angestiegen.

    Den verwendeten Code habe ich aus der Elektor Zeitschrift:

    Code:
    $regfile = "m8def.dat"
    $baud = 19200
    $hwstack = 32
    $swstack = 32
    $framesize = 32
    $crystal = 8000000
    
    Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5
    Config Lcd = 16 * 2
    Cls
    
    'Config Portd.5 = Output                                     'LED 1
    'Portd.5 = 1
    'Led1 Alias Portd.5
    'Config Portd.6 = Output                                     'LED 2
    'Portd.6 = 1
    'Led2 Alias Portd.6
    'Config Portd.7 = Output                                     'LED 3
    'Portd.7 = 1
    'Led3 Alias Portd.7
    'Config Portd.2 = Output                                     'Motor1, Pin 1 und 2 am Motorboard
    'Portd.2 = 0
    'Config Pinb.0 = Input                                       'Taster 1
    'Portb.0 = 1
    'Taster1 Alias Pinb.0
    'Config Pinb.1 = Input                                       'Taster 2
    'Portb.1 = 1
    'Taster2 Alias Pinb.1
    'Config Pinb.2 = Input                                       'Taster 3
    'Portb.2 = 1
    'Taster3 Alias Pinb.2
    
    Config 1wire = Portd.2
    
    Dim Rom(8) As Byte
    Dim Temp1 As Single
    Dim Temp2 As Single
    Dim Tempdif As Single
    Dim Id1(8) As Byte
    Dim Id2(8) As Byte
    Dim I As Integer
    
    Id1(1) = 1wsearchfirst()
    Id2(1) = 1wsearchnext()
    
    I = 1wirecount()
    Lcd I
    
    For I = 1 To 8
       Locate 1 , 1
       Lcd Hex(id1(i));
    Next
    For I = 1 To 8
       Locate 2 , 1
       Lcd Hex(id2(i));
    Next
    
    Wait 1
    
    Do
    
    1wreset
    1wwrite &HCC
    
       1wwrite &H44
       Ddrd.2 = 1
       Waitms 800
       Ddrd.2 = 0
    
       1wreset
       1wwrite &H55
    
          For I = 1 To 8
             1wwrite Id1(i)
          Next I
          1wwrite &HBE
    
          Rom(1) = 1wread(1)
          Temp1 = Rom(1) / 2
          Locate 1 , 4
          Lcd "T1: " ; Temp1
    
    
          1wreset
          1wwrite &H55
    
          For I = 1 To 8
             1wwrite Id2(i)
          Next I
          1wwrite &HBE
    
          Rom(1) = 1wread(1)
          Temp2 = Rom(1) / 2
          Locate 2 , 4
          Lcd "T2: " ; Temp2
    
    
    
    Loop
    
    
    End
    Ich Verwende ein externes Crystal und die Fusebits hab ich auch richtig eingestellt!

    Hat von euch jemand eine Idee woran das liegen kann?

    Gruss Douser

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    08.12.2008
    Ort
    Germering
    Beiträge
    37
    Hallo Douser,
    habe das Programm mal auf einem Pollinboard ausprobiert.
    Geändert nur die LCD_Ansteuerung und den Takt auf 16Mhz.
    Klappt prima mit meinem DS1820.
    fg vistauser

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    26.09.2006
    Ort
    Eberspoint (84149 Velden)
    Beiträge
    40
    Dann gibts ja nur noch zwei möglichkeiten, Taktung oder der Sensor!
    In der Elektor werden die DS18S20 verwendet, hab schon ins Datenblatt gesehen aber da steht auch nicht wirklich was drinnen.
    Welchen Port hast du verwendet?
    Gruß Douser

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    26.09.2006
    Ort
    Eberspoint (84149 Velden)
    Beiträge
    40
    Dann gibts ja nur noch zwei möglichkeiten, Taktung oder der Sensor!
    In der Elektor werden die DS18S20 verwendet, hab schon ins Datenblatt gesehen aber da steht auch nicht wirklich was drinnen.
    Welchen Port hast du verwendet?
    Gruß Douser

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    08.12.2008
    Ort
    Germering
    Beiträge
    37
    Hallo Douser,
    ich habe Port D2 für den DS1820 verwendet.
    Hast du vom Datenpin auch einen Pullup-Widerstand gegen +5V
    verwendet (hier habe ich 3,9K genommen da nur einer dran ist)?
    Zerstört habe ich bisher noch keinen dieser Sensoren. Die sind äußerst robust.
    Viel Erfolg
    vistauser

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    26.09.2006
    Ort
    Eberspoint (84149 Velden)
    Beiträge
    40
    Ich habe einen 4,65k Widerstand drann, im Datenblatt heist es ja, dass man 4,7k verwenden soll.
    (den hab ich leider nicht, 1,5k + 1,5k + 1k + 680 = 4,65k dank Abweichung) in den nächsten Tagen soll der 4k7 kommen dann versuch ich es mit dem noch mal

  7. #7
    Hallo zusammen,

    ich habe das gleiche Problem.
    Wenn ich das richtig versanden habe ist der 4,7KOhm Widerstand zwingend notwendig?

    Gruß
    SteKoLos
    www.ldap2doc.de -geniale MS Wordvorlagen Schnittstelle zum MS Active Directory-

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.10.2004
    Ort
    Baoding
    Alter
    44
    Beiträge
    689
    Ja, den Widerstand braucht man sonst geht nichts. Baue mal ne CRC-Prüfung mit in dein Programm ein um Übertragungsstörungen auszuschliesen.
    Signatur??? kann ich mir nicht leisten!!!

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    15.04.2007
    Beiträge
    55
    Hallo

    Nicht vergessen das D18S20 nicht gleich DS1820 ist. Die S variante hat 12 bit und das andere 9 bit Auflölung, siehe Datenblatt

    Gruss
    Sato

  10. #10
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.113
    Zitat Zitat von sato
    Die S variante hat 12 bit und das andere 9 bit Auflölung, siehe Datenblatt
    Wo hast du denn diese Info her?
    Laut Maxim:
    Specification Differences: The primary specification difference between the two parts is the temperature conversion time: DS1820 = 500ms (max) and DS18S20 = 750ms (max).

    Du meinst sicherlich den Unterschied zum DS18B20, den man im 12bit Modus betreiben kann. 12bit Auflösung kann man beim DS1820 und DS18S20 nur über die Zusatzregister COUNT_REMAIN und COUNT_PER_°C bekommen.

Seite 1 von 4 123 ... LetzteLetzte

Berechtigungen

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

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad