import time
from machine import Pin, I2C
import mcp23017
i2c = I2C(scl=Pin(22), sda=Pin(21))
mcp = mcp23017.MCP23017(i2c, 0x20)
tt_ms = 50
# 引脚读写
pin_num = 0
# 引脚配置
# mode, 0: Pin is configured as an output
# mode, 1: Pin is configured as an input
# value, init value
mcp.pin(pin_num, mode=0, value=0)
pin: mcp23017.VirtualPin = mcp[pin_num]
print(f"read write pin digital value")
pin.value()
pin.value(1)
pin.value(0)
time.sleep(2)
# 上拉电阻
pin_num = 1
# pullup, 0: Weak pull-up 100k ohm resistor disabled
# pullup, 1: Weak pull-up 100k ohm resistor enabled
mcp.pin(pin_num, mode=0, pullup=1)
pin: mcp23017.VirtualPin = mcp[pin_num]
print(f"pull up test")
pin.value()
time.sleep(2)
# 中断, 参考一下链接,不建议使用
# p = Pin(0)
# p.irq()
# https://github.com/mcauser/micropython-mcp23017/tree/master/examples/rotaty_encoder