๐ Key Specs:
- Type: Servo motor
- Rotation Angle: ~180ยฐ (can go a bit over)
- Operating Voltage: 4.8V โ 7.2V
- Torque:
โ- Up to 11 kg/cm at 6V ๐ช - Speed: ~0.2 sec/60ยฐ at 6V
- Control: PWM (Pulse Width Modulation)

๐ง Wiring:
- Red: VCC (+ power)
- Brown or Black: GND
- Orange or Yellow: Signal (PWM control)
๐ฆ Controlling MG996R with Arduino
๐ Wiring:
- Signal (orange) โ Arduino D9
- VCC (red) โ External 5Vโ6V power source
- GND (brown) โ Connect to both Arduino GND and external power GND
๐งพ Arduino Code:
#include <Servo.h>
Servo myServo;
void setup() {
myServo.attach(9); // Signal pin
}
void loop() {
myServo.write(0); // Rotate to 0ยฐ
delay(1000);
myServo.write(90); // Rotate to 90ยฐ
delay(1000);
myServo.write(180); // Rotate to 180ยฐ
delay(1000);
}
๐ฉ Controlling MG996R with ESP32
ESP32 needs a special library: ESP32Servo
Install via: Sketch โ Include Library โ Manage Libraries โ Search โESP32Servoโ
๐ Wiring:
- Signal โ Any PWM-capable pin (e.g. GPIO 18)
- VCC โ External 5Vโ6V power source
- GND โ Common ground between ESP32 and power supply
๐งพ ESP32 Code:
#include <ESP32Servo.h>
Servo myServo;
void setup() {
myServo.setPeriodHertz(50); // 50Hz for MG996R
myServo.attach(18); // Signal pin (e.g. GPIO18)
}
void loop() {
myServo.write(0);
delay(1000);
myServo.write(90);
delay(1000);
myServo.write(180);
delay(1000);
}
โ ๏ธ Pro Tips:
- ๐ MG996R is powerful โ use an external power source (not just from Arduino or ESP32).
- ๐งฏ Limit movement between 10ยฐ to 170ยฐ to avoid servo stress at the ends.
- ๐ฅ Be cautious when using with 3.3V logic (ESP32 is okay, but use resistors if needed).