星期日, 3月 17, 2013

Arduino筆記(五):使用可變電阻控制伺服馬達

[2013/03/17]
透過可變電阻,控制伺服馬達的轉向。

伺服馬達(Servo Motor)是可以提供動力的一種裝置,可藉由程式來控制速度和方向,伺服馬達內部包括了一個小型直流馬達伺服馬達、一組變速齒輪組、一個反饋可調電位器及一塊電子控制板。標準的微型伺服馬達有三條控制線,通常為紅色(+5V電源)、黑色(接地)及黃色或橘色(控制用, 連接至Arduino pin9)。由於我是在網站買實習的相容套件,這個伺服馬達的三條線顏色不太一樣,不過沒關係,總是離不開電源和控制兩類。

本實驗多接上一個可變電阻,控制伺服馬達的轉向。


[材料]

 麵包板 x 1
 Arduino Uno x 1
 伺服馬達 (Servo Motor) x 1
 10k 可變電阻 x 1
 連接線 x N條

[接線]

伺服馬達有三條線,紅線接電源+5V、黑線接GND,訊號線接Pin 9,可變電阻的中間接腳接到A0,作為類比數值讀取。


[程式]

// 引用 Servo Library
#include  

//建立一個伺服馬達控制物件 
Servo myservo; 

int potpin = 0;   //該變數用於存儲用電位器讀出的模擬值
int val;               // 該變數用於儲存伺服馬達角度位置 

void setup() 
{ 
myservo.attach(9);   // 由Pin 9控制伺服馬達
} 

void loop() 
{ 
val = analogRead(potpin);   //讀取電位器控制的模擬值 (範圍在0-1023) 
val = map(val, 0, 1023, 0, 179);   // 把0-1023的數值按比例縮放為0-180的數值

myservo.write(val);  // 指定伺服馬達轉向的角度 
delay(15);  // 等待15ms讓伺服馬達到達指定位置 
}


[參考資料]

• Arduino Learning:Examples > Servo Library

Share:

1 則留言: