旋转增量式编码器是一种能将运动距离转换为电信号提供给单片机处理的一种传感器,而增量式旋转增量式编码器是其中的一种,它能将位移转换成周期性的电信号,再把这个电信号转变成计数脉冲,用脉冲的个数表示位移的大小。我们将旋转增量式编码器与电机连在一起,让电机转动时带动旋转增量式编码器一起转动,这样就可以通过记录脉冲的数量来测出电机已旋转的角度。
有一些玩过智能车竞赛的同学应该接触过光电码盘,而旋转增量式编码器的原理和光电码盘的原理是一样的,其内部有发光器件和光电检测器件,中间由带光栅的码盘隔开,当码盘旋转时光线会连续重复地被挡住和通过光栅,光电传感器就会根据光线的有无来输出高低脉冲信号,这样来统计脉冲的个数就能知道通过了多少个光栅,也就知道了码盘旋转的角度。比如一个旋转增量式编码器是600线,表明这款旋转增量式编码器转一周会发出600个脉冲,那么收到一个脉冲就代表旋转360/600=0.6°,这样假如收到了2000个脉冲,说明旋转增量式编码器旋转了1200°。
将旋转增量式编码器的AB相信号线分别接到单片机的两个外部中断口上(不了解外部中断的同学可以看一下之前公众号里的技术教程)。并将触发方式设置为边缘触发,然后写中断函数。
这样就可以简单地通过A相来记录脉冲个数,那么怎么样实现正转加,反转减呢?大家可以根据正反转的时序规律先自己尝试一下。