增量式旋转编码器经过内部两个光敏承受管转化其视点码盘的时序和相位联系,得到其视点码盘视点位移量添加(正方向)或削减(负方向)。在接合数字电路特别是单片机后,增量式旋转编码器在视点丈量和角速度丈量较肯定式旋转编码器更具有廉价和简易的优势。
A,B两点对应两个光敏承受管,A,B两点距离为 S2 ,视点码盘的光栅距离分别为S0和S1。
当视点码盘以某个速度匀速滚动时,那么可知输出波形图中的S0:S1:S2比值与实践图的S0:S1:S2比值相同,同理视点码盘以其他的速度匀速 滚动时,输出波形图中的S0:S1:S2比值与实践图的S0:S1:S2比值仍相同。假如视点码盘做变速运动,把它看成为多个运动周期(在下面界说)的组 合,那么每个运动周期中输出波形图中的S0:S1:S2比值与实践图的S0:S1:S2比值仍相同。
经过输出波形图可知每个运动周期的时序为
顺时针运动 逆时针运动
A B AB
1 1 11
0 110
0 0 00
1 0 01
咱们把当时的A,B输出值保存起来,与下一个A,B输出值做比较,就能够容易的得出视点码盘的运动方向,
假如光栅格S0等于S1时,也便是S0和S1弧度夹角相同,且S2等于S0的1/2,那么可得到此次视点码盘运动位移视点为S0弧度夹角的1/2,除以所消毫的时刻,就得到此次视点码盘运动位移角速度。
S0等于S1时,且S2等于S0的1/2时,1/4个运动周期就能够得到运动方向位和位移视点,假如S0不等于S1,S2不等于S0的1/2,那么要1个运动周期才能够得到运动方向位和位移视点了。
发一个机械式旋转编码器检测程序用51写的
#defineWA=PX.X
#defineWB=Py.y
voidencoder(void)
{
unsignedchari,j;
staticunsignedcharta,tb;
TR1=0;
i=WA;
j=WB;
if((i^j)&&(ta&tb))
{
if((i==1)&&(j==0))
{
count++;
}
elseif((i==0)&&(j==1))
{
count–;
}
}