在上一节的基础上,在定时器上增加了调节旋转编码器实现测量瞬时速度的功能,
代码增加如下,且删除选择内部时钟、触发源选择的代码
通过定时器的编码器接口实现自动计次,为了提高效率。一般用于电机速度的测量
VID_20240729_214117
以上就是实验,顺时针转为正传,且转的越快,速度越大,即正转编码器自增,且在停留很小的时间后,立马归零。反之为逆时针反转,编码器自减。
理论部分如下:使用测频法进行测量
采用正交编码器进行判断正传还是反转:抗噪声(需要两个信号同时变化一样的规律才识别,否则认为是噪声)、精度提高,正反转就是B比A滞后或者提前1/4个周期。
根据右边的表进行判断,当来上升或者下降沿时,通过判断另一个的高低电平进行判断是正转还是反转。
具体电路如下所示:其中边沿检测极性选择部分:本来是对上升沿和下降沿的一个极性选择,但是由于正交编码器不论是上升沿还是下降沿均计数,因此此处就变成高低电平的极性选择,选择上升沿就是信号直通过来,高低电平极性不反转,而选择下降沿则表示反相,相当于接一个非门,高低电平接过来取反为低高电平。
仅在TI1计数就是在正交编码器中只使用A相的上升沿或者下降沿计数;
仅在TI2计数就是在正交编码器中只使用B相的上升沿或者下降沿计数;
在两个上就是A、B相的上升沿和下降沿都用来计数,精度更高。
正转状态都是向上计数,反转状态都是向下计数。
展示了出现噪声时,计数是来回计数,并不受噪声的影响,正交编码器的优点。
以下是TI1和TI2都不反相的情况:
当出现TI1反相时,表示需要对输入信号的TI1整体取反,譬如下图,应该为
,然后对照表格得出计数器的值。
当你希望某个方向为正转,某个为反转,但是输出的自增自减与你希望的相反时,你就可以用以上方法实现极性的调整,或者直接在硬件上将A、B口的线对调。