Hallo,

wenn nur 255 zurückkommt, sieht es so aus, als wenn sich der Slave nicht meldet.
Da Bascom nur das SoftwareI2C verwendet, und auch keine Abfrage enthalten ist, ob sich der Slave nach dem Start mit Adresse gemeldet hat, wird einfach irgendwas eingelesen, und das ist jeweils eine 255 !

Es sollte nach jedem senden eines Bytes die Variable ERR geprüft werden ob die 0 ist, nur dann kann man mit dem nächsten Byte weitermachen, ansonsten mit Stop die Übertragung beeenden.

Könnte so aussehen:
Code:
    I2cstart
    I2cwbyte Slaveadr
    If Err = 0 Then
        I2cwbyte &HEE
        I2cwbyte &HE1
        ' ... usw.
    End If 
    I2cstop
Das hilft noch nicht beim Problem, deswegen evtl. mal die Schaltung noch gernauer beschreiben, wie schauts mit GND aus usw.