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:
Ich Verwende ein externes Crystal und die Fusebits hab ich auch richtig eingestellt!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
Hat von euch jemand eine Idee woran das liegen kann?
Gruss Douser







Zitieren

Lesezeichen