旋转电位器(rotary-potentiometer)4大积木块完整清单:从初始化到获取方向
【免费下载链接】CupCode_EC11旋转编码器模块此扩展适配于采用EC11的旋转编码器,不支持按键。项目地址: https://gitcode.com/yuanshixiong/rotary-potentiometer
旋转电位器(rotary-potentiometer)是基于源师兄扩展的EC11 旋转编码器积木编程扩展,提供初始化、重置计数、获取值、获取方向 4 大积木块,让你不写一行代码就能读取旋钮的旋转方向与计数。不同于普通电位器只能输出模拟值,EC11 输出的是脉冲,没有角度限制,可以从任意位置向左/向右旋转。本文带你逐个看懂这 4 大积木块,从接线到上手一步到位。
EC11旋转编码器 4 大积木块速览清单
| # | 积木名称 | 类型 | 功能 |
|---|---|---|---|
| ① | EC11旋转编码器 | 初始化 | 语句型 | 设定 A/B 引脚、取值范围与步长,创建编码器对象 |
| ② | EC11旋转编码器 | 重置计数为 | 语句型 | 一键把当前值设为指定数值(清零/复位) |
| ③ | EC11旋转编码器 | 获取值 | 输出型 | 读取当前旋转电位器计数值 |
| ④ | EC11旋转编码器 | 获取方向 | 输出型 | 读取旋转方向:顺时针 1、逆时针 -1、无旋转 0 |
4 个积木块统一定义在 blocksdef.js 中,分类入口见 category.json,底层驱动则是 library/ec11.py 里的EC11类(自带严格消抖与加速计数)。
积木① 初始化:先设定引脚与取值范围
初始化积木(ohcode_extend_ec11_init,定义见 blocksdef.js)要放在程序开头,是其余 3 个积木的工作基础。参数很简单:
- A连接到 / B连接到:选择 CLK(A 相)、DT(B 相)引脚,支持 P0、P1、P2、P5、P8、P11~P16;
- 最小值 / 最大值:计数范围,默认
0~255,当前值会被自动限制在这个区间内; - 步长:每次旋转的计数量,默认
1,步长越大旋钮响应越快。
💡 两个要点:A/B 引脚不要与其他已占用引脚冲突;若旋转方向与预期相反,多半是 A/B 接反了。
积木② 重置计数:一键清零旋转电位器
重置积木(ohcode_extend_ec11_set_value,定义见 blocksdef.js)把当前值直接设为指定数值(默认0)。典型场景:旋钮到达某个位置后归零重新计数。设置值会被自动限制在初始化设定的最小值~最大值之间,无需担心越界。
积木③ 获取值:读取当前旋转电位器计数
获取值积木(ohcode_extend_ec11_get_value,定义见 blocksdef.js)是输出型积木,可嵌入显示、比较或运算积木中,读取当前计数值(整数,范围为初始化设定的最小值~最大值)。音量调节、速度档位这类场景直接用它最合适。
积木④ 获取方向:判断顺时针还是逆时针
获取方向积木(ohcode_extend_ec11_get_direction,定义见 blocksdef.js)返回当前旋转方向:
1:顺时针旋转;-1:逆时针旋转;0:无新的旋转。
⚠️ 小提醒:方向在每次旋转事件后只返回一次即复位,需要持续判断方向时,请在每次旋转后立即读取。
旋转电位器接线与上手:4 步跑通 EC11
- 接线:CLK/DT 分别接到积木中选择的两个数字引脚,VCC 接 3.3 V/5 V,GND 接地;SW(按键)脚悬空即可(本扩展不支持按键);
- 初始化:程序开头放"初始化"积木,选定 A/B 引脚与取值范围;
- 读取:主循环中读"获取值"或"获取方向",执行调参、翻页等逻辑;
- 复位:需要时放"重置计数为"清零当前值。
完整接线对照表见 README.md。
EC11 旋转编码器常见问题速查
| 现象 | 原因与解决办法 |
|---|---|
| 旋转方向与预期相反 | A/B 两相接反:交换 CLK/DT 接线,或初始化时设reverse=True |
| 读数偶发反向/抖动 | 检查接线是否牢固、供电是否稳定(建议 3.3 V 共地);驱动已内置 5 次采样取多数、连续 3 次同向才确认的消抖逻辑(library/ec11.py) |
| 数值卡在边界不动 | 当前值已达最小值/最大值被钳位;调大初始化积木的最大值即可 |
| "获取方向"一直是 0 | 方向每次旋转后只返回一次;请在旋转后立即读取 |
| 按键无效 | 本扩展不支持 EC11 的按键(SW)功能,请改用其他按键积木 |
掌握这 4 个积木块,就能覆盖 EC11 旋转编码器的全部基础功能;想深入了解消抖与加速计数原理,可阅读驱动实现 library/ec11.py。
【免费下载链接】CupCode_EC11旋转编码器模块此扩展适配于采用EC11的旋转编码器,不支持按键。项目地址: https://gitcode.com/yuanshixiong/rotary-potentiometer
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考