當SG90、MG90S這種輕負載舵機扭力不夠用的時候(例如要抬起有點重量的機構、或是承受側向力的應用),MG996R這種大扭力舵機就派上用場了,但用法上有些地方跟輕負載舵機不太一樣。
13KG扭力代表什麼
扭力規格通常標示成「公斤力·公分」,意思是在特定力臂長度下能承受的重量。13KG扭力聽起來很大,但實際能承受的重量要看你機構的力臂設計——力臂越長,實際能撐住的重量越輕(槓桿原理),設計機構的時候不能只看規格數字,還要算清楚你的應用實際力臂長度。
供電是最容易被忽略的環節
- 大扭力舵機瞬間啟動電流比SG90這類小舵機高不少,務必獨立供電(不要吃開發板USB供電),電源供應器或電池的電流輸出能力要夠
- 長時間承重(舵機鎖死角度撐著重量不動)的應用,舵機內部其實一直在耗電維持力矩,如果機構設計允許,盡量用機械結構(卡榫、支撐架)分擔一部分重量,單靠舵機硬撐,長時間下來對馬達壽命不利
- 金屬齒輪雖然耐用度好,但長期高負載使用還是會磨損,設計機構時預留一點安全係數(不要每次都逼近扭力上限使用),馬達才耐用
如果你的專案是機械手臂末端夾爪這種需要「夾住不放」的應用,MG996R搭配適當的機構設計(讓夾爪本身有一定的自鎖角度)會比純粹依賴舵機扭力撐著更省電也更穩定。
材料清單(BOM)
| 品項 | 數量 | 備註 |
|---|---|---|
| Arduino UNO R3 開發板 | 1 | 本篇教學使用的開發板 |
| MG996R 大扭力伺服馬達 | 1 | |
| 獨立電源供應器 | 1 | 建議5-6V、電流至少2A以上,依實際負載調整 |
腳位接線對照表
| 開發板腳位 | 舵機接線 | 說明 |
|---|---|---|
| 5V(獨立供電) | 紅線(VCC) | 舵機供電正極,不要吃開發板USB供電 |
| GND | 黑線(GND) | 共地(務必與Arduino共地) |
| D9 | 橘線(訊號線) | PWM控制訊號 |
📷 〔照片預留位:請在這裡插入實際接線/組裝照片〕
完整程式碼
// MG996R大扭力伺服馬達控制(分段漸進移動,降低瞬間啟動電流對機構的衝擊)
#include <Servo.h>
Servo myServo;
const int SERVO_PIN = 9;
void setup() {
myServo.attach(SERVO_PIN);
myServo.write(90); // 開機先歸中,避免上電瞬間位置不明
delay(500);
}
void moveToAngle(int targetAngle, int stepDelay) {
int currentAngle = myServo.read();
int step = (targetAngle > currentAngle) ? 1 : -1;
for (int angle = currentAngle; angle != targetAngle; angle += step) {
myServo.write(angle);
delay(stepDelay); // 漸進移動,減少大扭力舵機瞬間動作對機構的衝擊
}
}
void loop() {
moveToAngle(0, 15);
delay(1000);
moveToAngle(180, 15);
delay(1000);
}
