Kerem Öz

Motor Selection for Robots: A Comparison of DC, Servo, and Stepper Motors

Robot projeleri için motor seçimi rehberi: DC redüktörlü, servo ve step motorların farkları, tork ve devir hesabı, encoder kullanımı ve motor sürücü kartı seçimi.

Motor Selection for Robots: A Comparison of DC, Servo, and Stepper Motors
Fig. 1 Motor Selection for Robots: A Comparison of DC, Servo, and Stepper Motors

Choosing a motor is the decision that comes up most often in robotics projects. The first motor you buy usually turns out to be either too fast and underpowered, or too slow and unnecessarily powerful. The reason is simple: it’s rarely explained how to translate the numbers in motor catalogs into practical project specifications.

In this article, I compare three types of motors in terms of real-world usage, demonstrate torque calculations with specific numbers, and explain what to look for when selecting a driver board.

Three motor types, three different tasks

DC with gearheadServoStepper
MotionContinuous rotationSpecific angle (0–180°)Step-by-step, full rotation
Position dataNone (encoder required)InternalBy step count
Torque/weightGoodMediumLow
Current consumptionVaries by loadVaries depending on the loadHigh even when idle
Difficulty in controlEasy (PWM)Very easyModerate (driver required)
Typical useWheel, trackArm, steering, gimbal3D printer, CNC

DC gearmotors

The backbone of robotics competitions. It consists of a DC motor and a gearbox mounted in front of it. The gearbox reduces speed and increases torque—which is exactly what you need in robots.

Understanding the reduction ratio

A 1:50 ratio means that when the motor shaft rotates 50 times, the output shaft rotates once. This change affects two things in opposite ways:

  • The speed drops by a factor of 50. A 10,000 rpm motor → 200 rpm output.
  • Torque increases approximately 50-fold (in practice, about 70–80% due to gear efficiency).

In other words, choosing a reduction ratio is directly a decision between “speed or power”:

RatioTypical RPMCharacterSuitable Application
1:101,000+ rpmVery fast, weakFan, propeller
1:30~800 rpmFastFast line-following
1:50~400 rpmBalancedGeneral-purpose robot
1:100~200 rpmPowerful, slowMini sumo, pushing
1:300~60 rpmVery powerfulRobot arm, lifting

Torque calculation

The rough answer to the question “How much torque is required?” is found using the following formula:

Gerekli tork (kg·cm) =
   (Toplam ağırlık × Tekerlek yarıçapı × Güvenlik katsayısı) / Motor sayısı

Example: A two-motor robot weighing 1.2 kg with wheels having a radius of 3.5 cm. On a flat surface, the safety factor is 1.5:

(1,2 × 3,5 × 1,5) / 2 = 3,15 kg·cm  →  motor başına ~3,2 kg·cm

If the robot needs to climb a ramp or push an opponent, increase the safety factor to 3. For push-focused robots like mini sumo, 5–8 kg·cm per motor is typical.

Interactive torque calculator — this section runs on JavaScript.
Caution

The torque value listed in the catalog is typically the stall torque—that is, the value at the moment the motor is completely locked. Running the motor continuously at this point will burn out the windings. For continuous operating torque, account for 30% of the stall torque.

Encoder: Allowing the robot to track its own movement

In simple projects, “move forward for two seconds” is sufficient. However, as the battery weakens, the same command covers a shorter distance. An encoder eliminates this uncertainty.

The most common type in robotics is the quadrature magnetic encoder: it consists of a magnet mounted on the motor shaft and two Hall sensors, providing both the number of revolutions and the direction of rotation.

volatile long sayac = 0;

void encoderKesme() {
  if (digitalRead(ENC_B)) sayac++;
  else                    sayac--;
}

void setup() {
  attachInterrupt(digitalPinToInterrupt(ENC_A), encoderKesme, RISING);
}

// Mesafe hesabı
float mesafeCm() {
  const float TUR_BASINA_TIK = 1400.0;      // motor + redüktör + encoder
  const float TEKERLEK_CEVRE = 2 * 3.14159 * 3.5;
  return (sayac / TUR_BASINA_TIK) * TEKERLEK_CEVRE;
}

You can add PID speed control along with the encoder; this way, the robot travels at the same speed on both ramps and flat surfaces.

Metal redüktörlü DC motor, encoder ve tekerlek yakın plan detay
Fig. 2 — A metal gearbox lasts much longer than a plastic one. In competition robots, this difference can determine the outcome of an entire season.

Servo Motors

