Hallo,
ich habe mir eine Temperatur Anzeige gebaut.
Leider tritt immer wieder folgender Fehler auf.
Statt die richtige Temperatur zeigt das Teil -16° an. Ich habe nun die -10° durch die Software ausgeblendet, aber ich würde doch gerne wissen wovon sowas kommen könnte. Warum schickt mir da der Fühler die falschen Werte???
Habt Ihr da eine Idee?
Hier der Teil vom Log File:
Gemessene Helligkeit = 1013
Uhrzeit ist = 13:00:52
Datum ist = 18.03.07
B1_a= 255
B2_a= 255
Tempfehlera= 510
************************************************** ************************************************** **
------------------------ Fehler Temperatur Aussen ---------------------------------------------------
************************************************** ************************************************** **
B1_a= 25
B2_a= 1
Tempfehlera= 26
Aussentemperatur= 17°C
B1_i= 152
B2_i= 2
Tempfehleri= 154
Temperatur im Gehause= 41
Luefter Status AUS
Der Program Code ist:
Die definition der Variablen habe ich nicht mehr beigefügt.
Code:' $regfile = "m32def.dat" $framesize = 40 $swstack = 10 $hwstack = 32 $crystal = 7372800 $baud = 2400 Const Dekaden = 6 ' Anzahl der Anzeigen (dekaden) Const Pulsdauer = 10000 ' Dauer eines Impulses -------------Temperatur vom Sensor T1 Ausentemperatur auslesen ---------------- Config 1wire = Portd.6 ' Eingang Temperatur Sensor 1 Außen Dim Temperaturstr As String * 4 1wreset 1wwrite &HCC ' Skip_Rom 1wwrite &H44 ' Convert Waitms 250 1wreset 1wwrite &HCC ' Skip_Rom 1wwrite &HBE ' Read_Sp B1_a = 1wread() B2_a = 1wread() Print "B1_a= " ; B1_a Print "B2_a= " ; B2_a Tempfehlera = B1_a + B2_a Print "Tempfehlera= " ; Tempfehlera If Tempfehlera = 510 Then 'Set Portc.2 Print "******************************************************************************************************" Print " ------------------------ Fehler Temperatur Aussen ---------------------------------------------------" Print "******************************************************************************************************" Goto Temperatur End If 1wreset If B2_a >= 248 Then B1_a = R_a - B1_a B2_a = R_a - B2_a Vorzeichen_a = -1 Else Vorzeichen_a = 1 End If T1_a = B1_a / 16 T2_a = B2_a * 16 T1_a = T1_a + T2_a Temper_a = T1_a * Vorzeichen_a 'Print "Temperatur aussen= " ; Temper_a '--------- ° Grad Zeichen anhängen wenn Temperatur unter -10°C ----------------- '--------- °C Grad und C Zeichen anhängen wenn Temperatur über -10°C ----------- If Temper_a <= -10 Then Temperatur_a = Str(temper_a) ' Wert in String wandeln Print "Temperatur aussen= " ; Temperatur_a Temperatur_a = Temperatur_a + "°" ' ° anhängen Print "Aussentemperatur= " ; Temperatur_a Else ' °C anhängen Temperatur_a = Str(temper_a) ' Wert in String wandeln ' Print "Temperatur2= " ; Temperatur_a Temperatur_a = Temperatur_a + "°C" ' °C anhängen Print "Aussentemperatur= " ; Temperatur_a End If '-------------Temperatur vom Sensor T1 Gehäuse Temperatur auslesen ---------------- Config 1wire = Portd.7 ' Eingang Temperatur Sensor 2 (auf der Platine) ' actual measuring 'Dim Temperaturstr As String * 4 1wreset 1wwrite &HCC ' Skip_Rom 1wwrite &H44 ' Convert Waitms 250 1wreset 1wwrite &HCC ' Skip_Rom 1wwrite &HBE ' Read_Sp B1_i = 1wread() B2_i = 1wread() Print "B1_i= " ; B1_i Print "B2_i= " ; B2_i Tempfehleri = B1_i + B2_i Print "Tempfehleri= " ; Tempfehleri If Tempfehleri = 510 Then 'Set Portc.2 End If 1wreset If B2_i >= 248 Then B1_i = R_i - B1_i B2_i = R_i - B2_i Vorzeichen_i = -1 Else Vorzeichen_i = 1 End If T1_i = B1_i / 16 T2_i = B2_i * 16 T1_i = T1_i + T2_i Temper_i = T1_i * Vorzeichen_i Print "Temperatur im Gehause= " ; Temper_i '--------------- Lüfter Steuerung ---------------------------------------------- If Temper_i > 45 Then Print "Luefter Status EIN" ' Maskieren der ersten Stelle von Segment6 wegen Ansteuerung Lüfter Luefter = &B10000000 Else Luefter = &B00000000 Print "Luefter Status AUS" End If Print "-----------------------------------------------------------------------"
Vielen Dank im Voraus.
Gruß
Richard







Zitieren
Lesezeichen