数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 1669|回复: 21

[other] 我玩EC11编码器的解码思路

[复制链接]
发表于 2025-5-17 08:47:47 | 显示全部楼层 |阅读模式
]
EC11编码器是一种旋转编码器,主要用于亮度、温度、频率、音量调节等参数控制。它通过旋转产生脉冲信号,从而实现对设备的控制。
以下是EC11编码器的工作原理:
结构组成:EC11编码器通常由一个中心有轴的光电码盘组成,码盘上有环形通和暗的刻线。此外,编码器还有A、B、C三个引脚,其中A和B是信号端,C是公共端,通常接地。有些EC11编码器还带有独立的按键功能。
脉冲信号生成:当编码器轴旋转时,码盘上的刻线会使光电发射和接收器件产生变化,从而获得四组正弦波信号,这四组信号组合成A、B、C、D四个相位,每个正弦波相差90度相位差。将C、D信号反向,叠加在A、B两相上,可以增强稳定信号。每转输出一个Z相脉冲以代表零位参考位。
旋转方向判断:由于A、B两相相差90度,可以通过比较A相在前还是B相在前,借此来判别编码器的正转与反转。具体来说,当A相电平由高变低,而B相电平仍为高时,表示编码器正转;反之,当B相电平由高变低,而A相电平仍为高时,表示编码器反转。
按键功能:EC11编码器的独立按键功能允许用户通过按键选择模式,然后旋转编码器来确定大小。这种设计在实际应用中非常广泛,例如热风机调温、电子手表等。
电路连接:在使用EC11编码器时,通常需要将A、B引脚接入逻辑分析仪或单片机的输入端,C引脚接地。此外,如果编码器带有按键功能,还需要将D、E引脚连接到相应的电路中。

软件消抖:在实际使用中,EC11编码器可能会存在抖动问题,导致旋转一格时进入多次中断。为了解决这个问题,通常需要进行软件消抖,即使用延时的方法避开机械抖动,从而确保每次旋转一格只进入一次外部中断。

  无图无真相,来张图,一会方便看图说话:
暂时不理会紫色的波形,单看蓝色和绿色的线条;
试想中间黑线向右移动,我们会得到一串高低电平的数串:
0     1    1    0    0    1    1    0   
1     1    0    0    1    1    0    0   
试想中间黑线想左移动,我们会得到另一串高低电平的数串:
0     1    1    0    0    1    1    0   
0     0    1    1    0    0    1    1   
其实,移动的黑线是时间,如果向右移动对应的正向旋转的话,向左移动就是时间倒放,对应着反向旋转。
先不想如何解码这些复杂的数串,咱就看看某一个时间点,也就是黑线移动过程中,停下来的那一刻,都发生了什么?
其实,就这一刻来说,能称得上有信息价值的就是当前两个通道电平的数值,而且不是0 , 就是 1

下一刻也一样,无非是0 , 或者 1
编码器拿到手里,拧一下,可以感觉到很舒适的顿挫感,伴随着清脆的哒哒声;每一次的“哒”,就意味着到达了一个稳态的点,在两个稳态点的中间又能感觉到一个似乎可以暂时稳住的最高点。编码器就是在稳态和暂稳态之间不停地变化,大概可以类比正弦波,在两个稳态中间有一个暂稳态。
稳态的时候,EC11两个输出脚电平一致,可以是高电平,也可以是低电平;在不稳态,两个引脚电平必然相反;没有为什么。非要问个为什么,答案也很简单,就是这么设计的;或者说,设计的目的就是为了达到这个效果。
EC11的一根线输出只有0 或者1两种情况;两根线也只能有4个状态的组合:00011011。读取输出口状态变化就可以判断EC11的旋转方向,这就很有趣了。因为我们有了一个毫无争议的结论,读两次EC11管脚状态,如果读到的数据发生的变化,我们可以通过这个变化知道旋转方向。再来看看前面的数据:
正向旋转的一串高低电平的数串:
0     1    1    0    0    1    1    0   
1     1    0    0    1    1    0    0   
反向旋转的另一串高低电平的数串:
0     1    1    0    0    1    1    0   
0     0    1    1    0    0    1    1   
仔细观察,第五组数据就已经开始重复了。简化一下:
正向0  ->1  ->1 ->0  ->0    反向0  ->1 ->1  ->0  ->0  
1      1     0     0     1             0     0     1      1      0  
这两次状态一共有多少种组合呢;从数学上来讲,4*4,16种 ;参照简化后的数值变化,我们用PA PB 记录当前两个管脚的电平;用PA^ PB^ 记录当前两个管脚的电平,就形成下表

这张表
1-4记录了上面描述的正转的状态变化;
5-8记录了上面描述的反转的状态变化;
9-12记录的是如果手柄旋转到稳态和暂稳态停留时的情况,两次读到的电平是相同的;

13-16是数学上成立,而编码器上不可能出现的状态变化,也可称之为“故障”状态。


如果不好理解,现在把整个过程反向解释一下,可能会容易理解:

记录等时间间隔相邻两次对两根管脚电平状态进行记录,
上一次的状态记为 :PA^    PB^
这一次的状态记为 :PA    PB
把这两次的状态组合为一个4bit状态:PA^PB^PAPB;他只可能存在16种可能。
把这16种状态里,                                                       
符合正转的状态挑出来,对应编码表里,填上 U                                                       
符合反转的状态挑出来,对应编码表里,填上 D                                                       
把稳态的状态挑出来   ,对应编码表里,填上 S                                                       
把不稳态的状态挑出来,对应编码表里,填上 M                                                       
                                                       
把剩下不可能跳跃的状态打上废弃标记;                                                                                               
                                                       

记得数学老师讲集合,“内无掺杂,外无遗漏”;16种状态,全都有了,肯定也有很高的容错能力。                                                       



通过这种方式,把旋转编码器的逻辑判断过程转换成了数学运算(查表),无论速度还是准确度都会很完美。

网友提到的毛刺问题,其实已经通过定时器等时间间隔采样的机制,隐含的解决了。






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x

打赏

参与人数 2家元 +32 收起 理由
慕名而来 + 18 原創內容
phoric + 14

查看全部打赏

发表于 2025-5-17 11:00:25 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2025-5-17 11:03:21 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2025-5-17 11:34:54 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2025-5-17 11:42:16 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2025-5-17 12:06:34 来自手机浏览器 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2025-5-17 12:10:03 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 1 反对 0

使用道具 举报

发表于 2025-5-17 12:34:22 | 显示全部楼层
游客请登录后查看回复内容

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
回复 支持 反对

使用道具 举报

发表于 2025-5-17 13:13:11 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2025-5-17 13:28:51 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2025-5-17 16:30:46 | 显示全部楼层
游客请登录后查看回复内容

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
回复 支持 反对

使用道具 举报

发表于 2025-5-17 17:22:14 | 显示全部楼层
游客请登录后查看回复内容

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2025-5-17 17:28:01 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-5-17 17:32:26 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-5-17 17:33:09 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-5-17 17:42:34 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2025-5-17 19:34:15 | 显示全部楼层
游客请登录后查看回复内容

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-5-17 22:41:38 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2025-5-18 09:57:15 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2025-5-18 10:01:21 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-12-13 10:07 , Processed in 0.202800 second(s), 13 queries , Gzip On, Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表