前言
在這篇文章中,我們將介紹 WFduino 在 Scratch 3 下的伺服馬達積木,並利用這個積木來控制連接至 Arduino 的小型伺服馬達 SG90。
伺服馬達 SG90
有關伺服馬達 SG90 的介紹請參考這篇文章。
開發環境建置
如果你還沒有建置 WFduino + Scratch 3 的開發環境,請參考這篇文章。
線路圖
- SG90 共有三支接腳,以上圖為例,從左至右分別是GND、電源與控制接腳。
- SG90 的 GND 接腳連接至 Arduino 的 GND 腳位。
- SG90 的電源接腳連接至 Arduino 的 +5V 腳位。
- SG90 的控制接腳連接至 Arduino 編號 7 的腳位。
- 正常來說,馬達所需要的電流並非一般 GPIO 所能負擔。不過因為 SG90 算是相當小型的伺服馬達,再加上僅為測試用,所以在這個範例中我們將 SG90 直接接在 Arduino。比較安全的做法是透過驅動 IC 或專用的驅動卡來連結各式馬達,一方面保護主板,另外一方面也才能穩定提供馬達運轉所需的電力。
範例程式

WFduino 控制 SG90 (Scratch 3)
- 程式一開始宣告兩個變數 – “角度”與”變動角度”。”角度” 用來表示伺服馬達的旋轉角度,而 “變動角度” 則是用來表示每次增加或減少的角度。
- WFduino 內建伺服馬達用的積木,只需指定控制腳位與角度即可。根據前面的接線圖,SG90 控制接腳連接至 Arduino 編號 7 的腳位。
- 因為 SG90 的旋轉角度約在 0~180 度之間,所以我們從 0 度慢慢增加到 180 度,之後再慢慢減少為 0 度,而每次改變的角度為 5 度。也就是伺服馬達的角度將依下列數字變化:0, 5, 10,… 175, 180, 175, 170,… 10, 5, 0, 5, 10…
- 程式執行後,應可看到 SG90 開始來回轉動。
Facebook 留言
Summary

Article Name
WFduino + Scratch + Arduino 使用伺服馬達 SG90
Description
在這篇文章中,我們將介紹 WFduino 在 Scratch 3 下的伺服馬達積木,並利用這個積木來控制連接至 Arduino 的小型伺服馬達 SG90。
Author
Cyril Wang
Publisher Name
Everlearn Studio
Publisher Logo

2
2 comments
如果要讓它一直旋轉(轉好幾圈)而不是來回呢?如何編程式?
一般的伺服馬達無法提供 360 度(或以上) 的旋轉角度,180 度已經是這類伺服馬達的常見極限了,所以無法直接實現你的想法。如果你確實需要此一功能,要特別找符合規格的型號。
如果你只是要 360 度的旋轉角度,可以利用 1:2 的齒輪將 180 度旋轉放大到 360 度。
還有一些破解伺服馬達角度限制的做法,也是一種可行的方向,只不過需要動手拆解馬達,對不熟的人來說有其風險。
最後,也可以考慮是否可以使用步進馬達來取代伺服馬達。