Ich habe meinen Sensor wie folgt angeschlossen
Pin1 GND an 0V
Pin2 DQ
Pin3 VDQ an 5V
Mit DQ gehe ich zum microConroller und ich gehe von DQ über einen
4,7kOhm Widerstand zu 5V.
habe ich da vielleicht irgendwo einen Fehler gemacht?
Code:
$regfile = "M32def.dat"
$crystal = 8000000
$baud = 9600
Declare Sub Read1820
Declare Sub Crcit
Declare Sub Temperature
Dim Bd(9) As Byte
Dim I As Byte , Tmp As Byte
Dim Crc As Byte
Dim T As Integer , T1 As Integer
Dim V As Byte
Config Lcdpin = Pin , Db4 = Porta.2 , Db5 = Porta.3 , Db6 = Porta.4 , Db7 = Porta.5 , E = Porta.1 , Rs = Porta.0
Config Lcd = 16 * 4
Config 1wire = Portd.2
Cursor Off Noblink
Cls
Locate 1 , 1 : Lcd "Brutkasten"
Locate 2 , 1 : Lcd "T="
Do
   Temperature
   Waitms 250
Loop
End

'//////////////////////////////////////////////////////////////////////////////
Sub Temperature                                             ' actual measuring
   1wwrite &HCC : 1wwrite &H44                              ' start measure
   Waitms 300                                               ' wait for end of conversion
   Read1820                                                 ' read 9 bytes
   If Err = 1 Then                                          ' if there is no sensor
      Locate 2 , 4 : Lcd "--  "                             ' we put "-- " on LCD
   Else
      If Crc = 0 Then                                       ' sensor present, check CRC
         Locate 2 , 4 : Lcd T                               ' CRC OK, print T*10 on LCD
      Else
         Locate 2 , 4 : Lcd "**  "                          ' CRC NOT OK, "** " on LCD
      End If
   End If
End Sub
'//////////////////////////////////////////////////////////////////////////////
Sub Read1820                                                ' reads sensor ans calculate
                                                   ' T for 0.1 C
   1wreset                                                  ' reset the bus
   1wwrite &HCC                                             ' read internal RAM
   1wwrite &HBE                                             ' read 9 data bytest
   Bd(1) = 1wread(9)                                        ' read bytes in array
   1wreset                                                  ' reset the bus
   Crcit                                                    ' ckeck CRC
   If Crc = 0 Then                                          ' if is OK, calculate for
      Tmp = Bd(1) And 1                                     ' 0.1C precision
      If Tmp = 1 Then Decr Bd(1)
      T = Makeint(bd(1) , Bd(2))
      T = T * 50 : T = T - 25 : T1 = Bd(8) - Bd(7) : T1 = T1 * 100
      T1 = T1 / Bd(8) : T = T + T1 : T = T / 10
   End If
End Sub
'//////////////////////////////////////////////////////////////////////////////
Sub Crcit                                                   ' calculate 8 bit CRC
                                                   ' bigger but faster
   Crc = 0                                                  ' needs a 256 elements table
   For I = 1 To 9
      Tmp = Crc Xor Bd(i)
      Crc = Lookup(tmp , Crc8)
   Next
End Sub
'//////////////////////////////////////////////////////////////////////////////
Crc8:
Data 0 , 94 , 188 , 226 , 97 , 63 , 221 , 131 , 194 , 156
Data 126 , 32 , 163 , 253 , 31 , 65 , 157 , 195 , 33 , 127
Data 252 , 162 , 64 , 30 , 95 , 1 , 227 , 189 , 62 , 96
Data 130 , 220 , 35 , 125 , 159 , 193 , 66 , 28 , 254 , 160
Data 225 , 191 , 93 , 3 , 128 , 222 , 60 , 98 , 190 , 224
Data 2 , 92 , 223 , 129 , 99 , 61 , 124 , 34 , 192 , 158
Data 29 , 67 , 161 , 255 , 70 , 24 , 250 , 164 , 39 , 121
Data 155 , 197 , 132 , 218 , 56 , 102 , 229 , 187 , 89 , 7
Data 219 , 133 , 103 , 57 , 186 , 228 , 6 , 88 , 25 , 71
Data 165 , 251 , 120 , 38 , 196 , 154 , 101 , 59 , 217 , 135
Data 4 , 90 , 184 , 230 , 167 , 249 , 27 , 69 , 198 , 152
Data 122 , 36 , 248 , 166 , 68 , 26 , 153 , 199 , 37 , 123
Data 58 , 100 , 134 , 216 , 91 , 5 , 231 , 185 , 140 , 210
Data 48 , 110 , 237 , 179 , 81 , 15 , 78 , 16 , 242 , 172
Data 47 , 113 , 147 , 205 , 17 , 79 , 173 , 243 , 112 , 46
Data 204 , 146 , 211 , 141 , 111 , 49 , 178 , 236 , 14 , 80
Data 175 , 241 , 19 , 77 , 206 , 144 , 114 , 44 , 109 , 51
Data 209 , 143 , 12 , 82 , 176 , 238 , 50 , 108 , 142 , 208
Data 83 , 13 , 239 , 177 , 240 , 174 , 76 , 18 , 145 , 207
Data 45 , 115 , 202 , 148 , 118 , 40 , 171 , 245 , 23 , 73
Data 8 , 86 , 180 , 234 , 105 , 55 , 213 , 139 , 87 , 9
Data 235 , 181 , 54 , 104 , 138 , 212 , 149 , 203 , 41 , 119
Data 244 , 170 , 72 , 22 , 233 , 183 , 85 , 11 , 136 , 214
Data 52 , 106 , 43 , 117 , 151 , 201 , 74 , 20 , 246 , 168
Data 116 , 42 , 200 , 150 , 21 , 75 , 169 , 247 , 182 , 232
Data 10 , 84 , 215 , 137 , 107 , 53
oder ist mein Programm fehlerhaft?
Denn der Controller erkennt den Sensor nicht
Währe froh wenn ich den Sensor bald mal zum laufen bringe
Danke für eure Antworten