基本原理:
光电编码器由三个部分组成:发光二极管,码盘以及码盘背面的光传感器。
这个码盘安装在旋转轴上,上面均匀地排列着透光和不透光的扇形区域。当码盘转动时,不透光的部分能够挡住光线,而透光区则允许光线透过,那么码盘背面的光传感器就会周期性地收到光信号,从而输出一列方波。
我们知道,码盘转动一周时,光传感器输出的脉冲个数是一定的,通过检测一定时间内收到的脉冲个数,就可以知道在这段时间内码盘转动了多少圈,进而换算为速度。例如,一个码盘转动一周时会输出100个脉冲,在0.1s内我们收到了500个脉冲,这意味着0.1s内码盘转动了5周,即码盘的转速为50r/s。
但是,还有一个问题。设想,如果编码器只输出一列方波(假设为A),我们该怎样判断码盘是正转还是反转?因为无论是正转还是反转,都会产生同样的方波,而它们对速度的贡献显然是相反的!
接下来我们看一看这个问题该怎样解决:
上面我们已经说过,码盘上均匀地刻着透光和不透光的扇形区域,我们在这一圈扇形区域内再均匀地刻上一圈透光和不透光的扇形区域,不同的是,外圈和内圈的区域是“交错”的。也就是说,当外圈处于不透光区域时,内圈对应的一半为透光区域,一半为不透光区域;当外圈处于透光区域时,内圈对应的一半为不透光区域,一半为透光区域。
于是,当码盘转动时编码器会输出两列相位差为90°方波,波形如下:
本文详细介绍了基于STM32的码盘传感器工作原理,包括码盘结构、光电编码器的工作方式以及如何通过检测脉冲数计算速度。同时,文章探讨了判断旋转方向的方法,并提供了两种实现速度计算的代码方案:中断检测和定时器编码器模式。
最低0.47元/天 解锁文章
810

被折叠的 条评论
为什么被折叠?



