-         

Ergebnis 1 bis 8 von 8

Thema: DS1721 mit Atmega8 auslesen

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    02.06.2005
    Ort
    Iserlohn
    Alter
    32
    Beitrge
    37

    DS1721 mit Atmega8 auslesen

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hallo Leute

    Ich wrde gerne einen DS1721 Temperaturfhler auslesen

    Ich schliee ihn ber die SCL und SDA schnittstelle an, aber wie bekomme ich die gesendete Temperatur in meinen Atmega8 um den wert an das Display weiterzugeben ?

    Ich wei nicht genau wo nach ich suchen soll, zumal mein Bascom wissen sehr mager ist.

    Vielen dank
    mfg. 2A

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    1229 O, 4838 N
    Alter
    48
    Beitrge
    2.731
    Hallo,

    Du knntest zB. im Wiki suchen, nach I2C, nach TWI, nach Bascom, nach DS1621 ...

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    02.06.2005
    Ort
    Iserlohn
    Alter
    32
    Beitrge
    37
    Hallo Linux

    Im Forum hab ich schon den Thread ber den 1621 gefunden, allerdings wusste ich nicht, ob ich das so bernehmen kann.

    Ich werde mal im Wiki nachschauen.

    Vielen Dank

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    1229 O, 4838 N
    Alter
    48
    Beitrge
    2.731
    Hallo,

    die beiden sind ziemlich gleich, der DS1721 hat eine grssere Auflsung von bis zu 0,0625C der 1621 nur 0,5C.
    Er braucht deshalb auch lnger zum wandlen der Temperatur.

    Nheres siehe Datenblatt.

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    02.06.2005
    Ort
    Iserlohn
    Alter
    32
    Beitrge
    37
    Moin
    Ich habe in Bascom einen code fr einen DS1624 gefunden.

    Code:
    $regfile = "m8def.dat"                                      'Define the chip you use
    
    $baud = 19200                                               'Define UART BAUD rate
    
    
    'Declare RAM for temperature storage
    Dim I2ctemp As Byte                                         'Storage for the temperature
    
    
    'Configure pins we want to use for the IC bus
    Config Scl = Portd.1                                        'Is serial clock SCL
    Config Sda = Portd.3                                        'Is serial data SDA
    
    
    
    'Declare constants - I2C chip addresses
    Const Ds1721wr = &B10010000                                 'DS1624 Sensor write
    Const Ds1721rd = &B10010001                                 'DS1624 Sensor read
    
    'This section initializes the DS1624
       I2cstart                                                 'Sends start condition
       I2cwbyte Ds1721wr                                        'Sends the address
    
    
    
    
    'byte with r/w 0
    
    
    
    
    'Access the CONFIG register (&HAC address byte)
    
       I2cwbyte &HAC
    'Set continuous conversion  (&H00 command byte)
    
       I2cwbyte &H00
       I2cstop                                                  'Sends stop condition
       Waitms 25                                                'We have to wait some time after a stop
    
       I2cstart
       I2cwbyte Ds1721wr
    
    'Start conversion (&HEE command byte)
       I2cwbyte &HEE
       I2cstop
       Waitms 25
    'End of initialization
    
    Print                                                       'Print empty line
    
    
    Do
    
       'Get the current temperature
       I2cstart
       I2cwbyte Ds1721wr
       I2cwbyte &HAA                                            'Read temperature (&HAA command byte)
       I2cstart
       I2cwbyte Ds1721rd                                        'The chip will give register contents
    
    'Temperature is stored as 12,5 but the ,5 first
       I2crbyte I2ctemp
    
    'So you'll have to read twice... first the ,5
       I2crbyte I2ctemp , Nack
    
    'And then the 12... we don't store the ,5
       I2cstop
                                                                    'That's why we read twice.
    
    'We give NACK if the last byte is read
    
       'Finally we print
    
    Print "Temperature: " ; Str(i2ctemp) ; " degrees" ; Chr(13);
    
       Waitms 25
    
    Loop
    End
    wenn ich meinen Atmega8 damit beschrieben habe, dann bekomme ich im Terminal emulator so Zeichen:
    Code:
    xxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxx
    woran kann das liegen ? ich wei echt nicht weiter.

    Vielen Dank, Lg 2A

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    1229 O, 4838 N
    Alter
    48
    Beitrge
    2.731
    Hallo,

    das liegt vermutlich daran, dass die Baudrate nicht bereinstimmt.
    Wahrscheinlich luft der AVR nicht mit den angegebenen MHz die im Programm angegeben ist, bzw. steht da garnix davon !
    Ich wrde im Programm immer angeben wie schnell der AVR luft ($crystal), hilft die Fehlerquelle schneller zu lokalisieren !

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Sdpfalz
    Alter
    43
    Beitrge
    2.240
    $crystal = ?


    *zeichenfller*
    Vor den Erfolg haben die Gtter den Schwei gesetzt

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    26.05.2007
    Beitrge
    594
    Ist eigentlich der DS1722 gleich in der Ansteuerung?
    Beim DS1721 steht zum Interface:
    "Data is transferred over 2-wire/SMBus interface"
    Beim DS1722:
    "Data is Read From/Written to Via a Motorola Serial Peripheral Interface (SPI) or Standard 3-Wire Serial Interface"
    Ist SMBus gleich 2-Wire? Also zumindest elektrisch gesehen?

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhnge hochladen: Nein
  • Beitrge bearbeiten: Nein
  •