import machine import mcp import time from machine import I2C i2c=I2C(sda=machine.Pin(23), scl=machine.Pin(22)) reg=bytearray(1) a = 0x20 reg[0]=0xff i2c.writeto_mem(a, 0x01, reg) # All Input Register B i2c.writeto_mem(a, 0x0d, reg) # All Pullups Register B # Note: Man könnte die Polarität ändern, und so die GPIO-Bits invertieren # i2c.writeto_mem(a, 0x03, reg) reg[0]=0x00 i2c.writeto_mem(a, 0x00, reg) # All Output Register A # GPIO 0x12 (A), 0x13 (B) rega=bytearray(1) regb=bytearray(1) old = 0 while True: rega[0]=(rega[0]+1)%256 i2c.writeto_mem(a, 0x12, rega) # Write to GPIOA i2c.readfrom_mem_into(a, 0x13,regb) # Read from GPIOB if (regb[0]!=old): print(bin(regb[0])) old=regb[0] # time.sleep_ms(100)