编码器分类
编码器主要用在测量马达的转速方面,按照码盘的刻度方式一般可分为:增量型和绝对值型。
本实验采用增量型编码器,来计算马达的转速。
编码器分辨率
编码器的分辨率一般可以有三种方式表示,其分别为CPR、LPI、PPR。
分辨率是编码器十分重要的一个指标,分辨率简单点来说就是一圈编码器被分成多少块。
PPR的定义:每转脉冲数PPR(Pulses Per Revolution) describes the number of high pulses an encoder will have on either of its square wave outputs A or B over a single revolution. While CUI Devices does not use PPR to represent Periods per Revolution, it would still technically be accurate as the duty cycle of our standard offering of incremental encoders is 50%. Once resolution is known it can be used to calculate how many mechanical degrees each pulse and period is equal to.
CPR的定义:每转计数。the number of bar and window pairs or Counts,Per Revolution (CPR) of the codewheel。
CPR通常代表每转计数,指的是两个输出A和B之间存在的正交解码状态的数量。由于输出A和B在高低之间切换,因此存在2位信息,表示为4个不同的状态。正交解码一词描述了同时使用输出A和B来计数每个状态变化的方法。这导致每个脉冲或每个周期存在的计数数量的4倍。因此,编码器的CPR是编码器的PPR乘以4。还应注意,一些编码器制造商使用CPR的首字母缩写来表示每转循环数。每转周期指的是编码器输出中任一输出的完整电周期或周期,等效于每转脉冲数。由于每转计数和每转循环数均使用相同的CPR首字母缩写,但相差4倍,这可以理解为会引起一些混乱,因此必须谨慎了解脉冲计数的定义方式。
编码器计数
LPI的定义:每转线数。LPR或每转线数是另一个与PPR等效的术语。 该线是指蚀刻或打印到光学编码器磁盘上的条。 光学编码器盘上的每一条线都具有一对一的关系,因此它们表示输出端的低脉冲。
STM32定时器的编码器模式
STM32定时器编码计数原理
CUBE MX配置
基本配置,略过,直接看定时器的相关配置
定时器编码器模式配置
配置完成后,生成的代码如下:
定时器编码器模式初始化
添加应用代码,计算旋转角度,速度等代码
计算旋转角度(180到-180度之间)
计算速度部分代码
计算速度