Arduino第十一課(伺服馬達)
宜蘭縣竹林國小 陳金助老師

伺服馬達:又稱為舵機,可以依照指示角度做轉動的馬達。

一般伺服馬達有三條線,電源(紅色)、接地(黑或棕色)、訊號線(白、黃、橘、藍….)。透過訊號線傳送PWM脈波來控制軸柄的停止位置旋轉角度,使用mblock程式,只要一個指令就可以控制了。

若想使用超過兩個以上的伺服馬達,要以另外的電源供電,而且要記得共同接地。

一、控制伺服馬達轉動

將伺服馬達的三條線,電源(紅色)接5V、接地(黑或棕色)接GND、訊號線(白色)接數位腳D12。

使用指令 [ 設置伺服馬達腳位……輸出角度為…..]來控制馬達的轉動角度。

每個指令之間要[等待1秒],讓馬達有時間去轉動。

程式下載:伺服馬達.sb2

二、使用鍵盤按鍵來控制轉動角度

注意:

記得先檢查[輸入法]是否為[英],當輸入法不對時,鍵盤按鍵對應的值是錯的,無法正確反應動作。

按下鍵盤上的[空白鍵]讓伺服馬達轉動到0度,[左移鍵]讓伺服馬達轉動到90度,[左移鍵]讓伺服馬達轉動到180度。
[上移鍵]讓伺服馬達轉動角度增加5度,[下移鍵]讓伺服馬達轉動角度減少5度。

程式下載:鍵盤控制轉動.sb2

三、用按鍵控制轉動角度

選擇上面的伺服馬達線路,再設置兩個按鍵線路(請參考第八課(按鍵))

A按鍵讓伺服馬達轉動角度會增加1度,B按鍵讓伺服馬達轉動角度會減少1度。

程式設計請參考上面和第八課(按鍵)

四、可變電阻控制伺服馬達轉動

 

可變電阻改變時類比腳A0讀到的值也會改變。

輸入的電壓是0到5V,讀到的數值為0到1023,顯示時需要做公式轉換

A0讀到的數值範圍為0到1023 伺服馬達的轉動角度為0到180度,顯示時需要做公式轉換。

程式中有一個說的指令,可以讓我們看到輸出的角度。

設置伺服馬達的輸出角度為轉換結果。

程式下載:可變電阻轉動馬達A.sb2

程式修正

上面程式執行時發現太過靈敏,會有抖動現象。

在程式中多加一個 [ 將轉換結果四捨五入 ] 的指令,可以改善此情形。

程式下載:可變電阻轉動馬達.sb2

延伸:

將伺服馬達裝到機械手臂上,就可以操控手臂的動作了。

五、光敏電阻控制轉動角度

將上面可變電阻控制伺服馬達的線路中,可變電阻更換成光敏電阻感應線路(請參考第十課(光敏電阻))

伺服馬達的角度隨著光強度而改變,當光強度最大時,伺服馬達轉動到180度,光強度最小時伺服馬達轉動到0度。

程式設計請參考上面和第十課(光敏電阻)

六、創作:

結合前面的零件組合創作。

————————————–

相關連結:

Arduino初級班課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/93477/605771

Arduino課程準備
http://blog.ilc.edu.tw/blog/blog/868/post/93477/599681

Arduino第一課(概論、連接)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/599732

Arduino第二課(LED)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/599733

Arduino第三課(用鍵盤控制LED)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/600369

Arduino第四課(LED紅綠燈)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/600422

Arduino第五課(pwm)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/600854

Arduino第六課(RGB三色LED)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/600855

Arduino第七課(蜂鳴器)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/602388

Arduino第八課(按鍵)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/602288

Arduino第九課(可變電阻)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/602290

Arduino第十課(光敏電阻)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/602291

Arduino第十一課(伺服馬達)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/605139

Arduino第十二課(離線執行)
http://blog.ilc.edu.tw/blog/blog/868/post/93477/605798

文章來源:Arduino第十一課(伺服馬達) 由 roc 發表。