關鍵字: Arduino, MG996
硬體 | MG996R 改裝360度 (含arduino測試程式)
黑修斯提供兩個方法
- 不拆除可變電阻(本文介紹)
- 拆除可變電阻後,另外焊接2.5K的並聯電阻上去,可參考 雄DIY 的文章。
開始前的準備的工具
- 小螺絲起子
- 斜口鉗
- 強力膠 或 三秒膠 或 熱熔膠
- Arduino開發版
原理說明
伺服馬達(MG996)是利用PWM控制轉動角度,其控制的角度為0~180度,而控制的原理與機構是利用內部的減速齒輪與可變電阻組裝再一起,並在可變電阻上的齒輪加上擋柱,輸入對應角度的PWM,即可達成動作要求。那更簡單的來說,要馬達到75度,就輸入75度PWM訊號進去,馬達動作到75度,而馬達會到75度,跟擋柱限制齒輪轉動有關係。改裝說明
- 將伺服馬達拆開,拆除內部中減速齒輪上的擋柱。
- 利用Arduino輸出90度的PWM波,脈寬約1.5us,再將可變電阻調整至中間值,使馬達不在轉動。
- 將可變電阻膠封,防止碰轉改變電阻值。
- 重新裝機,完成!!
改裝後的動作
- 輸入90度(約1.5us) 馬達停止
- 輸入180度(約2.5us) 馬達正轉或反轉
- 輸入0度(約0.5us) 馬達正轉或反轉
Arduino控制程式
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//程式開始
// 引用 Servo Library
#include <Servo.h> // 建立一個 Servo 物件
Servo myservo; // 旋轉角度
int value = 0;
void setup()
{
myservo.attach(9); // Servo 接在 pin 9
}
void loop()
{
if (value == 0)
value = 180;
else
value = 0;
myservo.write(90); //馬達到90度位置
// myservo.write(0) 是叫 Servo 旋轉到 0 度的位置
// myservo.write(180) 是叫 Servo 旋轉到 180 度的位置
delay(1500);
}
//程式結束
開始操作
首先將MG996R拆解開來,會如上圖所示,將紅色標示處的擋柱拔除。
接著利用小螺絲起子挖出可變電阻。
如下圖所示,將MG996接好,並輸入本文提供的程式到Arduino中。
將MG996中的可變電阻轉到中間值,馬達應該會停止運轉。
註:每個馬達出廠都有誤差,只要轉到馬達停止運轉即可。
再利用三秒膠,將可變電阻黏死。
將機構裝回去,可變電阻塞進去就好,不用裝回原本的位置,這裡要注意!!!安裝回去時要小心電線跟電線的干擾,不要讓馬達短路。
依照下圖將機構安裝回原處。
將固定螺絲鎖上,就大功告成了!!!
轉貼本文時,需註明來自黑修斯隨手札記原創作者 hughes chen(黑修斯),及附上原文連結,同時 禁止修改,禁止商業使用 。
5 留言
好了程式該麼寫180度一直轉,轉到寫90停止嗎
回覆刪除沒錯哦!!
刪除請問一下,若要改變轉速,有辦法嗎?
回覆刪除請問一下,若要改變轉速,有辦法嗎?
回覆刪除應該是沒有辦法?
刪除不一定能即時回覆問題,有時間會盡量答覆。