主题 | 内容 | 教学目的/扩展视频 |
---|---|---|
旋转编码器 | 电路原理,跳线设置,结构分析。驱动程序与调用。 | 熟悉电路和驱动程序。 |
师从洋桃电子,杜洋老师
旋转编码器是一种通过机械旋转产生数字信号的传感器设备,核心功能包括:
▲ 旋转编码器介绍(中文)
┌───────┐
│ 轴体 │
└───┬───┘
│
┌──────────▼──────────┐
│ 弹性接触片 │
│ ┌─◆─K1───────┐ │
│ │ ┌───◆─K2│ │
│ │ │ ┌─◆─K3│ │
└──┼────┼─┼─────┘
公共端 A B (三个引脚)
部件 | 功能说明 |
---|---|
K1 | 按压开关(垂直方向触发) |
K2/K3 | 旋转检测开关(相位差90°) |
弹片 | 提供机械反馈和定位 |
旋转时K2/K3产生正交波形:
右旋时序: 左旋时序:
A相: _┌─┐_┌─┐ A相: ┌─┐_┌─┐_
B相: ┌─┐_┌─┐_ B相: _┌─┐_┌─┐
通过检测两个信号的相位差顺序判断旋转方向
+3.3V
▲
│10KΩ
ENCODER─┼─◆─→ PA6 (A相)
│ │10KΩ
├───◆─→ PB2 (B相)
│ │10KΩ
└───◆─→ PA7 (按压)
if(检测到电平变化){
delay_ms(20); // 超时等待抖动
if(状态仍有效)确认动作
}
核心功能实现逻辑:
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)