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