之前一直白嫖编码器代码,这次花了一早上学习了编码器。
一、编码器简介
1.概述
编码器是一种将角位移或者角速度转换成一连串电数字脉冲的旋转式传感器。
可以用来测量位置,测量速度。
每转过单位的角度就发出一个脉冲信号,通常为A相、B相输出。A相、B相为相互延迟1/4周期的脉冲输出(即正交信号),根据延迟关系可以区别正反转,而且通过取A相、B相的上升和下降沿可以进行2或4倍频。
例:四倍频的方法是测量A相和B相的上升沿和下降沿
2.原理
编码器通过发送正交脉冲信号表示角度信息,如图为一个示例。(其中TI1和TI2分别对应编码器输出A、B项)
脉冲信号特性 | 表示信息 |
---|---|
两项先后关系 | 旋转方向 |
脉冲个数 | 转过角度 |
二、stm32控制编码器
stm32控制编码器可以采用Timer的编码器模式,Tim1~8的CH1和CH2分别对应A相和B相
(1)大致过程
1、stm32f407中定时器1、2、3、4、5、8提供编码器接口模式
选择编码器接口模式的方法是:如果计数器只在TI2的边沿计数,则置TIMx_SMCR寄存器中的
SMS=001