- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 5 von 5

Thema: DS18B20 auslesen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.12.2006
    Beiträge
    109
    Vielen Dank für die Hilfe!

    Es hat geklappt!

    Wegen dem 2-ten Beitrag. Ich dachte, es ist besser einen neuen zu starten, da ich gesehen hatte, dass ich einen DS18B20 habe.

    Das war dann wohl dann nicht so gut. Sorry

    Martin

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.12.2006
    Beiträge
    109
    Muss leider noch eine Frage nachlegen!

    Nun habe ich noch 2 weitere DS18B20 engeschlossen und die entsprechenden SN (3 und 4te Zeile der SN) eingetragen. Doch es werden nur die ersten beiden ausgelesen. Was mache ich denn schon wieder falsch!? Kannst du mir bitte noch einmal helfen.

    Hier der Code mit den 4 Sensoren wobei nur die ersten beiden funktionieren.

    Ach so. Den MC habe ich noch ausgetauscht. Mit dem neuen funktionieren die beiden ersten.

    Code:
    $regfile = "m168def.dat"
    $crystal = 4000000                                          '3686400
    $hwstack = 46
    $swstack = 40
    $framesize = 40
    
    '**************************Funktionen LCD-Display*******************************
    Config Lcd = 40 * 4
    Config Lcdpin = Pin , Rs = Portb.0 , Db4 = Portd.5 , Db5 = Portd.4 , Db6 = Portd.3 , Db7 = Portd.2 , E = Portd.6 , E2 = Portd.7
    Config Lcdbus = 4
    Config Lcdmode = Port
    
    Dim ___lcdno As Byte
    
    ___lcdno = 0
     Initlcd
     Cursor Off
     Cls
    
    ___lcdno = 1
    Initlcd
    Cursor Off
    Cls
    '**************************Def. allgemeiner Variabeln***************************
    
    $baud = 19200
    
    Match_rom Alias &H55
    Skip_rom Alias &HCC
    Read_scratchpad Alias &HBE
    Write_scratchpad Alias &H4E
    Copy_scratchpad Alias &H48
    Start_conversion Alias &H44
    
    ' Pin für 1wire Schnittstelle festlegen. => DS1820 am Port C.1
    Config 1wire = Portc.1
    Dim Ds1820id(32) As Byte
    Dim Sc(9) As Byte                                           '????
    Dim T As Integer
    Dim I As Byte
    Dim Id As Byte
    Dim T_mess As Single
    
    
    'Die Adresse aller meiner DS1820 die ich vorher ausgelesen habe:
    Restore Sensor_ids
    For I = 1 To 32
       Read Ds1820id(i)
    Next I
    1wreset
    1wwrite Skip_rom
    1wwrite Start_conversion                                    'Alle angeschlossenen DS1820 zum Messen veranlassen
    Waitms 500                                                  'Ausgabe alle 0,5 Sekunden
    Do
       For Id = 1 To 25 Step 8                                  'ID für alle 4 DS1820 1,9,17,25
          Incr I
          1wreset                                               '1Wire Reseten
          1wwrite &H55                                          'MATCHROM=>Adress.den DS1820 anhand des ROM Inhaltes
          1wwrite Ds1820id(id) , 8                              '8 Byte ID wird uebertragen
          1wwrite &HBE                                          'READ SCATCHPAD => Liest alle Bytes des SP Memorys
          Sc(1) = 1wread(9)
          T = Sc(1)
          T = Makeint(sc(1) , Sc(2))                            'komprimiert zwei Bytes in die Integervariable T
          T_mess = T / 16                                       'Die Nachkommastelle entfernen
          Locate I , 11                                         'Temperatur in ganzen Grad ausgeben
          Lcd Fusing(t_mess , "#.#" )
       Next Id
       I = 0
       1wreset
       1wwrite Skip_rom
       1wwrite Start_conversion                                 'Alle angeschlossenen DS1820 zum Messen veranlassen
       Waitms 500                                               'Ausgabe alle 0,5 Sekunden
    Loop
    
    End
    
    Sensor_ids:
    
    Data &H28 , &H25 , &H67 , &HAA , &H03 , &H00 , &H00 , &H55
    Data &H28 , &HA2 , &H75 , &HAA , &H03 , &H00 , &H00 , &HC5
    Data &H28 , &HA7 , &H64 , &HAA , &H03 , &H00 , &H00 , &H9F
    Data &H28 , &HE6 , &H63 , &HAA , &H03 , &H00 , &H00 , &H8C
    Data &H10 , &HE8 , &HF4 , &H23 , &H01 , &H08 , &H00 , &HEF
    Geändert von radbruch (09.12.2012 um 15:35 Uhr)

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.12.2006
    Beiträge
    109
    Habs gefunden. Die Ausgabe der Messwerte de 3. und 4-ten Sensors war nicht mehr auf dem Display.

    Habe folgendes ersetzt:

    'Locate I , 11
    Spalte = I * 6
    Spalte = Spalte - 5
    Locate 1 , Spalte 'Temperatur in ganzen Grad ausgeben
    Lcd Fusing(t_mess , "#.#" )

    Danke an dieser Stelle für die Hilfe
    Martin

Ähnliche Themen

  1. Mehrere DS18B20 Auslesen
    Von Felix H. im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 14.04.2010, 17:30
  2. Frage: Temperatursensor DS18B20
    Von pod32 im Forum Sensoren / Sensorik
    Antworten: 7
    Letzter Beitrag: 03.01.2006, 12:54
  3. 1-Wire Temperatursensor DS18B20
    Von LuK-AS im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 02.12.2005, 18:32
  4. DS18B20
    Von x-ryder im Forum Sensoren / Sensorik
    Antworten: 1
    Letzter Beitrag: 14.05.2005, 22:52
  5. DS18B20
    Von MAxK im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 25.04.2005, 13:37

Berechtigungen

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

12V Akku bauen