我用的编码器是OMRON的E6A2-CW3C,分辨率是200,请问一下,能用单片机直接读取编码器的数据吗?要不要用到四倍频。(单片机我用的是AT89S52)。请尽量详细解答,谢谢。
E6A2-CW3C旋转编码器输出两路正交(相位相差90°)脉冲信号。分辨率200意味着编码器每旋转一周输出200个周期脉冲。如果把每一路脉冲的上沿和下沿都利用起来,相当于四倍频,分辨率可以达到200×4=800。
编码器输出通常为5v的TTL电平,可以直接连接到单片机。能否利用单片机直接读取编码器并计数,则取决于你的应用中,编码器轴旋转的速度有多大?因为,单片机对两路脉冲的计数只能基于对脉冲的上跳(或者下跳,下同)的处理。而单片机对随机上跳处理的较好的方案是上跳引起一个中断,在中断程序中实施判断后再进行加1或减1的计数。中断处理是需要时间的。当编码器旋转足够快,输出脉冲周期少于中断处理时间时,将导致脉冲丢失,这会引起计数误差。
所以,你要准确估计你的编码器旋转速度,得到Z小的脉冲周期;然后估算你的中断处理程序的执行时间(在AT89S52Z大系统时钟下)。两者比较后才能确定你的设计是否可行。