用PWM控制舵機(以是stm32為例)

2021-08-28 23:14:58 字數 1228 閱讀 9392

因為做校創需要用到舵機,以前知道大致的理論,因此看了一些帖子,總結一下被以後檢視。

pwm就是脈衝寬度調製,也就是占空比可變的脈衝波形.

pwm的占空比,就是指高電平保持的時間,與該pwm時鐘週期時間之比。

在應用中就是通過調節pwm占空比來控制,也就是乙個週期中高電平所佔的百分比來控制舵機的轉角的。

控制舵機所用pwm占空比,是有一定要求的,具體可以通過搜尋你使用舵機的型號,查閱手冊得到具體的占空比要求。不過就個人經驗而言,大致都是一樣的,如下:

可以看出,隨著占空比變化,舵機在0~180度內變化。

根據舵機控制的原理,舵機的控制一般需要乙個20ms左右的時基脈衝《週期》,該脈衝的高電平部分一般為0.5ms-2.5ms《占空比2.5%~12.5%>範圍內的角度控制脈衝部分,總間隔為2ms。

即:0.5ms--------------0度;

1.0ms------------45度;

1.5ms------------90度;

2.0ms-----------135度;

2.5ms-----------180度;

注意:注意控制舵機的訊號,電源要共地。

/* 系統預設時鐘72mhz, 初始化定時器生成pwm, 參考正點原子的程式

* 72000000/(719+1)/(1999+1)=50hz 1/50*1000=20ms

*/tim3_pwm_init(1999,719);

...for(i=150;i<200;i++) /* 150/2000=7.5% 90度 */

for(i=200;i>100;i--) /* 200/2000=10% */

for(i=100;i<150;i++) /* 100/2000=5% */

/* 以上for重複執行就可以實現舵機左右擺動 */

如果舵機異常,首先使用示波器,占空比測量,確保所生成pwm正確,其次注意訊號和電源共地,還不行就換個舵機試一試吧。

stm32用pwm驅動舵機

舵機的主要組成部分為伺服電機,所謂伺服就是服從訊號的要求而動作。在訊號來之前,轉子停止不動 訊號來到之後,轉子立即運動。因此我們就可以給舵機輸入不同的訊號,來控制其旋轉到不同的角度。舵機接收的是pwm訊號,當訊號進入內部電路產生乙個偏置電壓,觸發電機通過減速齒輪帶動電位器移動,使電壓差為零時,電機停...

STM32之使用PWM控制多路舵機

最近在玩乙個6自由度的機械臂,我手上這台機械臂的核心控制器件就是那六個能夠180度旋轉的舵機了。想想之前在學校還沒有系統性的把舵機給玩明白,所以就索性拿手上的stm32來自己寫驅動 將6個舵機給驅動起來。舵機的控制原理還是比較簡單的,而且控制的角度和精度能夠比較好的按照開發者的意願來進行,因此經常被...

STM32 電機PWM控制

2.1.1 實現工具 stm32微控制器 直流減速電機 tb6612雙路電機驅動器 keil5 2.1.2 電機實物接線 具體到我們的電機,我們可以看看電機後面的 中間的四根線 紅綠白黑 是編碼器的線,只是用於測速,和直流電機本身沒有聯絡。綜上所述,我們只需控制施加在黃線和棕色線兩端的直流電壓大小和...