π 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).