-         

Ergebnis 1 bis 3 von 3

Thema: Mehrere Thermometermodule am I2C auslesen

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    13.03.2008
    Beiträge
    5

    Mehrere Thermometermodule am I2C auslesen

    Anzeige

    Hallo und guten Tag.

    Ich bin Dirk und fange an mit Basic zu experimentieren.Ich habe
    mir eine M Unit 2.0 zugelegt und einige einfache Programme zum Thema
    langzeit Datenerfassung geschrieben.

    Nun habe ich mich seit Tagen beim I2C Bus festgebissen und komme
    nicht mehr weiter. Ich habe mir Programmbeispiele abgeschrieben um
    das Thermometermodul von Conrad auszulesen. Hat funktioniert, war ja
    auch nicht schwer es abzutippen. Nun möchte ich aber ein zweites
    Thermometermodul anschließen (später sollen es noch ein paar mehr
    werden um die Heizungsanlage auszuwerten ). Aber das bekomme ich
    nicht hin .

    Kann mir da jemand weiterhelfen ? Über Tipps oder sogar ein kleines
    Programm in Basic, was ich auf meine Bedürfnisse selber zuschneiden
    kann, wäre ich sehr dankbar.
    Oder weiß jemand einen guten Link, wo es solche Softwarebausteine
    gibt.

    Viele Grüße von der stürmischen Ostsee.
    Dirk

  2. #2
    Erfahrener Benutzer Roboter Experte Avatar von Tido
    Registriert seit
    14.11.2006
    Ort
    OWL
    Alter
    41
    Beiträge
    609
    Hi Dirk,

    so in etwa könnte es aussehen (nur das Wichtigste):

    Code:
    #start
    Sensor=140                'Adresse Sensor1
    readtemp()
    print value
    Sensor=156               'Adresse Sensor2
    readtemp()
    print value
    'usw.
    goto start
    
    
    '---- Funktionen -------------------------------------------------
    
    FUNCTION readtemp()
    
    IIC.INIT
    
    IIC.start
    IIC.SEND Sensor
    IIC.SEND EEh           'temperaturmessung anstoßen
    IIC.STOP
    
    PAUSE 10
    
    IIC.start
    IIC.SEND Sensor
    IIC.SEND 22h            'temperaturmessung stoppen
    IIC.stop
    
    '---------------------------
    
    IIC.start
    IIC.SEND Sensor
    IIC.SEND AAh            'temperaturmessung Lesekommando
    IIC.stop
    
    IIC.start
    IIC.SEND (Sensor+1)        'lowtemperaturbyte auslesen
    IIC.GET value
    
    minusflag = OFF
    IF value > 128 THEN
     minusflag = ON
     value = (255-value)+1
    END IF
    temperatur = value
    
    IIC.stop
    '------------------------------
    IIC.start
    IIC.SEND Sensor
    IIC.SEND A8h           'Counter Lesekommando
    IIC.stop
    
    IIC.start
    IIC.SEND (Sensor+1)       'Counter auslesen
    IIC.GET value
    counter = value
    IIC.stop
    '-----------------------------
    
    IIC.start
    IIC.SEND Sensor
    IIC.SEND A9h           'Slope Lesekommando
    IIC.stop
    
    IIC.start
    IIC.SEND (Sensor+1)       'Slope auslesen
    IIC.GET value
    slope = value
    IIC.stop
    
    IIC.OFF
    IF minusflag THEN
    value=((temperatur * 100 - 25)-((slope-counter)*100/slope*100)/100)/10
    value=value*(-1)
    ELSE
    value=((temperatur * 100 - 25)+((slope-counter)*100/slope*100)/100)/10
    END IF
    
    END FUNCTION
    MfG
    Tido

    ---------------------------------------------------
    Have you tried turning it off and on again???
    ---------------------------------------------------

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    13.03.2008
    Beiträge
    5
    Vielen Dank soweit. Ich werde das gleich mal ausprobieren und weiterprogramieren.

    Gruß

Berechtigungen

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