1.编码器简介编码器是一种将直线位移、角位移数据转换为脉冲信号、二进制编码的设备常用于测量物体运动的位置、角度或者速度2.编码器分类编码器分类1.按照检测原理可以分为光电式和磁电式。2.按照编码类型可以分为绝对式和增量式。常用的搭配有这四种1.光电绝对式2.光电增量式3.磁电绝对式4.磁电增量式3.编码器原理磁电增量式利用霍尔效应将位移转换为技术脉冲用脉冲个数计算位移和速度光电增量式利用光电系统将位移转换为技术脉冲用脉冲个数计算位移和速度光电绝对式不同位置、角度时光敏元件根据受光转换出相应电平信号形成二进制数4.编码器参数分辨率编码器可以测量的最小距离。对于增量式编码器分辨率即转轴每旋转一圈所输出的脉冲数PPR精度编码器输出的信号数据与实际位置之间的误差“角分”“角秒”表示最大响应频率编码器每秒能输出的最大脉冲数单位Hz也称PPS最大转速指的是编码器机械系统所能承受的最高转速5.STM32编码器接口STM32定时器的编码器接口模式相当于有方向选择的外部时钟。注意要根据芯片手册确定具体哪一个定时器支持编码器功能。编码器接口技术原理1.通过TIMx_SMCR的位0:2控制边沿检测的方式。2.根据TI1FP1(A)、T12FP2(B)脉冲信号的情况决定时递增还是递减计数。3.溢出时读取DIR位判断溢出方向以计算总的计数次数变化量。用编码器测试数据时要选用一些算法简单的有冒泡排序和一阶低通滤波进行滤波提高数据的准确性。6.一阶低通滤波公式Y(n) q*X(n)(1-q)*Y(n-1)其中Y(n)为本次滤波的输出值X(n)为本次采样值Y(n-1)为上次滤波输出值q为滤波系数(0-1)q越大响应速度越快但实测速度曲线不平滑。q越小速度曲线越平滑但响应速度满。7.STM32代码编码器测速具体实现步骤1.定时器初始化初始化通道IO配置定时器、编码器接口等增加TIM6的更新中断2.更新中断回调函数处理溢出中断判断溢出方向记录溢出次数计算电机速度3.编码器计数函数计算总的计数值总计数值计数器当前值溢出次数*655364.电机速度计算函数计算电机的转速增加速度滤波功能冒泡排序取中间的平均值一阶低通滤波