-
        

Seite 1 von 6 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 55

Thema: DS1621 auslesen

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    24.04.2005
    Ort
    Bayern
    Alter
    31
    Beiträge
    336

    DS1621 auslesen

    Anzeige

    Hallo

    wie kann ich mit dem DS1621 eine Temperatur auslesen? ich habe schon einige Beispielprogramme versucht. Der liefert mir aber nur komische zahlen. wie muss ich denn diese zahl abspeichern?

    Ich habe mir dieses Programm mal geschrieben. Ist das schon annähernd richtig?

    Code:
    $regfile = "M32def.dat"                                     ' chip
    $crystal = 16000000                                         ' frequenz
    $baud = 19200                                               ' baud rate
    
    $lib "i2c_twi.lbx"                                          ' we do not use software emulated I2C but the TWI
    
    Config Scl = Portc.0                                        ' we need to provide the SCL pin name
    Config Sda = Portc.1                                        ' we need to provide the SDA pin name
    
    I2cinit                                                     ' we need to set the pins in the proper state
    
    Config Twi = 100000                                         ' wanted clock frequency
    'will set TWBR and TWSR
    'Twbr = 12                                                   'bit rate register
    'Twsr = 0                                                    'pre scaler bits
    
    Dim T As Word
    
    Do
    
    
       I2creceive &H90 , T
    
       Print "T= " ; T
       Print "receive" ; Err
       Waitms 500
    Loop
    
    
    End

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    22.01.2005
    Beiträge
    23
    $baud = 9600
    versuch es mal ...am pc auch

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    24.04.2005
    Ort
    Bayern
    Alter
    31
    Beiträge
    336
    ne baud 19200 passt schon die hab ich am pc auch. das funktioniert alles. die hab ich mal höher gestellt weil es da schon mal probleme gegeben hatt. aber ich glaube dass ich die temperatur vom Sensor nicht richtig einlesen kann.

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.12.2004
    Alter
    64
    Beiträge
    277
    Hallo,

    mit Baud hat das ja nu auch nix zu tun.

    Code:
    Do 
    
    
       I2creceive &H90 , T 
    
       Print "T= " ; T 
       Print "receive" ; Err 
       Waitms 500 
    Loop
    Ähmm.. soll das Deine gesamte DS1621 Ausleseroutine sein? Ist Dir nicht aufgefallen, daß die Beispielprogramme (die Du ja probiert hast) deutlich umfangreicher sind?

    Wenn Du mir die Frage beantwortest, bekommst Du von mir noch'n Beispielprogramm .

    Grüße
    Henrik

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Hallo,
    vom DS1621 kommen 2 Byte, Suche mal das Datenblat dazu, da steht genau drin wie das ausschaut.
    Es wird in 0.5 Grad gemessen.

    http://www.alldatasheet.com/datashee...AS/DS1621.html

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.12.2004
    Alter
    64
    Beiträge
    277
    Zitat Zitat von linux_80
    Hallo,
    vom DS1621 kommen 2 Byte, Suche mal das Datenblat dazu, da steht genau drin wie das ausschaut.
    Es wird in 0.5 Grad gemessen.

    http://www.alldatasheet.com/datashee...AS/DS1621.html
    Yepp, oder auch in 0,06°C Auflösung wenn man Slope und Counter auswertet.

    Etwas Initialisierung gehort aber so oder so dazu .

    Grüße
    Henrik

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    So genau hab ich das DB nicht angeschut, aber mir ist nur gleich die Tabelle mit den Beispielwerten aufgefallen.

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    24.04.2005
    Ort
    Bayern
    Alter
    31
    Beiträge
    336
    @hrei
    doch das ist mir schon aufgefallen. Ich habe aber die erfahrung gemacht dass die meisten Beispielprogramme sehr umständlich geschrieben sind. (z.B. einen Atmega32 als Slave zu programmieren.) dieses habe ich auch viel kürzer geschrieben.

  9. #9
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.12.2004
    Alter
    64
    Beiträge
    277
    Zitat Zitat von Zeroeightfifteen
    @hrei
    doch das ist mir schon aufgefallen. Ich habe aber die erfahrung gemacht dass die meisten Beispielprogramme sehr umständlich geschrieben sind. (z.B. einen Atmega32 als Slave zu programmieren.) dieses habe ich auch viel kürzer geschrieben.
    Na, man kann ja bisweilen manches kürzer schreiben, aber dann sollte man schon wissen was man tut.

    Eine einfache Sub sieht zum Beispiel so aus - ACHTUNG-das ist die nackte Subroutine: (Übergeben wird die Deviceadresse des DS1621, das Ergebnis steht in der Variable Value):

    Code:
    '-------------------------------------------------------------------------------
    
    Sub Readtemp(byval Device As Byte)
    Local Deviceread As Byte
    Local Lowtemp As Byte
    Local Hightemp As Byte
    
    Deviceread = Device + 1
    
    'I2csend , Device , &HEE                     'kürzere Source, längerer Code
    
    I2cstart
    I2cwbyte Device
    I2cwbyte &HEE                                'Temperaturmessung anstoßen
    I2cstop
    
    'I2csend , Device , &HAA                     'kürzere Source, längerer Code
    
    I2cstart
    I2cwbyte Device
    I2cwbyte &HAA                                'Temperaturmessung Lesekommando
    I2cstop
    
    I2cstart
    I2cwbyte Deviceread
    I2crbyte Lowtemp , Ack                       'LSByte holen
    I2crbyte Hightemp , Nack                     'MSByte holen
    I2cstop
    
    Value = Lowtemp * 10
    If Hightemp = 128 Then
      Value = Value + 5
    End If
    
    End Sub
    
    '-------------------------------------------------------------------------------
    Grundlagen und nochmal Grundlagen lernen, Datenblätter lesen, verstehen und dann variieren .

    Grüße
    Henrik

  10. #10
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    24.04.2005
    Ort
    Bayern
    Alter
    31
    Beiträge
    336
    was bedeutet, das ist nur die nackte sub? muss ich da noch viel dazu schreiben? bzw wann muss ich in die sub springen?

Seite 1 von 6 123 ... LetzteLetzte

Berechtigungen

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