29 Dc DC Motors

Element 29 of 86 — The Periodic Table of Robotics

DC Motors

Power & Motion

Master DC motors and you can make almost anything move — wheels, tracks, arms, and more — with just a few volts and some code.

A DC motor is the heartbeat of most beginner robots. Two wires in, voltage applied, shaft spins. It is genuinely that simple — and that satisfying.

What is a DC Motor?

A DC (Direct Current) motor converts electrical energy into rotational motion. Feed it positive voltage and it spins one way; reverse the polarity and it spins the other way. That reversibility is what lets your robot go both forwards and backwards.

Most small robots use N20 micro gear motors or TT yellow motors. These come with a built-in gearbox that trades raw speed for torque — so instead of spinning at 10,000 RPM with no grunt, you get a more usable 100–300 RPM that can actually shift a chassis.

Key specs to know:

  • Voltage rating — typically 3 V to 12 V for hobby motors
  • Stall current — the current drawn when the motor is held still (can be 5–10× the running current)
  • RPM — revolutions per minute at rated voltage, with or without the gearbox
  • Torque — measured in mN·m or kg·cm; bigger numbers mean more pushing power

The symbol and terminals

A DC motor is delightfully simple — just two terminals. On a schematic it’s an M in a circle. Swap which terminal is positive and the shaft reverses:

        +  ┌─────┐  −
   ───────┤  M  ├───────
           └─────┘
        terminal A   terminal B

   + on A, − on B  →  spins forward
   + on B, − on A  →  spins backward

How you control it

Two wires alone only give you “full speed, one direction”. The pairing that gives a robot real control puts an H-bridge between the microcontroller and the motor (for direction) and feeds it a PWM signal (for speed):

flowchart LR
    GPIO["GPIO pins<br/>(DIR + PWM)"] --> HB["H-bridge<br/>driver"]
    BATT["Battery"] --> HB
    HB --> MOTOR["DC Motor<br/>(M)"]
    HB -->|"direction"| MOTOR
    HB -->|"speed (PWM)"| MOTOR

Direction comes from which way the H-bridge sends current; speed comes from how much of the time the PWM signal is switched on. Together they let three GPIO pins drive a motor anywhere from a gentle crawl to flat-out, forwards or backwards.

Why robot builders care

Wheels need DC motors. Tank tracks need DC motors. Robot arms, conveyor belts, spinning sensors — most of them come back to a DC motor somewhere in the chain.

The real skill is control. A motor connected directly to a battery just runs at full speed. To vary the speed you use PWM (Pulse Width Modulation) — switching the motor on and off very fast so it averages out to a lower effective voltage. To reverse direction safely you need an H-bridge, a circuit that lets you flip the current flow without rewiring anything.

That combination — H-bridge for direction, PWM for speed — is what almost every motor driver board gives you in one tidy package.

Get started

The classic entry point is building a two-wheeled robot and writing code to drive it forwards, backwards, and through a turn. The MicroPython Robotics Projects with the Raspberry Pi Pico course walks you through exactly this: controlling motors from a Pico using MicroPython, reading sensors, and combining it all into an autonomous robot.

If you want to start with Arduino instead, the Learn how to program SMARS with Arduino course covers motor control using a motor shield — a board that stacks onto an Arduino and handles all the H-bridge circuitry for you. SMARS itself uses two N20 gear motors and is a brilliant first build.

A quick experiment to try right now: connect a small DC motor to a battery via a switch. Note the direction. Swap the wires. Watch it reverse. That simple moment is the foundation of every wheeled robot you will ever build — the fun is in understanding why it works, and then making it do exactly what you want.

Reacts well with

More Power & Motion

Learn more on KevsRobots

Articles to read

Share this element

This page is awesome? Show some love!

Did you find this content useful?


If you found this high quality content useful please consider supporting my work, so I can continue to create more content for you.

I give away all my content for free: Weekly video content on YouTube, 3d Printable designs, Programs and Code, Reviews and Project write-ups, but 98% of visitors don't give back, they simply read/watch, download and go. If everyone who reads or watches my content, who likes it, helps fund it just a little, my future would be more secure for years to come. A price of a cup of coffee is all I ask.

There are a couple of ways you can support my work financially:


If you can't afford to provide any financial support, you can also help me grow my influence by doing the following:


Thank you again for your support and helping me grow my hobby into a business I can sustain.
- Kevin McAleer

What are you looking for?
Watch Videos Get Ideas Learn Something Read a Review Read the Blog Search
... Z Z z