When your IoT project needs rotational motion, choosing the right motor type is critical for performance, cost, and power efficiency. Use this framework to systematically evaluate your options:
| Motion Type |
Continuous rotation, any direction |
Limited rotation (0-180° or 0-360°) |
Precise discrete steps |
| Position Control |
None (open-loop) |
Built-in (closed-loop) |
Step counting (open-loop) |
| Speed Control |
Smooth via PWM |
Fixed speed per model |
Step rate (slower = more precise) |
| Holding Torque |
None (coasts when off) |
Strong (holds position) |
Very strong (resists motion when off) |
| Cost |
$2-10 (low) |
$5-20 (medium) |
$10-40 (higher) |
| Driver Complexity |
Simple (H-bridge) |
Very simple (PWM signal) |
Moderate (step sequencing) |
| Power Efficiency |
High |
Medium |
Low (current even at idle) |
| Typical Current Draw |
100-500mA running |
100-600mA peak |
200-1500mA continuous |
| Applications |
Fans, wheels, pumps |
Robot arms, camera gimbals |
3D printers, CNC machines |
Decision Tree:
Q1: Do you need to control the POSITION of the shaft (not just speed)?
- NO → Use DC motor (simplest, cheapest, most efficient for continuous rotation)
- YES → Continue to Q2
Q2: Do you need full 360° continuous rotation OR limited angular range (like 0-180°)?
- Limited range (0-180° or 0-270°) → Use Servo motor (easiest position control, built-in feedback)
- Full 360°+ with position tracking → Continue to Q3
Q3: Do you need to hold position without power or track absolute position indefinitely?
- NO (position relative, occasional reset OK) → Use Servo motor with continuous rotation modification
- YES (absolute position critical, no position loss allowed) → Use Stepper motor
Real-World Examples:
Example 1: Automated Blinds
- Need: Rotate to specific angles (0° = open, 180° = closed) and hold position
- Motor Choice: Servo motor (SG90 or MG996R)
- Why: Limited rotation range, needs to hold position when off, angle control is primary requirement
- Cost: $8 per servo + $3 driver = $11 total
Example 2: Cooling Fan for IoT Gateway
- Need: Variable speed to control airflow based on temperature
- Motor Choice: DC motor (TT motor or 80mm PC fan)
- Why: Continuous rotation, no position control needed, PWM speed control efficient
- Cost: $3 motor + $2 MOSFET driver = $5 total
Example 3: 3D Printer Extruder Drive
- Need: Precise filament feed (exact rotation distance matters for print quality)
- Motor Choice: Stepper motor (NEMA 17)
- Why: Every 1.8° step = exact filament length; position cannot drift over 10-hour print
- Cost: $15 stepper + $8 driver (A4988) = $23 total
Example 4: Smart Door Lock
- Need: Rotate deadbolt 90° to lock/unlock, must hold position against force
- Motor Choice: Servo motor (high-torque metal gear servo)
- Why: Limited rotation, strong holding torque prevents forced entry, position feedback confirms lock engaged
- Cost: $18 high-torque servo + $3 driver = $21 total
Example 5: Robot Wheel Drive
- Need: Variable speed forward/backward, turns via differential steering
- Motor Choice: DC motor (dual TT motors)
- Why: Continuous rotation both directions, speed control via PWM, no position tracking needed
- Cost: $6 for 2 motors + $8 L298N H-bridge = $14 total
Common Mistakes to Avoid:
Mistake 1: Using servo for continuous rotation when DC motor suffices - Problem: Servos draw current even when idle to maintain position; DC motors coast to stop and draw zero current - Impact: Battery life 3x shorter with servo for fan application
Mistake 2: Using DC motor when position matters - Problem: No feedback means no way to know if motor reached target position (could stall, slip, or overshoot) - Impact: Blinds system that randomly stops at wrong positions; requires manual reset
Mistake 3: Using stepper for high-speed rotation - Problem: Steppers lose torque at high step rates (>1000 steps/sec) and consume 500mA-1.5A continuously - Impact: 300 RPM fan application uses stepper drawing 800mA when DC motor drawing 150mA would work better
Comparison Summary:
Choose DC motor when:
- You need continuous rotation (fans, wheels, conveyor belts)
- Speed control is sufficient (no position required)
- Power efficiency matters (battery-powered)
- Cost is constrained (<$5 per motor)
Choose Servo motor when:
- You need angular positioning (0-180° typical)
- Holding torque is required (robotic arms, locks)
- Feedback control simplifies your code (no encoders needed)
- Rotation range limited and predictable
Choose Stepper motor when:
- You need precise step-by-step positioning (3D printers, CNC)
- Absolute position tracking is critical (no position loss over hours)
- High holding torque needed even when not moving
- Open-loop precision acceptable (no encoder feedback)
Key Insight: Start with the simplest motor that meets your requirements. DC motors are the default for continuous rotation. Only use servos when you need positioning, and steppers when you need open-loop precision. Over-specifying motors wastes money and power.