A servo motor is essentially a package: DC motor + gearbox + position sensor + control circuit. You specify an angle, and the servo moves to that position and stops there.

The difference between analog and digital servos

  • Analog servo: Performs position adjustments at ~50 Hz. Inexpensive, slow response, low holding force. The SG90 falls into this category.
  • Digital servo: Performs adjustments at over 300 Hz. Faster, stronger holding power, draws more current.

If you’re experiencing vibration or sagging in a robotic arm or steering mechanism, the solution is usually to switch to a digital servo.

Continuous-rotation servo

Servos with position feedback disabled are called “continuous rotation” servos. You control speed instead of angle. It’s practical, but it has two drawbacks: speed control is coarse, and there’s no position feedback. A geared DC motor is generally a better choice for wheel drive.

Field note

Never power servo motors from the Arduino’s 5V pin. Even the SG90 can exceed 500 mA during movement; two servos will reset the board. Use a separate 5V regulator and share the GNDs.

Stepper Motors

A stepper motor rotates the shaft in fixed-angle steps (typically 1.8° per step, or 200 steps per revolution). You know the position without a sensor—the shaft has rotated exactly as many steps as the driver sent.

Why they are not preferred for robot wheels

  • Heavy: They are significantly heavier than DC motors for the same torque.
  • Continuous current: The coils are powered even when the motor is at rest; battery life drains rapidly.
  • Torque drops at high speeds: It weakens as speed increases.
  • Step skipping: If overloaded, it skips steps, and position information silently becomes corrupted.

In contrast, stepper motors are the right choice for 3D printers, CNC machines, camera slides, and any application requiring precise positioning.

Microstepping

Drivers such as the A4988 or DRV8825 divide a single step into 2, 4, 8, 16, or even 32 parts. This both quietens and smooths the motion. However, microstepping does not increase precision; it merely provides smoothness. Holding torque decreases during microstepping.

Selecting a Motor Driver Board

You cannot connect the motor directly to the microcontroller; a driver must be in between. And driver selection is just as important as motor selection.

DriverCurrent (continuous)Voltage DropEvaluation
L298N~2 A1.4–2 VOld, inefficient, runs very hot
L293D0.6 A~1.8 VOnly for very small motors
TB6612FNG1.2 A (peak 3 A)~0.1 VThe best balance for small robots
DRV88331.5 A~0.1 VInexpensive, efficient, compact
VNH2SP3014 AVery lowPowerful robots, sumo
BTS796043 AVery lowLarge robots, extreme power

The L298N is still the best-selling driver, but its technology dates back to the 1990s. The MOSFET-based TB6612FNG delivers up to 25% more voltage to your motor from the same battery. This means your robot will be faster without having to make any changes.

PWM frequency

If your motor emits a high-pitched hum while running, the PWM frequency is within the audible range. Arduino’s default frequency of 490 Hz is exactly what causes this problem.

Raising the frequency above 20 kHz completely eliminates the noise. On the ESP32, this is a one-line configuration; on the Arduino, you’ll need to adjust the timer registers.

Motor sürücü kartı, kablolar ve robot şasisi üzerinde montaj detayı
Fig. 3 — Motor wires should run alongside the power wires, away from the signal wires. Otherwise, noise will interfere with sensor readings.

Heat, Efficiency, and Motor Lifespan

After selecting a motor, most teams completely forget about it. However, how the motor is operated directly determines how long it will last.

Why Do Motors Overheat?

The current drawn by a DC motor is directly proportional to the torque it produces. As the motor is under greater load, it draws more current; more current means more heat. Heat degrades the insulation of the windings, and at some point, the windings short-circuit.

The critical moment is when the motor isn’t rotating but voltage is applied—this is called a stall. At this point, the motor draws maximum current and produces no work; all the energy is converted into heat. The motors of a sumo robot pressing against an opponent are in exactly this state.

Practical Precautions

  • Set a current limit. If your driver board can read the current, reduce the PWM when the threshold is exceeded.
  • Do not operate the motor at continuous stall torque. If the robot cannot move forward, have it retreat for a few seconds and then attack again.
  • Check the motor housing by hand. If it’s too hot to touch, you’re at the limit.
  • Do not exceed the rated voltage. A 20% overshoot is acceptable; double that will burn out the windings.

Soft Start

Ramping the PWM from zero to 255 instantly causes both current spikes and gear wear. A ramp of a few hundred milliseconds protects both the motor and the driver:

int hedefHiz = 255, mevcutHiz = 0;
const int ADIM = 8;                      // her döngüde artış

