Arduino第11課伺服馬達(舵機)

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

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

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

一、控制伺服馬達轉動

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

注意:

因為伺服馬達需要較大的供電,如果已經連線後,直接插上去時有可能會造成程式連接中斷,如果接上後程式沒有反應,請關掉WFduino APP重新再啟動連接;或是在5V和GND之間接上470uF以上的電容試試看。

圖片來源:
https://learn.adafruit.com/adafruit-arduino-lesson-14-servo-motors/if-the-servo-misbehaves

1.轉動伺服馬達

使用 [ 伺服馬達為腳位(…)轉動角度為(…)度]  的指令積木來控制馬達的轉動角度。

改變角度數字就可以改變伺服馬的轉動角度。

程式下載:伺服馬達.sb2

2.讓伺服馬達慢慢從0度轉到180度,再轉回0度,重複轉動。

使用 [ 伺服馬達為腳位(…)轉動角度為(…)度]  的指令積木來控制馬達的轉動角度。

製做一個[角度]變數,使用[重複 …次] (迴圈) 來讓程式變的簡短一點

加上[等待0.5秒],讓馬達有時間去轉動。

程式下載: 伺服馬達.sb2

 

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

注意:

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

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

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

延伸:

1.利用拉霸(變數)控制伺服馬達

先做一個[角度]變數,在舞台區會顯示變數的圖案,在圖案上用滑鼠左鍵點一下,就會變成只有數值,在圖案上再點一下滑鼠左鍵,就會出現有[拉霸]小點的圖形。

用滑鼠左鍵拖曳小點往左右滑動,就可以改變變數大小,也就是改變輸出值的大小。

這樣就可以拉霸來控制伺服馬達的轉動角度。

程式下載:拉霸控制伺服馬達.sb2

2.調整成可以控制到最大的180度

[拉霸]小點的圖形,內定最大就是100度,如何可以讓轉動角度達到最大的180度呢?

動動腦想想看吧!

增加一個變數,將拉動的變數除以100再乘以180,就可以將拉動的值轉換成最大到180度了。

程式下載:拉霸控制伺服馬達180.sb2

三、用按鍵控制轉動角度

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

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

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

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

因為程式修正,以後用到[讀取類比腳位A0]積木時,請在[當綠旗被點一下]積木下方增加[腳位A0模式設為INPUT]積木。

 

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

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

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

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

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

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

程式修正如下:

 

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

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

延伸:

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

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

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

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

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

延伸:

1.伺服馬達連接大門,平常門關起來,當有人靠近時,遮住光敏電阻的光,啟動伺服馬達打開門。

2.模擬停車場柵欄機,感應升起柵欄。

六、創作:

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

七、步步高升

使用[伺服馬達]代替手的動作,讓小雞一步一步往上走。

 

重複讓伺服馬達移動壓下玩具的按鍵。

程式下載:步步高升.sb2

延伸:

加上其他感測器,當發生其他狀況時,再啟動玩具動作。

例如:當有人靠近時才啟動,沒人時就停止。

—————————————

參考資料:

http://www.makezine.com.tw/make2599131456/understanding-types-of-servo-motors-and-how-they-work

你知道180度舵機與360度舵機有什麼區別嗎?

360度舵機與一般舵機的區別是:給一般舵機一個PWM信號,舵機會轉到一個特定角度,而給360度舵機一個PWM信號,舵機會以一個特定的速度轉動,類似與電機。但與電機不同的是,360舵機是閉環控制,速度控制穩定。

原文網址:https://kknews.cc/news/rlb39lo.html 

【10個伺服馬達冷知識&原理大解析】SG90都是仿冒品、設定0度會把馬達燒壞、金屬齒輪沒有比較好,詳細講解伺服馬達工作原理,伺服馬達的冷知識

https://youtu.be/Yxp7e67_g5I

 

roc

宜蘭縣國小資訊小站

您可能也會喜歡…