普通旋转编码器计次 vs 定时器编码器计次:核心区别

这两个是单片机/嵌入式开发中最常用的两种编码器计数方式,我用最直白、最实用的方式给你讲清楚区别、适用场景和优缺点。


一、先搞懂两个概念

  1. 旋转编码器(正交编码器) 输出 A/B 两相脉冲,用来测转速、方向、位置。 每转一圈输出固定个数脉冲,需要计数 + 判断方向

  2. 普通旋转编码器计次(GPIO 中断/轮询)普通 IO 口接编码器,靠外部中断 / 软件轮询数脉冲。

  3. 定时器编码器计次(硬件编码器模式) 用单片机定时器的硬件编码器接口硬件自动计数,CPU 完全不参与。


二、核心区别(最重要的一张表)

对比项普通旋转编码器计次(软件)定时器编码器计次(硬件)
使用资源普通 GPIO 口专用定时器通道(TIMx_CH1/CH2)
计数方式软件中断/轮询,CPU 手动数硬件自动计数,CPU 0 开销
方向判断软件读 A/B 相位判断硬件自动判断,自动加减计数
最高支持转速低(高速容易丢脉冲)极高(单片机主频级速度)
CPU 占用高(脉冲多会占满 CPU)几乎为 0
精度/稳定性一般,高速易丢步、抖动极高,不丢脉冲、无误差
代码复杂度高(要写中断、消抖、判向)极低(初始化后直接读数值)
适用场景低速、低精度、简单旋钮电机测速、高精度定位、高速旋转

三、详细通俗解释

1. 普通旋转编码器计次(软件方式)

  • 原理:把 A/B 相接到普通 IO,脉冲一来就触发中断,软件里 count++/count--

  • 优点:
    • 任意 IO 口都能用

    • 简单小项目够用

  • 缺点:
    • 高速必丢脉冲(CPU 反应不过来)

    • 要自己写方向判断

    • 要处理抖动、干扰

    • 中断太多会拖慢整个程序

适合:手动旋钮、低速调节、简单计数。


2. 定时器编码器计次(硬件方式)

  • 原理:单片机定时器内部有专门的硬件正交编码器模块,A/B 脉冲直接进硬件电路,自动计数、自动判方向

  • CPU 只需要定时读一下计数器的值就行,完全不参与计数过程。

  • 优点:
    • 绝不丢脉冲(硬件级响应)

    • 支持极高转速

    • 不占 CPU

    • 自带滤波、抗干扰

    • 代码极简单

  • 缺点:
    • 必须用定时器专用引脚

适合:电机测速、云台、机器人、数控设备、高精度位置采集。


四、最简单的判断:你该用哪种?

  • 低速手动旋钮 → 普通 GPIO 中断计次就行

  • 电机、高速旋转、高精度 → 必须用定时器硬件编码器模式


五、一句话终极总结

  • 软件计次:CPU 亲自数脉冲,累、慢、容易漏。

  • 定时器硬件编码器计次:硬件全自动数脉冲,CPU 躺平,又快又准。


总结

  1. 普通计次 = 软件计数 → 低速、简单、占用CPU

  2. 定时器编码器计次 = 硬件计数 → 高速、精准、零CPU开销

  3. 做电机/高精度项目一定要用定时器编码器模式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值