Beiträge von kpfundstein

    Jetzt hat es geklappt !!!!

    jedoch bin ich etwas verwirrt, da ich das crc8 byte noch anfügen musste ...
    ich dachte der bus.pec= true schreibt das crc8 byte ...laut Beschreibung, die ich gefunden habe:

    Packet Error Checking (PEC)
    ===========================
    Packet Error Checking was introduced in Revision 1.1 of the specification.

    PEC adds a CRC-8 error-checking byte to transfers using it, immediately
    before the terminating STOP.


    Neuer Code:

    print("Adr: 0x%02X" %bus.read_word_data(0x00, 0x2E))
    bus.pec = True
    data = [0x00, 0x00, 0x6F]
    bus.write_i2c_block_data(0x00, 0x2E, data)
    time.sleep(0.005)

    data = [0x5A, 0x00, 0xE1]
    bus.write_i2c_block_data(0x00, 0x2E, data)
    time.sleep(0.005)
    print("Adr: 0x%02X" %bus.read_word_data(0x00, 0x2E))
    bus.pec = False


    > bin dankbar für jeden Denkansatz !
    Ganz einfach: das Datenblatt lesen.

    Die Adresse wird in einem EEPROM gespeichert und kann geschrieben werden.

    Das ist nicht wirklich hilfreich, denn das Datenblatt habe ich natürlich angeschaut... Hast hast du es geschafft, die Adresse zu ändern ? Wenn Ja, dann wäre ich Dir Dankbar, wenn du mir einen Hinweis geben könntest ...

    Danke !

    Gruß

    Klaus

    Hallo Zusammen,

    ich habe an meinen PI einen GY-906 welcher einen Melexis MLX 90616 Temperatur Sensor hat angeschlossen. Das Auslesen des Sensors funktioniert mittlerweile wunderbar. Nun möchte ich, da ich mehrere Sensoren benötige die Adresse des Sensors von 0x5a ändern. Leider habe ich keinen Erfolg. Ich habe schon zahlreiche Foren durchwühlt und Samples ausprobiert ... leider klappt nicht ....

    bin dankbar für jeden Denkansatz !

    Gruß

    Klaus

    anbei mein Python Code :

    [font="Menlo"]#!/usr/bin/env python3[/font]
    [font="Menlo"]# ACHTUNG :[/font]
    [font="Menlo"]#[/font]
    [font="Menlo"]# sudo su -c 'echo "Y" > /sys/module/i2c_bcm2708/parameters/combined'[/font]
    [font="Menlo"]#[/font]
    [font="Menlo"]# muss ausgeführt werden, sonnst liefert derSensor keine Daten[/font]
    [font="Menlo"]#[/font]

    [font="Menlo"]import time[/font]
    [font="Menlo"]from Adafruit_I2C import Adafruit_I2C[/font]


    [font="Menlo"]Sensor = Adafruit_I2C(0x5A , 1, False)[/font]

    [font="Menlo"]temp = Sensor.readS16(0x06) * .02 - 273.15[/font]
    [font="Menlo"]print (" Ambient : ")[/font]
    [font="Menlo"]print ( round(temp, 3) )[/font]

    [font="Menlo"]temp = Sensor.readS16(0x07) * .02 - 273.15[/font]
    [font="Menlo"]print (" Object : ")[/font]
    [font="Menlo"]print ( round(temp, 3) )[/font]

    [font="Menlo"]# Versuch Addresse zu Ändern ....[/font]

    [font="Menlo"]Sensor.writeRaw8(0x2E)[/font]
    [font="Menlo"]Sensor.writeRaw8(0x00)[/font]
    [font="Menlo"]Sensor.writeRaw8(0x00)[/font]
    [font="Menlo"]Sensor.writeRaw8(0x2F)[/font]