PWM相关计算---对电机相关参数的影响
例如,CCR 的值为 50,ARR 的值为 100,那么占空比就是 50 / 100 = 50% ,表示在一个完整的周期内,高电平的持续时间占整个周期的 50%。CCR(Capture/Compare Register,捕获 / 比较寄存器)的值除以 ARR(Auto-Reload Register,自动重装载寄存器)的值。设置电机的转速分成多少个挡位,挡位越多,调节也就越细腻---多少挡位由CC
在定时器相关的设置中,占空比(Duty Cycle)通常表示高电平在一个周期内所占的时间比例。
如果用 CCR(Capture/Compare Register,捕获 / 比较寄存器)的值除以 ARR(Auto-Reload Register,自动重装载寄存器)的值,得到的结果就是占空比。
例如,CCR 的值为 50,ARR 的值为 100,那么占空比就是 50 / 100 = 50% ,表示在一个完整的周期内,高电平的持续时间占整个周期的 50% 。
占空比在项目中可以控制电机的转速
PWM,工作模式1

pwm频率计算---PSC分配器----只除以PSC是计数的频率

设置电机的转速分成多少个挡位,挡位越多,调节也就越细腻---多少挡位由ARR来开控制,
1、比如说要设置1000个挡位,那么ARR设置位1000-1。
![]()
2、CCR设置初始值为0
PSC设置根据电机要求设置
3、电机一般空心杯直流电机,它的频率不能超过20KHZ就是2MhHz,


总结:
PWM(脉冲宽度调制)的相关计算通常涉及以下几个方面:
-
占空比计算:占空比是指高电平在一个周期中所占的时间比例。
占空比 = 高电平时间 / 周期时间 × 100%
-
频率计算:频率是指单位时间内脉冲的个数。
频率 = 1 / 周期时间
-
平均电压计算(假设用于控制电源输出):
平均电压 = 电源电压 × 占空比
以下是一个用 C 语言计算占空比和频率的示例代码:
#include <stdio.h>
// 计算占空比
float calculateDutyCycle(int highTime, int period) {
return (float)highTime / period * 100.0;
}
// 计算频率
float calculateFrequency(int period) {
return 1.0 / period;
}
int main() {
int highTime = 5; // 假设高电平时间为 5 个单位
int period = 10; // 假设周期为 10 个单位
float dutyCycle = calculateDutyCycle(highTime, period);
float frequency = calculateFrequency(period);
printf("占空比: %.2f%%\n", dutyCycle);
printf("频率: %.2f Hz\n", frequency);
return 0;
}
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)