旋转编码器原理与应用详解:从结构到实战 | 零基础入门STM32第四十七步

主题 内容 教学目的/扩展视频
旋转编码器 电路原理,跳线设置,结构分析。驱动程序与调用。 熟悉电路和驱动程序。

师从洋桃电子,杜洋老师


📑文章目录

  • 一、旋转编码器是什么?
  • 二、内部结构揭秘
  • 2.1 机械组件解剖
  • 2.2 核心部件说明
  • 三、电路工作原理
  • 3.1 信号生成机制
  • 3.2 硬件连接方案
  • 四、关键技术解析
  • 4.1 消抖处理
  • 4.2 方向识别算法
  • 五、典型应用场景
  • 六、开发板实战演示
  • 七、选型注意事项
  • 八、相关资源

  • (图1:开发板与旋转编码器连接示意图)

    (图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 方向识别算法

    Created with Raphaël 2.3.0

    检测A相变化

    读取B相状态

    B相==高电平?

    标记为右旋

    标记为左旋

    yes

    no

    五、典型应用场景

    1. 智能家居:空调温度调节旋钮
    2. 工业控制:数控机床参数设置
    3. 车载系统:多媒体音量控制
    4. 医疗设备:监护仪参数调整
    5. 物联网终端:智能中控面板

    六、开发板实战演示

    (图3:TM1640显示效果)

    核心功能实现逻辑:

    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)
  • 作者:触角01010001

    物联沃分享整理
    物联沃-IOTWORD物联网 » 旋转编码器原理与应用详解:从结构到实战 | 零基础入门STM32第四十七步

    发表回复