void hizGuncelle() {
  if (mevcutHiz < hedefHiz) mevcutHiz = min(mevcutHiz + ADIM, hedefHiz);
  else if (mevcutHiz > hedefHiz) mevcutHiz = max(mevcutHiz - ADIM, hedefHiz);
  analogWrite(MOTOR_PWM, mevcutHiz);
}

Caution: A soft start extends the response time. In categories where sudden acceleration is critical—such as Mini Sumo—keep the ramp very short or omit it entirely.

Transmission Options

The connection between the motor shaft and the wheel is also a design decision and is often taken for granted.

MethodProsCons
Direct DriveSimple, efficient, losslessThe motor position determines the wheel
Belt-pulleyThe motor is freely positioned, quietBelt tension requires adjustment; the belt may slip
Gear transmissionAdditional reduction, powerfulBacklash, noise, alignment
ChainTransfers high torqueHeavy; unnecessary in small robots

Direct drive is almost always the right choice for small competition robots: fewest parts, least loss, fewest points of failure. A belt-and-pulley system only makes sense if you need to place the motor in a different location within the chassis.

Shaft connection

How you secure the wheel to the shaft is also important. Connections made solely by a tight fit will rotate on the shaft under high torque, causing the robot to lose power. The most robust solution is a D-shaped flattened shaft with a hub that fits onto it; the second-best option is to secure it with a set screw.

Common Mistakes

  1. Basing calculations on RPM instead of torque. Ask “How many kg·cm?” instead of “How many RPM?”
  2. Mistaking stopping torque for continuous torque. Calculate using 30% of the catalog value.
  3. Selecting a motor that’s too small. The motor’s starting current is 5–8 times the continuous current.
  4. Exceeding the motor’s rated voltage. Applying 12 V to a 6 V nominal motor provides a quick start in the short term but will wear out the brushes and windings in the medium term.
  5. Forgetting the common ground. The driver board’s GND must be connected to the microcontroller’s GND.
  6. Failing to filter motor noise. Soldering a 100 nF capacitor to the terminals of brushed DC motors resolves unexplained spikes in sensor readings.

Summary Decision Table

Match your project with these three questions:

  • Does it need to rotate continuously and require power? → Geared DC motor + MOSFET driver.
  • Does it need to stop at a specific angle? → Servo motor (digital servo if the load is heavy).
  • Do you need precise and repeatable positioning? → Stepper motor + microstep driver.

The next step after selecting a motor is to set up the power system correctly. The current drawn by the motors directly determines the choice of battery; I covered this topic in the LiPo battery guide along with the C-rate and current calculations.

Frequently asked questions

Robotum için ne kadar tork gerekli?

Basit hesap: Tork = (Toplam ağırlık × Tekerlek yarıçapı × İvme katsayısı) / Motor sayısı. 1 kg ağırlık, 3 cm yarıçaplı tekerlek ve 2 motor için motor başına yaklaşık 1,5–2 kg·cm yeterlidir. Rampa veya itiş gerekiyorsa bu değeri iki katına çıkarın.

Servo motor mu DC motor mu kullanmalıyım?

Sürekli dönmesi gereken yerlerde (tekerlek, fan, konveyör) redüktörlü DC motor; belirli bir açıya gidip orada durması gereken yerlerde (robot kolu, direksiyon, kamera açısı) servo motor kullanın.

Step motor robotlarda kullanılır mı?

Kullanılır ama tekerlek tahrikinde nadiren. Step motor konum hassasiyeti sunar, buna karşılık ağırdır, çok akım çeker ve yüksek devirde tork kaybeder. 3B yazıcı, CNC ve hassas konumlandırma gerektiren eksenlerde doğru tercihtir.

L298N sürücü neden ısınıyor ve güç kaybettiriyor?

L298N eski bir bipolar transistör teknolojisi kullanır ve motor başına yaklaşık 1,4–2 V gerilim düşümü yaratır. 7,4 V pilden motora sadece ~5,5 V gider, kalan enerji ısıya dönüşür. Yerine MOSFET tabanlı TB6612FNG veya DRV8833 kullanın.

Encoder gerekli mi?

Robotun ne kadar yol gittiğini bilmesi gerekiyorsa evet. Encoder olmadan “iki saniye ileri git” komutu pil doluyken ve azken farklı mesafeler üretir. Çizgi izleyen gibi dış referansı olan robotlarda encoder şart değildir.

Comments

0

No comments yet. Be the first to comment!

Write a Comment

Your email will not be published, only the site owner can see it.