编码器概述原理及应用特点是什么? 编码器的作用( 二 )

??这些都写在代码的注释里


第五、Encoder应用注意点


??1、编码器有速度上限 。如果超过这个上限,它将无法正常工作 。这是硬件限制 。原则上,线数越多,速度越低 。选择类型时应注意这一点 。编码器的输出一般是漏极开路的,所以单片机的io必须上拉输入状态 。
?? 2、定时器初始化后,任何时候CNT寄存器的值就是编码器的位置信息 。正向旋转时增加,反向旋转时减少 。这部分不需要软件干预 。初始化时给定的TIM_Pe百思特网riod的值应该是码盘整圈的刻度值,经过减法溢出后会自动修正为这个数 。如果添加的值超过此值,它将返回到 0 。
?? 3、如果要扩展到多圈计数,需要一个溢出中断 。
?? 4、编码器各定时器的输入引脚可由软件设置和过滤
??5、如果应用中没有绝对位置信号或者初始化完成后没有收到绝对位置信号前的计数,只能是相对计数 。接收到绝对位置信号后,再次修改CNT 的值 。编码器一般都有零位信号,可以结合定时器捕捉输入 。上电后,需要来回移动才能找到这个位置 。
?? 6、即使有过滤器计数值,偶尔也会出现错误 。一圈多数或少数是正常的,尤其是速度比较高的时候,有绝对位置信号进行修正是非常有必要的 。绝对位置信号不需要在零位点,接收到该信号后将CNT修正为固定值即可 。
?? 7、编码器启动定时器的输入中断可达每个步数都被处理,但在高速运行期间您可能无法处理它 。


光电编码器是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器 。光电编码器是由光码盘和光电检测装置组成 。光码盘是在一 定直径的圆板上等分地开通若干个长方形孔 。由于光电码盘与电动机同轴,电动机旋转时,检测装置检测输出若干脉冲信号,为判断转向,一般输出两组存在一 定相位差的方波信号 。
霍尔编码器是一种通过磁电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器 。霍尔编码器是由霍尔码盘和霍尔元件组成 。霍尔码盘是在一 定直径的圆板上等分地布置有不同的磁极 。霍尔码盘与电动机同轴,电动机旋转时,霍尔元件检测输出若干脉冲信号,为判断转向,一般输出两组存在一定相位差的方波信号 。
三,电机编码器接线
然后这下面就是讲的平衡车上的编码器啦 。
车轮上有根线,最边上的两根是电机电源线,配合tb6612驱动,可用来控制电机的转速和转向 。然后中间四根是编码器接口 。
要注意哦~用的是两个编码器是反过来的,如果测试时车轮同向转,计数值互为相反数,就把AB相调换一下就好啦 。或者把其中一个读到的数前面加个符号 。
然后编码器供电是5v,供电问题,这是一款增量式输出的霍尔编码器 。编码器有 AB 相输出,所以不仅可以测 速,还可以辨别转向 。根据上图的接线说明可以看到,我们只需给编码器电源5V 供电,在电机转动的时候即可通过 AB 相输出方波信号 。编码器自带了上拉电阻,所以无需外部上拉,可以直接连接到单片机 IO 读取 。
当然不是说编码器就一定要用定时器做接口,有些单片机没有编码器接口的功能,也是可以用外部中断来代替 。把编码器 A 相输出接到单片机的外部中断输入口,这样 就可通过跳变沿触发中断,然后在对应的外部中断服务函数里面,然后通过 B 相的电平来确定正转反转 。A相当于一个跳变沿的时候,B相高电平就为是正转,低电平就为是反转 。然后,普通io口也是可以处理的 。
but用stm32做编码器接口的好处是计数比较智能,容许接口出现抖动而不影响结果 。而且配置的代码超级多,拉过来就可以用啦 。所以下面就是stm32定时器做编码器接口的介绍啦

推荐阅读