找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6607|回復(fù): 1
收起左側(cè)

詳解如何用STM32調(diào)整舵機角度

[復(fù)制鏈接]
ID:592405 發(fā)表于 2019-7-30 11:04 | 顯示全部樓層 |閱讀模式
在編寫用PWM來控制舵機轉(zhuǎn)動的32程序中,因為找不到如何讓它轉(zhuǎn)動適當(dāng)?shù)慕嵌,所以詢問了學(xué)長,知道了舵機轉(zhuǎn)動0度代表它的占空比是2.5%,轉(zhuǎn)動180度代表它的占空比是12.5%。
即設(shè)arr(自動重裝載值)為x時。
轉(zhuǎn)動角度所對應(yīng)的值=(x+1)*(1-占空比)(將PWM極性設(shè)置為TIM_OCPolarity_High時)
程序如下:

int main(void)
{

        delay_init(); //延時函數(shù)初始化
        LED_Init();        //LED端口初始化
        TIM2_PWM_Init(1999,719); //不分頻,PWM頻率=72000000/720/2000=50hz        
        while(1)
        {        
                TIM_SetCompare2(TIM2,1950); //對應(yīng)0度                2.5%
                    delay_ms(1000);        
                TIM_SetCompare2(TIM2, 1900); //對應(yīng)45度                5%               
            delay_ms(1000);
                TIM_SetCompare2(TIM2, 1850); //對應(yīng)90度                7.5%
                   delay_ms(1000);
                TIM_SetCompare2(TIM2, 1800); //對應(yīng)135度                10%
                delay_ms(1000);
                TIM_SetCompare2(TIM2,1750); //對應(yīng)180度                12.5%
                delay_ms(1000);
        }
}
轉(zhuǎn)動角度所對應(yīng)的值=(x+1)*占空比(將PWM極性設(shè)置為TIM_OCPolarity_Low時),程序如下:

int main(void)
{
        delay_init(); //延時函數(shù)初始化
        LED_Init();        //LED端口初始化
        TIM2_PWM_Init(1999,719); //不分頻,PWM頻率=72000000/720/2000=50hz        
        while(1)
        {        
                TIM_SetCompare2(TIM2,250); //對應(yīng)180度          12.5%
                    delay_ms(1000);        
                TIM_SetCompare2(TIM2, 200); //對應(yīng)135度        10%
            delay_ms(1000);
                TIM_SetCompare2(TIM2, 150); //對應(yīng)90度        7.5%
            delay_ms(1000);
                TIM_SetCompare2(TIM2, 100); //對應(yīng)45度        5%
                delay_ms(1000);
                TIM_SetCompare2(TIM2,50); //對應(yīng)0度                2.5%
                delay_ms(1000);
        }
}用詞如有不妥,請及時指出,多謝



評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:441949 發(fā)表于 2019-11-15 18:11 來自觸屏版 | 顯示全部樓層
更確切的描述是脈寬即脈沖寬度決定角度奧,有的舵機可能支持不僅僅50hz的信號,但脈寬1.5ms定義為中心角度是行業(yè)通用的。而且不同舵機轉(zhuǎn)動范圍不同,有90-180-270,用占空比定義會造成一些不便
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表