接線圖
伺服馬達(servo motor),因常用於遙控模型飛機,所以又常稱為RC伺服機(RC Servo,Radio Control Servo,Remote Control Servo)、伺服馬達舵機。
伺服馬達裡含有直流馬達、齒輪箱、軸柄、以及控制電路,我們可透過訊號控制軸柄的停止角度,大概都是0到180度,但不同廠牌型號會有不同的範圍;經由齒輪箱降速後,變成適當可用的轉速,並且提供更高的轉矩(扭轉力)。
另外還有能連續轉動的伺服馬達,有些出廠時便能連續轉動,有些則是玩家自己動手改造,這種馬達透過訊號可控制轉動的速度。
一般伺服馬達有三條線,電源(紅色)、接地(黑或棕色)、訊號線(白、黃、橘、藍,甚至是黑色)。透過訊號線傳送PWM脈波來控制軸柄的停止位置旋轉角度,這個訊號脈波必須每秒重複50次(也就是50Hz),而脈衝持續時間長短便代表了馬達該將軸柄轉到什麼位置,範圍從1.0ms到2.0ms(millisecond,毫秒,千分之一秒),若想置中則是1.5ms;也可將1.0ms當做角度0度,那麼1.5ms會是90度,2.0ms則是轉到底180度。注意,也有可能反過來。
程式碼
#include <Servo.h>
Servo myservo; // 建立Servo物件,控制伺服馬達
void setup()
{
myservo.attach(10); // 連接數位腳位9,伺服馬達的訊號線
}
void loop()
{
for(int i = 0; i <= 180; i+=1){
myservo.write(i); // 使用write,傳入角度,從0度轉到180度
delay(1000);
}
for(int i = 180; i >= 0; i-=1){
myservo.write(i);// 使用write,傳入角度,從180度轉到0度
delay(1000);
}
}
實作影片