stm32码盘传感器_基于STM32的编码器详解

本文详细介绍了基于STM32的码盘传感器工作原理,包括码盘结构、光电编码器的工作方式以及如何通过检测脉冲数计算速度。同时,文章探讨了判断旋转方向的方法,并提供了两种实现速度计算的代码方案:中断检测和定时器编码器模式。
摘要由CSDN通过智能技术生成

基本原理:

光电编码器由三个部分组成:发光二极管,码盘以及码盘背面的光传感器。

这个码盘安装在旋转轴上,上面均匀地排列着透光和不透光的扇形区域。当码盘转动时,不透光的部分能够挡住光线,而透光区则允许光线透过,那么码盘背面的光传感器就会周期性地收到光信号,从而输出一列方波。

我们知道,码盘转动一周时,光传感器输出的脉冲个数是一定的,通过检测一定时间内收到的脉冲个数,就可以知道在这段时间内码盘转动了多少圈,进而换算为速度。例如,一个码盘转动一周时会输出100个脉冲,在0.1s内我们收到了500个脉冲,这意味着0.1s内码盘转动了5周,即码盘的转速为50r/s。

但是,还有一个问题。设想,如果编码器只输出一列方波(假设为A),我们该怎样判断码盘是正转还是反转?因为无论是正转还是反转,都会产生同样的方波,而它们对速度的贡献显然是相反的!

接下来我们看一看这个问题该怎样解决:

上面我们已经说过,码盘上均匀地刻着透光和不透光的扇形区域,我们在这一圈扇形区域内再均匀地刻上一圈透光和不透光的扇形区域,不同的是,外圈和内圈的区域是“交错”的。也就是说,当外圈处于不透光区域时,内圈对应的一半为透光区域,一半为不透光区域;当外圈处于透光区域时,内圈对应的一半为不透光区域,一半为透光区域。

于是,当码盘转动时编码器会输出两列相位差为90°方波,波形如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值