Servus
ich hab ein logisches problem bei der umsetzung mit send _send umschreiben hat geklappt

aber die read _red funktion bekomm ich nicht hin
bräuchte da mal eure logische boolsche hilfe
danke

hier die Funktionen
send red ist das soll _send _read sind die ausgangsfunktionen

Code:
    def send(self,value):
        x=0x80
        while x:
            sda=(x & value) and 1
            if sda == 1 :
                self.p.setData(1)# sda=1, scl=0
                self.p.setData(0)# sda=1, scl=1
                self.p.setData(1)# sda=1, scl=0
            else:
                self.p.setData(3)#sda=0, scl=0
                self.p.setData(2)# sda=0, scl=1
                self.p.setData(3)#sda=0, scl=0
            x=x>>1
    def read(self):
        x=0x80
        value=0
        while x:
            self.p.setData(0)# sda=1, scl=1
            #if self.bus.read():
            #    value+=x  
            self.p.setData(1)# sda=1, scl=0
            x=x>>1
        return(value)
if self.bus.read()
bekomm ich nicht hin
das I2C gerät bringt ja dann den sda auf 1 oder 0
das original aus der _init_ des I2C

Code:
    def _send(self, value):
        x=0x80
        while x:
            self.bus.write( sda=((x & value) and 1), scl=0 )
            self.bus.write( sda=((x & value) and 1), scl=1 )
            self.bus.write( sda=((x & value) and 1), scl=0 )
            x=x>>1

    def _read(self):
        x=0x80
        value=0
        while x:
            self.bus.write( sda=1, scl=1 )
            if self.bus.read():
                value+=x  
            self.bus.write( sda=1, scl=0 )
            x=x>>1
        return(value)