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