|
|
在編寫(xiě)用PWM來(lái)控制舵機(jī)轉(zhuǎn)動(dòng)的32程序中,因?yàn)檎也坏饺绾巫屗D(zhuǎn)動(dòng)適當(dāng)?shù)慕嵌龋栽儐?wèn)了學(xué)長(zhǎng),知道了舵機(jī)轉(zhuǎn)動(dòng)0度代表它的占空比是2.5%,轉(zhuǎn)動(dòng)180度代表它的占空比是12.5%。
即設(shè)arr(自動(dòng)重裝載值)為x時(shí)。
轉(zhuǎn)動(dòng)角度所對(duì)應(yīng)的值=(x+1)*(1-占空比)(將PWM極性設(shè)置為T(mén)IM_OCPolarity_High時(shí))
程序如下:
int main(void)
{
delay_init(); //延時(shí)函數(shù)初始化
LED_Init(); //LED端口初始化
TIM2_PWM_Init(1999,719); //不分頻,PWM頻率=72000000/720/2000=50hz
while(1)
{
TIM_SetCompare2(TIM2,1950); //對(duì)應(yīng)0度 2.5%
delay_ms(1000);
TIM_SetCompare2(TIM2, 1900); //對(duì)應(yīng)45度 5%
delay_ms(1000);
TIM_SetCompare2(TIM2, 1850); //對(duì)應(yīng)90度 7.5%
delay_ms(1000);
TIM_SetCompare2(TIM2, 1800); //對(duì)應(yīng)135度 10%
delay_ms(1000);
TIM_SetCompare2(TIM2,1750); //對(duì)應(yīng)180度 12.5%
delay_ms(1000);
}
}
轉(zhuǎn)動(dòng)角度所對(duì)應(yīng)的值=(x+1)*占空比(將PWM極性設(shè)置為T(mén)IM_OCPolarity_Low時(shí)),程序如下:
int main(void)
{
delay_init(); //延時(shí)函數(shù)初始化
LED_Init(); //LED端口初始化
TIM2_PWM_Init(1999,719); //不分頻,PWM頻率=72000000/720/2000=50hz
while(1)
{
TIM_SetCompare2(TIM2,250); //對(duì)應(yīng)180度 12.5%
delay_ms(1000);
TIM_SetCompare2(TIM2, 200); //對(duì)應(yīng)135度 10%
delay_ms(1000);
TIM_SetCompare2(TIM2, 150); //對(duì)應(yīng)90度 7.5%
delay_ms(1000);
TIM_SetCompare2(TIM2, 100); //對(duì)應(yīng)45度 5%
delay_ms(1000);
TIM_SetCompare2(TIM2,50); //對(duì)應(yīng)0度 2.5%
delay_ms(1000);
}
}用詞如有不妥,請(qǐng)及時(shí)指出,多謝
|
評(píng)分
-
查看全部評(píng)分
|