主题 | 内容 | 教学目的/扩展视频 |
---|---|---|
旋转编码器 | 电路原理,跳线设置,结构分析。驱动程序与调用。 | 熟悉电路和驱动程序。 |
师从洋桃电子,杜洋老师
📑文章目录
- 一、旋转编码器是什么?
- 二、内部结构揭秘
- 2.1 机械组件解剖
- 2.2 核心部件说明
- 三、电路工作原理
- 3.1 信号生成机制
- 3.2 硬件连接方案
- 四、关键技术解析
- 4.1 消抖处理
- 4.2 方向识别算法
- 五、典型应用场景
- 六、开发板实战演示
- 七、选型注意事项
- 八、相关资源


一、旋转编码器是什么?
旋转编码器是一种通过机械旋转产生数字信号的传感器设备,核心功能包括:
- 360°无限位旋转检测
- 实时方向识别(左/右)
- 按压触发功能
- 高精度位置感知(20位格/圈)
▲ 🔍 旋转编码器介绍(中文)
二、内部结构揭秘
2.1 机械组件解剖
┌───────┐│ 轴体 │└───┬───┘│
┌──────────▼──────────┐
│ 弹性接触片 │
│ ┌─◆─K1───────┐ │
│ │ ┌───◆─K2│ │
│ │ │ ┌─◆─K3│ │
└──┼────┼─┼─────┘公共端 A B (三个引脚)
2.2 核心部件说明
部件 | 功能说明 |
---|---|
K1 | 按压开关(垂直方向触发) |
K2/K3 | 旋转检测开关(相位差90°) |
弹片 | 提供机械反馈和定位 |
三、电路工作原理
3.1 信号生成机制
旋转时K2/K3产生正交波形:
右旋时序: 左旋时序:
A相: _┌─┐_┌─┐ A相: ┌─┐_┌─┐_
B相: ┌─┐_┌─┐_ B相: _┌─┐_┌─┐
通过检测两个信号的相位差顺序判断旋转方向
3.2 硬件连接方案
+3.3V▲│10KΩ
ENCODER─┼─◆─→ PA6 (A相)│ │10KΩ├───◆─→ PB2 (B相)│ │10KΩ└───◆─→ PA7 (按压)
四、关键技术解析
4.1 消抖处理
- 机械抖动时间:≤2ms
- 软件消抖方案:
if(检测到电平变化){delay_ms(20); // 超时等待抖动if(状态仍有效)确认动作 }
4.2 方向识别算法
五、典型应用场景
- 智能家居:空调温度调节旋钮
- 工业控制:数控机床参数设置
- 车载系统:多媒体音量控制
- 医疗设备:监护仪参数调整
- 物联网终端:智能中控面板
六、开发板实战演示

核心功能实现逻辑:
while(1){读取编码器状态();if(左旋转){计数器--;更新数码管显示();}if(右旋转){计数器++;更新数码管显示();}if(按压动作){计数器归零;}
}
▲ 完整工程代码示例⏬旋转编码器数码管显示程序
七、选型注意事项
参数 | 推荐值 |
---|---|
分辨率 | 20脉冲/转 |
工作电压 | 3.3V-5V DC |
机械寿命 | >10万次旋转 |
按压力度 | 200±50gf |
工作温度 | -25℃~+85℃ |
八、相关资源
[1] 洋桃电子B站课程-STM32入门100步
[2] STM32F103xx官方数据手册
[3] STM32F103X8-B数据手册(中文)
[4] STM32F103固件函数库用户手册(中文)
[5] 旋转编码器数码管显示程序
[6] 旋转编码器介绍(中文)
💬 技术讨论(请在评论区留言~)
📌 下期预告:下一期将探讨旋转编码器驱动程序分析,欢迎持续关注!
点击查阅🔍往期【STM32专栏】文章
版权声明:本文采用[CC BY-NC-SA 4.0]协议,转载请注明来源
实测开发版:洋桃1号开发版(基于STM32F103C8T6)
更新日志:
- v1.0 初始版本(2025-03-05)