使用定时器生成PWM方波控制电机转速的核心是通过调节占空比(高电平时间与周期的比值)来改变电机的平均电压,从而实现转速控制。以下是具体实现方法和参数(ARR、PSC、CCR)的计算流程:
名词:
频率:1秒多少次,Hz
周期:1次多少秒,s
1. PWM控制电机转速的原理
-
占空比越大 → 平均电压越高 → 电机转速越快。
-
PWM频率需根据电机特性选择:
-
频率过低:电机会有振动或噪声。
-
频率过高:开关损耗增加(但电机响应更平滑)。
-
常见范围:1kHz ~ 20kHz(根据电机类型调整)。
-
2. 定时器关键参数
在STM32等MCU中,定时器通过以下寄存器生成PWM:
-
ARR(Auto-Reload Register):(自动重装载寄存器)决定PWM的周期(最大值)。
-
PSC(Prescaler):(预分频器)分频定时器时钟,调整计数速度。
-
CCR(Capture/Compare Register):决定占空比(高电平时间),捕获/比较寄存器)则设置占空比,因为当计数器达到CCR值时,输出电平会翻转,从而改变高电平的时间。
3. 计算公式
a. PWM频率公式

-
fTIM:定时器时钟频率(STM32通常为72MHz、48MHz等)。
-
PSC:预分频值(0~65535)。
-
ARR:自动重装载值(0~65535)。
b. 占空比公式

- CCRCCR:比较值(0~ARR)。
4. 参数计算步骤
步骤1:确定PWM频率
根据电机特性选择目标频率(如10kHz):

步骤2:计算PSC和ARR
假设定时器时钟 fTIM=72MHz,目标频率为10kHz:

-
分配策略:
-
先选择 PSCPSC 值以限制ARR范围(通常 ARR<65535ARR<65535)。
-
例如:设 PSC=71PSC=71,则:
-

步骤3:计算CCR
若需占空比为30%:

5. 实际配置示例
假设使用STM32定时器(72MHz时钟),目标为10kHz PWM,占空比30%:
cs
// 计算参数
PSC = 71; // 预分频值
ARR = 99; // 自动重装载值
CCR = 30; // 比较值
// 初始化定时器
TIM_Handle.Instance->PSC = PSC; // 设置预分频
TIM_Handle.Instance->ARR = ARR; // 设置周期
TIM_Handle.Instance->CCR1 = CCR; // 设置占空比(通道1)
6. 注意事项
-
分辨率 :占空比最小变化量为
,ARR越大分辨率越高,但频率会降低。
-
频率限制 :确保
。
-
动态调整:运行时修改CCR可实时改变占空比,调整电机转速。
7. 总结
-
ARR 和 PSC 共同决定PWM频率。
-
CCR 直接控制占空比。
-
调整流程:选频率 → 算PSC/ARR → 设CCR → 动态调节。
通过合理配置这三个参数,即可精确控制电机的转速和动态响应。