A08. 伺服馬達控制
Last updated
Last updated
控制伺服馬達的轉動, 從 0 度轉到 90度, 再轉到180 度, 再回到 0 度
麵包板
伺服馬達 ( or EMAX )
杜邦線
產生的 Arduino 程式如下
控制馬達的訊號, 是透過板子的腳位送出一個 50hz (每秒重複 50 次, 每次 20ms) 的訊號, 訊號內會有一拉高的訊號, 告知馬達的電路板這次要轉多少度。 每個型號的伺服馬達的可旋轉角度和控制旋轉角度的脈衝寬度都不一樣。 若無額外設定, 則軟體預設的脈衝寬度會是 544µs ~2400µs (0.544ms ~ 2.4 ms)
若此馬達的轉動範圍和接收訊號範圍是和預設值完全相同, 則馬達收到 544µs 脈衝寬度的訊號時, 會轉到 0 度。 收到 2400µs 的訊號時, 會轉到 180 度。
現實使用上馬達的工作範圍不一定符合軟體的訊號預設值, 所以會造成轉不夠或轉過頭。
可嘗試修改積木如下圖, 將脈衝範圍設定符合這顆馬達的工作範圍, 就不會發生抖動現象.
Q: 為何我的馬達不會轉?
A: 有幾個可能性:
請先檢查接線是否正確
積木內的 "Pin" 是否有都正確設定
馬達可能長時間在超出極限值下運作燒壞了
Q: 為何我的馬達會一直抖動?
A: 超出極限範圍運做時, 馬達會一直抖動, 長時間運作馬達會發燙, 也有可能會燒壞
(圖片由 產生, LinkIt 7697 fritzing )
此範例使用的是 內的 Mini Servo, 型號為 (EMAX ), 經測試兩端極值的脈衝寬度約為 620µs ~ 2700µs (角度約 200 度)。