详细介绍: 旋转编码器可分为增量型旋转编码器和绝对型旋转编码器。增量型旋转编码器是以转动时输出脉冲,通过计数设备来记住其位置,当编码器不动或停电时,依靠计数设备的内部记忆来记住位置。 增量型旋转编码器原理跟普通的旋转编码器工作原理有些差异。
增量型旋转编码器是直接利用光电转换原理输出三组方波脉冲A、B和Z相。为了方便地判断出旋转方向,A、B两组脉冲相位差应为90º。增量型旋转编码器轴转一圈会输出固定的脉冲,编码器光栅的线数决定了脉冲数。如果需要提高分辩率,可利用90度相位差的 A、B 两路信号进行倍频或更换高分辩率编码器。Z相用于基准点定位,为每转一个脉冲。
增量型旋转编码器的优点是原理构造简单、抗干扰能力强、可靠性高、机械平均寿命可达几万小时以上、适合于长距离传输。同时增量型旋转编码器也有缺点,那就是无法输出轴转动的绝对位置信息。
前面的A,B输出值保存起来,与下一个A,B输出值做比较,就可以轻易的得出角度码盘的运动方向。
1、光栅格S0等于S1时,也就是S0和S1弧度夹角相同,且S2等于S0的一半,那么可得到此次角度码盘运动位移角度为S0弧度夹角的一半,除以所消耗的时间,就得到此次角度码盘运动位移角速度。
2、 S0等于S1,且S2等于S0的一半时,1/4个运动周期就可以得到运动方向位和位移角度。
3、S0不等于S1,S2不等于S0的1/2,那么要1个运动周期才可以得到运动方向位和位移角度了。
增量型旋转编码器程序,主要是从增量型旋转编码器解码方案和解码程序设计要点两方面来进行。
一、增量型旋转编码器解码程序设计要点
1、轮询解码设计:问题的焦点在于如何提高轮询速度。可以考虑将主程序的任务划分为不同的时间优先级,为不同的任务分配不同的时间片,使得每次主循环执行的任务尽量少。
2、去抖动设计,强烈推荐使用电容进行硬件去抖动。应用中断解码,且具有剩余定时器资源的的情况下,可以考虑软件去抖动;主程序十分简单的情况下,采用轮询解码也可以考虑软件去抖动(可以考虑延时去抖)。需要注意的是,具有按键去抖优化的单片机(如AU6840),应该考虑禁用相应IO的按键去抖优化,因为按键去抖一般在10mS以上,用在Encoder上会滤掉有用信息。
二、增量型旋转编码器解码解码方案
1、主程序轮询解码:对于无中断或外部中断已被占用的情况下,必须使用主程序轮询解码,应该尽量提高主频,缩短主程序运行时间。
|