這裡說的伺服馬達其實是模型伺服馬達或是玩具伺服馬達,這種馬達和一般的馬達有甚麼不同呢?基本上的差異就是,一般的馬達是接上的電源就拚了命轉,不管是順時針還是逆時針:慢慢轉或是快快轉,除非斷電它是不會停的。伺服馬達呢?帥就帥在他可以控制轉幾度!要轉 1 度就是 1 度,轉到 1 度就定格,要轉 180 度就是 180 度,絕對不會多轉,精準的很!因為這種特性,它的應用也有別於一般拼命轉的馬達。
利用 Arduino 控制這類馬達,其實比想像中的簡單,在 Arduino 其實已經有內建一個 class ,專門控制玩具伺服馬達。
首先先來認識一下模型伺服馬達的接線:
可以看到紅、黑、白三色接線,紅線是電源線(正極)、黑色是地線(負極)、白線就是我們這次的重點拉---控制線。
要讓馬達可以簡單的表演一下,首先簡單的完成以下的接線就可以拉!
接著打開 Arduino IDE,File > Examples > Servo > Sweep,選取 example 程式碼上傳就可以看到伺服器馬達的控制效果了。
程式碼小解說:
#include < Servo.h >// 匯入 Servo 這個 class,我們可以利用這個 class 內建的很多功能
Servo myservo; // 建立 myservo 這個 Servo 物件
int pos = 0; // 儲存伺服馬達旋轉角度
void setup()
{
myservo.attach(9); // 指定伺服馬達的 control line 為 Arduino Uno 的 pin 9
}
成品大概會像這樣動!
void loop()
{
for(pos = 0; pos < 180; pos += 1) // 一度一度由 0 度旋轉到 180 度
{
myservo.write(pos);
delay(15);
}
for(pos = 180; pos>=1; pos-=1) // 一度一度由 180 度旋轉到 0 度
{
myservo.write(pos);
delay(15);
}
}
我成功了~謝謝!!
回覆刪除對您有幫助我也很開心!
刪除想詢問如做讓兩顆伺服馬達不同步運轉 就是一顆動到定點後,再動另一顆
回覆刪除Hi 你好,如果是使用 arduino 的話,只要將兩顆馬達接到不同 PWM 輸出 pin ,然後在 code 的部分依序寫就可以了
刪除