“端口扩展”的版本间的差异
来自Labplus盛思维基百科
小 |
Labplus课程组(讨论 | 贡献) (→MicroPython示例) |
||
第32行: | 第32行: | ||
from microbit import * | from microbit import * | ||
− | def | + | def extendedPortInit(): |
− | + | cfg=bytearray([0x03,0b01000000]) | |
− | + | i2c.write(0x20, cfg) | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | def | + | def readExtendedPort(pin): |
− | + | reg=bytearray([0])] | |
− | + | i2c.write(0x20, reg) | |
− | + | dat=i2c.read(0x20, 4) | |
− | + | return dat[0] & (2**pin) | |
− | def | + | def digitalRead(pin): |
− | + | pin.read_digital() | |
− | + | pin.set_pull(pin.NO_PULL) | |
− | + | return pin.read_digital() | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
while True: | while True: | ||
− | + | extendedPortInit() | |
− | + | if digitalRead(pinreadExtendedPort(0) | |
− | + | ): | |
− | + | pinreadExtendedPort(1) | |
− | + | .write_digital(1) | |
− | + | sleep(1000) | |
− | |||
− | sleep( | ||
</pre> | </pre> | ||
2018年4月20日 (五) 17:01的版本
概述
当主控的引脚不够用时,可用该模块通过I2C接口拓展I/O口,最大支持8个I/O引脚拓展。
技术参数
- 工作电压:VCC 3.3-5V
- I2C数字信号通讯
- 最大支持8个I/O端口拓展
- 模块尺寸:24x46x7.5mm
引脚定义
VCC | 电源 |
SDA | I2C数据 |
SCL | I2C时钟 |
GND | 地 |
使用教程
详细的寄存器操作和指令说明,可查阅芯片手册点击下载
连接示意图
Arduino示例
MicroPython示例
from microbit import * def extendedPortInit(): cfg=bytearray([0x03,0b01000000]) i2c.write(0x20, cfg) def readExtendedPort(pin): reg=bytearray([0])] i2c.write(0x20, reg) dat=i2c.read(0x20, 4) return dat[0] & (2**pin) def digitalRead(pin): pin.read_digital() pin.set_pull(pin.NO_PULL) return pin.read_digital() while True: extendedPortInit() if digitalRead(pinreadExtendedPort(0) ): pinreadExtendedPort(1) .write_digital(1) sleep(1000)
图形化示例
版本历史记录
Version | Date | Note [+]新增[-]删除[^]修复 |
---|---|---|
V2.0 |