Hi,
ich habe heute mal den 1 wire baustein ds 1820 testen wollen doch irgendwie will er nich mit mir reden aber ich bin mir ziemlich sicher das ich nichts falsch mache. der sensor steck auf einem steckbrett, bekommt 5V und hat den benötigten widerstand. jedoch macht er keinen mucks kann mir jemand helfen.
hier mal den zusammen geschnipselten code:
man muss nicht so auf die kommerntare sehen die habe ich mir bei meiner verzweifelten fehlersuche rein gebaut. ausserdem mag das prog vieleicht für den anfang etwas komisch sein.Code:$regfile = "m8def.dat" $crystal = 4000000 $baud = 19200 Config 1wire = Portb.0 'daten port Const Ds1820 = &H10 'daten des 1w devices Const Skiprom = &HCC Const Read_rom = &H33 Const Convertt = &H44 Const Read_ram = &HBE Const Write_ram = &H4E Const Copy_ram = &H48 Const Recall_ee = &HB8 Const Read_power = &HB4 Dim Family_code As Byte 'daten variabeln die gelesen werden Dim Serial_number(6) As Byte Dim Crc As Byte Dim Scratch(9) As Byte Dim I As Byte 'temperatur variabeln Dim Temp As Word Dim Temp1 As Integer Dim Stemp As Single Do 1wreset If Err = 1 Then Print "DS 1820 Error" ' prüfe ob ds1820 angeschlossen 1wwrite Read_rom 'nur wenn 1 ds am bus man braucht kein 1wsearch wenn 1 am bus Family_code = 1wread() 'lese familie aus For I = 1 To 6 Serial_number(i) = 1wread() 'lese name aus Next Crc = 1wread() ' lese check summe aus If Family_code <> Ds1820 Then 'vergleiche familie mit daten über ds1820 Exit Do 1wwrite Convertt 'initialiesiere temperaturmessung Do Temp = 1wread() ' lese Temperatur in temp Loop Until Temp = &HFF 'verlase wenn temp = FF 1wreset 'reset 1w device If Err = 1 Then ' prüfe ob ds1820 angeschlossen Print " DS 1820 Error" 1wwrite Skiprom ' starte: alle ds am bus senden Temperatur 1wwrite Read_ram ' starte: lese scart pad For I = 1 To 9 Scratch(i) = 1wread() 'speichere daten in scratch * 9 Next Temp = Scratch(2) ' temp ist 1+2 byte von scratch Shift Temp , Left , 8 ' lese linke 8 von temp Temp = Temp + Scratch(1) 'rechne temperatur aus counts Temp1 = Temp Print "Der Temperaturwert ist: " ; Temp ; "Counts." 'sende temp als wert Temp1 = Temp1 / 2 Print "Die gemessen Temp.ist" ; Temp1 ; "Grad" 'sende temp als grad Stemp = Scratch(8) - Scratch(7) Stemp = Stemp / Scratch(8) 'bestimme endgültige temperatur Stemp = Stemp + Temp1 Stemp = Stemp - 0.25 Print Fusing(stemp , "#.##"); 'sende temperatur mit komma Wait 2 Loop Print "Kein Sensor aktiv" ' kein sensor momentan aktiv End If End If End If End
nun woran liegt es vileicht an der verbindung was ich nicht glaube oder am prog.
mfg m.r.







Zitieren

Lesezeichen