Whether you are building a robotic arm, a pan-tilt camera mount, or an automated door lock, choosing the right servo motor is crucial for your project’s success. India’s electronics market offers dozens of servo motor options ranging from the tiny SG90 micro servo to heavy-duty 60 kg-cm metal gear models. This buying guide helps you navigate the choices and pick the perfect servo for your needs and budget.
How Servo Motors Work
A servo motor is a closed-loop system that combines a DC motor, a gear train, a position sensor (potentiometer), and a control circuit in a compact package. You send it a PWM signal specifying the desired angle, and the internal control circuit drives the motor until the potentiometer reading matches the target position.
The standard servo PWM signal has a period of 20ms (50Hz) with a pulse width between 1ms (0 degrees) and 2ms (180 degrees). Some servos accept pulse widths from 0.5ms to 2.5ms for a full 180-degree range. The servo continuously adjusts its position to match the pulse width, providing active holding torque.
Types of Servo Motors
By Size
- Micro Servos (9g): SG90, MG90S. Weighing just 9-13g, these are ideal for small robots, RC aircraft control surfaces, and lightweight projects.
- Standard Servos (40-55g): MG995, MG996R, Futaba S3003. Used in medium robots, RC cars, and general-purpose projects.
- High-Torque Servos (60-80g): 20KG, 25KG, 60KG models. Built for robot arms, heavy-duty grippers, and walking robots.
By Gear Material
- Plastic Gears: Lighter and cheaper but prone to stripping under high load. Fine for light-duty applications.
- Metal Gears: Heavier and more expensive but handle high torque without stripping. Essential for robot arms and heavy-duty use.
By Signal Type
- Analog: Update position at 50Hz. Adequate for most projects.
- Digital: Update position at 300Hz+. Faster response, better holding torque, higher power consumption.
By Rotation
- Standard (180 degrees): Rotate to a specific angle within a limited range.
- Continuous Rotation (360 degrees): Spin continuously like a DC motor but with speed/direction control via PWM. Used as drive motors for small robots.
Key Specifications to Compare
| Specification | What It Means | Why It Matters |
|---|---|---|
| Torque (kg-cm) | Force the servo can exert at 1cm from shaft centre | Determines what loads the servo can move |
| Speed (sec/60°) | Time to rotate 60 degrees | Faster servos are critical for responsive robots |
| Operating Voltage | Recommended voltage range | Higher voltage usually means higher torque and speed |
| Dead Band Width | Minimum pulse change needed for movement | Smaller dead band = finer position control |
| Gear Material | Plastic, metal, or hybrid | Metal gears handle higher loads without stripping |
| Bearing Type | Bushing or ball bearing | Ball bearings reduce friction and last longer |
Popular Servo Motors Compared
| Model | Torque | Speed | Gears | Weight | Best For |
|---|---|---|---|---|---|
| SG90 | 1.8 kg-cm | 0.12s/60° | Plastic | 9g | Learning, small robots |
| MG90S | 2.2 kg-cm | 0.08s/60° | Metal | 13.4g | Small robots, pan-tilt |
| MG995 | 10 kg-cm | 0.17s/60° | Metal | 55g | Robot arms, RC cars |
| MG996R | 13 kg-cm | 0.14s/60° | Metal | 55g | Robot arms, medium robots |
| 20KG Digital | 20 kg-cm | 0.16s/60° | Metal | 60g | Heavy robot arms, hexapods |
| 25KG Digital | 25 kg-cm | 0.14s/60° | Metal | 65g | Walking robots, large arms |
Wiring a Servo to Arduino
Most servos have three wires:
- Red: Power (VCC) — typically 4.8-6V
- Brown/Black: Ground (GND)
- Orange/Yellow/White: Signal (PWM)
Basic Wiring
For a single SG90 servo, you can power it directly from Arduino’s 5V pin. For larger servos or multiple servos, always use an external power supply (5-6V, at least 1A per servo).
Arduino Servo Sweep Code
#include <Servo.h>
Servo myServo;
void setup() {
myServo.attach(9); // Servo signal on pin 9
}
void loop() {
// Sweep from 0 to 180 degrees
for (int angle = 0; angle = 0; angle--) {
myServo.write(angle);
delay(15);
}
}
Driving Multiple Servos with PCA9685
Arduino has limited PWM pins (6 on Uno). When your project needs more servos — like a 6-DOF robot arm or a hexapod walker — the PCA9685 module is the solution. This I2C-controlled board provides 16 independent PWM channels, and you can daisy-chain up to 62 boards for a total of 992 servos.
PCA9685 Wiring
- PCA9685 VCC → Arduino 5V
- PCA9685 GND → Arduino GND
- PCA9685 SDA → Arduino A4
- PCA9685 SCL → Arduino A5
- Servo power terminal → External 5-6V power supply
PCA9685 Code Example
#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>
Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();
#define SERVOMIN 150 // Minimum pulse length
#define SERVOMAX 600 // Maximum pulse length
void setup() {
pwm.begin();
pwm.setPWMFreq(50); // 50Hz for servos
}
void loop() {
// Sweep servo on channel 0
for (int pulse = SERVOMIN; pulse = SERVOMIN; pulse--) {
pwm.setPWM(0, 0, pulse);
delay(5);
}
delay(500);
}
How to Choose the Right Servo
Follow this decision tree to select the right servo:
- Calculate required torque: Measure the weight your servo needs to lift and the distance from the shaft centre. Torque (kg-cm) = Weight (kg) x Distance (cm). Add a 50% safety margin.
- Consider speed requirements: For robotic arms, 0.15-0.20s/60° is usually fine. For RC helicopters and racing cars, you need faster servos (0.08-0.12s/60°).
- Choose gear material: Use metal gears if torque exceeds 3 kg-cm or if the servo will experience shock loads.
- Check power requirements: High-torque servos can draw 1-2A under load. Ensure your power supply can handle all servos running simultaneously.
- Budget considerations: SG90 servos cost around ₹60-80. MG996R costs around ₹200-350. 20KG digital servos cost around ₹500-800.
Frequently Asked Questions
Why does my servo jitter or vibrate?
Servo jitter is usually caused by electrical noise on the signal line, insufficient power supply, or a noisy PWM signal. Solutions: use a separate power supply for servos, add a 100uF capacitor across the servo power pins, and keep signal wires away from motor wires.
Can I use a servo motor for continuous rotation?
Standard servos are limited to 180 degrees. You can buy continuous rotation servos (like the SG90 360° version) that spin continuously with speed/direction control. Alternatively, you can modify a standard servo by removing the internal position stop and disconnecting the potentiometer.
How many servos can Arduino Uno drive?
The Arduino Servo library supports up to 12 servos on an Uno (using timers). However, the Uno cannot provide enough current for more than 1-2 small servos. Use a PCA9685 board with an external power supply for multiple servos.
What is the difference between MG995 and MG996R?
The MG996R is the upgraded version of MG995. It offers higher torque (13 vs 10 kg-cm), faster speed, and better build quality. The MG996R is digital while MG995 is analog. For new projects, always choose the MG996R.
Conclusion
Servo motors are the simplest way to add precise angular control to your projects. Start with an SG90 to learn the basics, move to MG996R for serious robot builds, and use the PCA9685 driver when you need to control multiple servos. With the right servo selection, you can build everything from simple sweeping mechanisms to complex multi-axis robot arms.
Browse our complete servo motor collection at Zbotic.in and find the perfect motor for your next project.
Add comment