赞
踩
一、TIM输出比较
OC(Output Compare)
通过比较CNT与CCR(Capture/Compare Register 捕获/比较寄存器)值的关系来输出电平实现置1、置0或翻转的操作,用于输出一定频率和占空比的PWM波形。
二、PWM简介
PWM(Pulse Width Modulation)脉冲宽度调制
参数:频率=1/T;占空比(高电平的占比,例如T=100ms,输出波形中高电平占40ms,则占空比为40%)=Ton/T;分辨率=占空比变化步距(相当于等差变换的差)
由于通断电的频率很快,所以可以使电机处于一个中等转速,调整占空比就可以调整电机的转速。
三、PWM模式1和PWM模式2
模式1:向上计数时,CNT<CCR,REF(参考信号)置1;CNT>CCR,REF置0;
模式2反之。
四、参数计算
PWM频率:Freq=CK_PSC/(PSC+1)/(ARR+1)
PWM占空比:Duty=CCR/(ARR+1)
PWM分辨率:Reso=1/(ARR+1)
五、舵机
一种根据输入PWM信号占空比来控制输出角度的装置(这里是SG90)。
信号要求:周期为20ms,高电平宽度为0.5ms~2.5ms
六、cubemx配置PWM驱动舵机
1.配置debug为SW,RCC为外部晶振;
2.配置时钟TIM2,将通道1、2配置为PWM通道;
3.周期20ms=(7200*200)/72000000,所以配置PSC为7200-1,CCR为200-1;
输入模式为PWM模式1(向上计数时,CNT<CCR,REF(参考信号)置1;CNT>CCR,REF置0)
Pulse为占空比,设置初始脉冲时间为50(即50/100=0.5ms)
4.新建一个.c文件和一个.h文件
在.h文件内将各个关键角度对应的脉冲时间进行定义,这样更加直观
在.c文件中设置每转动一次角度等待1000ms(1s)
5.初始化PWM,在main.c的while中用pwm.c文件中定义的函数写入想要的角度即可,编译并运行。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。