舵機的控制方法其實和我們學過的直流減速電機的控制方法是很相似的。我們都采 用PWM 信號來控制它們,但 PWM 信號的作用又有所不同。控制舵機所使用的PWM 信號是有些特殊的,它的周期是20ms, 脈沖的寬度從1~2ms 秒之間,脈沖的寬度就對應 了電機從0°~180°的不同角度。我們希望舵機轉動到哪個角度,就用主控板發出那個角 度所對應占空比的PWM 信號就可以了。舵機的PWM 控制如圖11-3所示。當然,在此 之前,舵機肯定要連接到主控板上有PWM 功能的端口才行。
了解這些原理后,下一個問題自然是:該如何編寫程序讓主控板能夠控制舵機的運 動呢?其實也沒那么復雜,我們的Arduino 中天然就有了舵機控制的功能,它自帶了一個 用于控制舵機的“庫”。只要用它生成一個“舵機對象”,然后使用“舵機對象”的函數就行 了。至于什么是“庫”、什么是“對象”,就屬于C 語言中比較高J的內容了。我們目前在 使用舵機時只要掌握它們的使用方法就足夠了。下面是一段Z簡單的應用“舵機庫”控制 舵機運動的程序 。
#include
const int ServoPin=9; Servo myServo;
void setup(){
myServo.attach(ServoPin);
void loop(){
myServo.write(0);
delay(500);
//用這個語句引人舵機庫
//選用有PWM功能的9號端口作為舵機端口 //創建一個叫 myServ o 的舵機對象
//將舵機對象和端口綁定起來
//讓舵機轉動到0°的位置
//等待一段時間讓舵機轉動到位
myServo.write(180); delay(500);
//讓舵機轉動到180°的位置
//等待一段時間讓舵機轉動到位
}
在這個程序中,我們把舵機插到主控制板的9號端口上,然后讓它在0°~180°之間不 停地反復運動。同學們以后自己使用舵機時,只要將舵機插到任何一個有PWM 功能的 端口上,然后將上面程序中的myServo 改為你選定的名字,再之后就可以用write 函數照 貓畫虎地控制舵機的位置了。
![]() |
| 機器人底盤 Disinfection Robot 消毒機器人 講解機器人 迎賓機器人 移動機器人底盤 商用機器人 智能垃圾站 智能服務機器人 大屏機器人 霧化消毒機器人 展廳機器人 服務機器人底盤 具身智能教育機器人 智能配送機器人 導覽機器人 |