硬件接口
引脚定义

| 接口或信号 | 用途 |
|---|---|
| 两个 Qwiic 与 1×4 焊盘 | GND、3.3 V、SDA、SCL,同一 I2C 总线 |
| PA2 | 按压开关 |
| PA0、PA1 | 编码器 A、B 相 |
| GND、3V3 | 电源与公共地 |
| PF2 / RESET | MCU 复位 |
| SWCLK、SWDIO | SWD 调试 |
| TX1、RX1 | UART 扩展信号 |
1×10 焊盘顺序以引脚图为准。正常使用由板载 MCU 采集编码器,不把 PA0、PA1、PA2 与主控输出直接对接。
I2C 地址选择
Knob 的默认 7 位地址可能为 0x3A 或 0x3B,官方库同时支持两者。单个模块使用官方库时,优先保留自动识别,无需预先二选一:
ModulinoKnob knob;
按官方 Knob 示例在初始化时调用 Modulino.begin() 和 knob.begin()。若需要手动指定地址,先只连接一块 Knob,在实际连接的 I2C 总线上扫描,再按结果设置:
| 扫描结果 | 官方库对象声明 | Wire 使用的地址 |
|---|---|---|
| 0x3A | ModulinoKnob knob(0x3A); | 0x3A |
| 0x3B | ModulinoKnob knob(0x3B); | 0x3B |
| 未发现设备 | 先检查供电、SDA/SCL 和所用总线 | 不靠反复替换地址排查接线 |
在 UNO R4 WiFi、Nano R4 等主控上使用 Qwiic 时,注意扫描对应的 Wire1 总线;扫描 Wire 不能代替扫描另一路 I2C。
0x74、0x76 与 7 位地址
官方地址工具把 Knob 标识为 Encoder,并列出两组对应关系:
| 固件 pinstrap 标识 | 对应的默认 7 位地址 |
|---|---|
| 0x74 | 0x3A |
| 0x76 | 0x3B |
手册将 0x76 和 0x3A 放在同一行,不能据此把两者当作同一个地址。Wire 和 ModulinoKnob 的显式地址参数使用 7 位地址,不直接填入 0x74 或 0x76。
依据:Arduino_Modulino 地址工具源码(GitHub) 与 Arduino_Modulino 设备发现源码(GitHub)。示例通过 Arduino IDE 的官方库打开。
多模块改址
同一总线上有多个地址冲突的 Knob 时,先只连接一块,在库的 Utilities 中打开 AddressChanger,按 115200 波特率查看设备表的 ADDR 列。输入“当前地址 新地址”,例如 0x3A 0x3C;仅在当前地址确为 0x3A 且 0x3C 未被占用时使用该示例。改址后重新上电并确认扫描结果,再接入其他模块。自定义地址在程序中显式指定,不依赖默认地址自动发现。
上拉与调试
I2C 上拉默认未安装,手册建议在需要时使用 4.7 kΩ、0402 电阻。先检查主控和其他节点已有上拉,避免重复并联。SWD 固件改写会影响原有功能,入门读取旋钮无需重刷模块。