Arduino驅動伺服馬達SG90

標準型伺服馬達只能旋轉180度,利用伺服馬達旋轉固定角度,可以用來控制連接在伺服馬達上物體的旋轉角度。

驗所需元件

標準型伺服馬達(Tower Pro SG90)

運作電壓:4.8V到7.2V

力矩:1.8kg-cm(在4.8V時)

伺服馬達簡介

伺服馬達可以準確控制旋轉角度,轉速經過齒輪組減速後可以產生較大力矩,舉起物體或旋轉物體,可以將需要旋轉的感測器與伺服馬達結合,例如:測距感測器,可以藉此測量不同角度下前方障礙物的距離。伺服馬達分成標準型伺服馬達與連續旋轉伺服馬達,標準型伺服馬達只能旋轉最大角度為180度,無法連續旋轉,本實驗使用標準型伺服馬達(Tower Pro SG90),連續旋轉伺服馬達可以連續旋轉,連續旋轉伺服馬達售價較貴。服馬達簡介

實驗目標

讓馬達正轉180度接著倒轉180度。

配線圖如下,伺服馬達有三條連接線,電源VCC(紅色)、接地GND(黑或棕色)與訊號線Signal(其他顏色)。

程式實作提示

本實驗使用Arduino的內件函式庫Servo,使用函式庫Servo會關閉Arduino的D9與D10的PWM功能,通常會將伺服馬達接在D9或D10上。

程式碼與解說

第1行:包含函式庫Servo的標頭檔。

第2行:宣告myservo為Servo物件。

第3到5行:在setup函式內,使用物件myservo的函式attach,輸入數值9,表示伺服馬達連接在D9。

第6到15行:在loop函式內,使用迴圈讓迴圈變數i由0到180,每次遞增1,呼叫物件myservo的函式write,輸入變數i,使用函式delay,讓馬達每間隔0.01秒正轉1度。使用迴圈讓迴圈變數i由180到0,每次遞減1,呼叫物件myservo的函式write,輸入變數i,使用函式delay,讓馬達每間隔0.01秒逆轉1度。

執行程式

編譯及上傳程式到Arduino,將看到伺服馬達逆時針旋轉180度,接著順時針旋轉180度,會不斷重複此動作。

實作圖如下

參考

http://yehnan.blogspot.tw/2013/09/arduinotower-pro-sg90.html