PWM控制舵機
1 舵機簡介
伺服電機通常被稱為舵機,它是一種帶有輸出軸的小裝置。當我們向伺服器發(fā)送一個控制信號時,輸出軸就可以轉(zhuǎn)到特定的位置。只要控制信號持續(xù)不變,伺服機構就會保持軸的角度位置不改變。如果控制信號發(fā)生變化,輸出軸的位置也會相應發(fā)生變化。日常生活中,舵機常被用于遙控飛機、遙控汽車、機器人等領域。
舵機在機器人領域非常有用。因為舵機有內(nèi)置的控制電路,它們的尺寸雖然很小,但輸出力夠大。像Futaba S-148這樣的標準舵機能提供 0.3牛/米的扭矩,相對于它的外形大小來說這已經(jīng)足夠強大了。同時,舵機消耗的能量與機械負荷成正比。因此,一個輕載的舵機系統(tǒng)不會消耗太多的能量。
2 舵機結(jié)構
舵機主要由以下幾個部分組成:外殼、舵盤、直流電機、減速齒輪組、角度傳感器、控制驅(qū)動電路和接口線纜等。常見的舵機內(nèi)部結(jié)構如下圖所示。
舵機的輸入有三根線,一般的中間的紅色線為電源正極,咖啡色線的為電源負極,黃色色線為控制線號線。
3 舵機控制
控制線用于傳輸角度控制信號。這個角度是由控制信號脈沖的持續(xù)時間決定的,這叫做脈沖編碼調(diào)制(PCM)。舵機的控制一般需要一個20ms左右的時基脈沖,該脈沖的高電平部分一般為0.5ms-2.5ms范圍,總間隔為2ms。脈沖的寬度將決定馬達轉(zhuǎn)動的距離。
例如:1.5毫秒的脈沖,電機將轉(zhuǎn)向90度的位置(通常稱為中立位置,對于180°舵機來說,就是90°位置)。如果脈沖寬度小于1.5毫秒,那么電機軸向朝向0度方向。如果脈沖寬度大于1.5毫秒,軸向就朝向180度方向。以180度舵機為例,對應的控制關系是這樣的:
0.5ms | 0度 |
---|---|
1.0ms | 45度 |
1.5ms | 90度 |
2.0ms | 135度 |
2.5ms | 180度 |
4 任務實踐
通過按鍵控制舵機角度,當KEY1按下后, 減少占空比,當KEY2按下后,增加占空比,并在串口輸出此時的角度。
- PWM參數(shù)計算
PWM信號周期Period=20ms,采用STM32內(nèi)部8MHz的時鐘,計算可得(ARR+1)*(PSC+1)=160000,故可取ARR=199,PSC=799。舵機為0度時,高電平持續(xù)時間為0.5ms,即占空比Duty=0.025,則CCR初始值可以設為5.
PWM參數(shù)計算在STM32基礎:定時器的PWM輸出功能中有詳細講解。
- 在CubeMX中配置PWM(采用定時器3通道1)、串口以及按鍵1和按鍵2對應GPIO為中斷模式并使能.
在CubeMX中配置串口,在Keil中使用“Use MicroLIB”并在代碼中重定向printf函數(shù)的方法在STM32基礎:定時器的定時計數(shù)功能有詳細講解。
在CubeMX中配置GPIO中斷并使能的方法已經(jīng)按鍵的相關操作在STM32基礎:中斷系統(tǒng)中有詳細講解。
- 編寫代碼
/* USER CODE BEGIN PD */
#define CCR_MAX 25 // CCR最大值
/* USER CODE END PD */
/* USER CODE BEGIN PV */
uint16_t CCR = 5; // CCR初始值
uint16_t Step = 5; // CCR步進值
/* USER CODE END PV */
/* USER CODE BEGIN 4 */
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
if(GPIO_Pin == KEY1_Pin)
{
(CCR >= CCR_MAX) ? (CCR = 5) : (CCR += Step);
__HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_1, CCR);
printf("Sigle = %d", (CCR/5 - 1)*45);
HAL_Delay(200);
}
else if (GPIO_Pin == KEY2_Pin)
{
(CCR <= 5) ? (CCR = CCR_MAX) : (CCR -= Step);
__HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_1, CCR);
printf("Sigle = %d", (CCR/5 - 1)*45);
HAL_Delay(200);
}
}
/* USER CODE END 4 */
-
直流電機
+關注
關注
36文章
1703瀏覽量
69979 -
PWM
+關注
關注
114文章
5099瀏覽量
212799 -
STM32
+關注
關注
2262文章
10846瀏覽量
353660 -
伺服電機
+關注
關注
85文章
2014瀏覽量
57554 -
舵機
+關注
關注
17文章
261瀏覽量
40862
發(fā)布評論請先 登錄
相關推薦
評論