- LiFePO4 Speicher Test         
Ergebnis 1 bis 2 von 2

Thema: LM75 i2c Temp-Sensor Beispiel aus RNWissen bringt immer 9999

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    12.06.2004
    Beiträge
    162

    LM75 i2c Temp-Sensor Beispiel aus RNWissen bringt immer 9999

    Anzeige

    E-Bike
    Hi folks!

    Wollte mal Temperaturmessung mitm LM75 über I2C machen. Vorneweg, das ist mein erstes i2c-Projekt.

    Mein Programm ist 1:1 aus RN-Wissen übernommen, klar, mit ein paar kleinen Änderungen.

    Am LM75 hab ich die i2c-Pins (A1-A3) auf Masse gelegt, dadurch hab ich als Adresse &h90. Zum lesen dann &h91.

    Im nachfolgenden kommt mein Bascom-Programm. Hoffe, ihr könnt den Fehler finden.

    Achja, auf dem LCD gibt er die ganze Zeit "Temp.: 9999" aus.

    Code:
    $regfile = "m8def.dat"
    $crystal = 16000000
    
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.4 , Rs = Portd.5
    Config Lcdbus = 4
    
    Config Sda = Portc.4
    Config Scl = Portc.5
    
    Cursor Off Noblink
    
    Do
    
    Cls
    
    Dim Ival As Integer
    Dim Msb As Byte
    Dim Lsb As Byte
    
    I2cstart
    I2cwbyte &H91                                               ' Lese-adresse !
    If Err = 1 Then
     I2cstop                                                    ' kein ACK vom LM75 --> irgendein Fehler
     Ival = 9999                                                ' Zeichen, daß der Wert ungültig ist !
    Else
     I2crbyte Msb , Ack
     I2crbyte Lsb , Nack
     I2cstop
     If Msb.7 = 1 Then
      Ival = Makeint(msb , &HFF)                                ' auffüllen mit den Vorzeichen bits
     Else
      Ival = Makeint(msb , &H00)                                ' positiv, also bleibt es so
     End If
     Ival = Ival * 10                                           ' erweitern
     If Lsb.7 = 1 Then
      Ival = Ival + 5                                           ' fünf Zehntel Grad dazu
     End If
    End If
    
    Locate 1 , 1
    Lcd "Temp.: "
    
    Locate 1 , 8
    Lcd Ival
    
    Wait 1
    
    Loop

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    12.06.2004
    Beiträge
    162
    Danke, hat sich erledigt.

    Hier der Link der Lösung: https://www.roboternetz.de/phpBB2/ze...857&highlight=

Berechtigungen

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

Labornetzteil AliExpress