1)舵機的用途
伺服舵機一般也簡稱為舵機,是一種可以精確控制位置的電機系統,它可以通過控制指令輸出指定的旋轉角度。
與普通直流電機的區別主要在:直流電機是一圈圈轉動的,舵機只能在一定角度內轉動,到達指定的位置后就停止;舵機一般有最大旋轉角度,不能360°旋轉。普通直流電機一般是整圈轉動適合做動力用,舵機是控制某物體轉動一定角度用,適合用于控制轉向、姿態、或者用作運動關節。
2)舵機的參數
扭力,由于舵機的動力來自于電機和減速齒輪組,它的輸出扭力比較大,常見的玩具級別的9g舵機也能提供1.5kg/cm~1.8kg/cm的扭力,見下圖:
舵機的另一個重要的參數是速度,就是上圖中的Operating Speed參數,主要表征了舵機最快能轉動的角速率,如上圖中,在6V電壓無負載的情況下,這款舵機0.1s時間能轉過60°角。
3)舵機的工作原理
舵機的內部是由直流電機、減速齒輪組、傳感器和控制電路組成,是一個閉環的控制系統,它的原理框圖如下:
舵機的軸上連接有一個電位器作為位置檢測傳感器,舵軸轉動時,電位器輸出的電壓會變化(也就是可以通過電壓得知舵軸的角度)。外部輸入控制信號時,控制電路會比較控制信號與舵軸位置是否有偏差,如果不同,則會控制馬達驅動舵軸轉到預定的位置,直到控制信號與舵軸位置相同。這個控制系統一般也是由PID實現的。
我們在使用舵機時,可以不用考慮它內部是如何工作的,只需要按規則給出合適的控制信號即可。
舵機對外的接口一般是三根線:
正極、負極用于供電;信號線用于接收控制信號,這個控制信號一般是PWM波,利用PWM波的占空比來控制舵機的輸出角度。
具體控制規則是:PWM波的周期為20ms,脈沖高電平一般為0.5ms~2.5ms。0.5ms時舵機輸出最大負角度,2.5ms時舵機輸出最大正角度,中間的脈寬和角度線性對應,如下圖所示:
了解了上述的驅動規則,就不難理解為什么很多成品的航模遙控裝置,其接收機的各通道輸出,既可以接到電調上,也可以接到舵機上,因為電調和舵機都可以通過PWM波控制的。
4)舵機驅動編程實踐
現在我們就編寫一個程序來實現舵機的驅動,還是使用stm32f103C8t6最小系統板作為硬件。
舵機的負極連GND,正極連5V,信號線連到單片機的PB1引腳上。
在cubemx中建立工程,如下設置,使用定時器3的ch4輸出pwm:
PWM波的參數,配置為20ms周期,初值脈沖寬度為0.5ms,生成keil工程。
然后再keil工程中添加代碼:
Tim.c文件中添加修改PWM脈寬的函數,調用這個函數可以方便地修改定時器3的ch4輸出的pwm的脈寬:
、
Main.c文件中,主函數初始化時添加啟動PWM輸出的函數,并且在主循環中每隔1s鐘修改一次PWM的寬度,以觀察是否能驅動舵機運動:
編譯上述代碼下載到開發板運行,可以看到舵機每隔1s會運動到一個新位置,運動到最大角度后,下一次會回到初始位置。
-
直流電機
+關注
關注
36文章
1710瀏覽量
70344 -
電機系統
+關注
關注
0文章
72瀏覽量
11102 -
伺服舵機
+關注
關注
0文章
16瀏覽量
5075
發布評論請先 登錄
相關推薦
評論