-         

Ergebnis 1 bis 4 von 4

Thema: DS1820 unter Bascom

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    29.05.2005
    Ort
    Rott am Inn
    Alter
    30
    Beiträge
    373

    DS1820 unter Bascom

    Anzeige

    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

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    43
    Beiträge
    2.240
    was denn fürn Sensor?

    hmmm n DS18x20?

    Was genau funzt denn nicht?

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    29.05.2005
    Ort
    Rott am Inn
    Alter
    30
    Beiträge
    373
    Mein Sensor ds1820 wird nicht erkannt.
    If Err = 1 Then ' if there is no sensor
    Locate 2 , 4 : Lcd "-- " ' we put "-- " on LCD
    am Display wird immer -- angezeigt.
    An was könnte das liegen?
    Währe Dankbar für eure Hilfe.

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    43
    Beiträge
    2.240
    schon mal die Suche im Forum versucht?

    Da sind Listings für Bascom und DS1820 bei, hat bei mir einwandfrei funktioniert

Berechtigungen

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