Level 4 · Motion · project 6 of 8 · 25 min · ●●●○○
Twin Wheels
Two motors from one button — a Level 9 robot drivetrain, five levels early.
new here? Start with First Light — one battery, one resistor, one LED. It teaches the loop, LED direction, and why the 220 Ω resistor matters.
What you need
- 1× 3×AA battery pack (4.5 V) L1
- 1× Solderless breadboard L1
- 8× Jumper wires L1
- 1× Push button (tactile) press-and-hold to drive the pair — hands-on control L1
- 1× 1 kΩ resistor base resistor — protects the transistor L1
- 1× NPN transistor (2N2222) flat face toward you: legs are E-B-C L3
- 2× DC motor (3 V) two of the same hobby motor. Tape a paper wheel or a bit of foam disk to each shaft
- 2× Diode (1N4001) each motor gets its own flyback diode across it, cathode toward battery +
you'll learn: Circuits are loops · Switches · Series & parallel · Transistor switching · Ohm's law
Circuit map
The circuit you'll build, running on the Workbench right now — shown with the switch closed.
simulating…
If it doesn't work
The boring ways this circuit actually breaks — check these first before you unwire everything.
- Only one motor spins. The quiet motor's leads have popped out of their holes (they're friction-fit — wiggle to seat) or its lane doesn't reach the collector row. Trace the loop from + through the motor to the collector.
- Both motors spin weakly. AA cells sagging under the 290 mA total. Fresh alkalines or NiMH; skip zinc-carbon.
- Neither motor spins even when you press. 2N2222 pin order: flat face toward you, E-B-C left-to-right. Then confirm the base 1 kΩ is between the button and pin B (not in the collector lane).
- One diode gets hot within seconds. That one is wired backwards — banded end must face battery +. Disconnect and flip it.
- A soft click when you release the button. One motor's flyback diode is missing or reversed. Every motor gets its own diode across it, banded end toward +.
- Motors spin fine, but a whining sound when running. Normal — the ~6 kHz brush-commutator switching is audible on cheap hobby motors. Not a fault.
- Motors spin the wrong direction. Motors don't care about polarity — swap their two leads to flip spin direction. Do it identically on both if you want them to spin the same way.
What you're building
Two little motors, side by side, both spinning when you hold the button. Stick a paper wheel (or a bit of foam disk) on each shaft and you've built the drivetrain of a wheeled robot — five levels early.
The whole point of this project is that "one transistor drives one motor" scales cleanly to "one transistor drives two motors". Same brain, doubled mouth. And at Level 9, when you build an actual line-following robot, this is exactly the wiring pattern you'll use — one channel per wheel, one flyback diode per motor, one control line per pair.
The pattern: motors in parallel
Two motors sitting side by side — both hanging off the same collector node, each with its own flyback diode — is the electrical opposite of a series chain. Each motor sees its own independent 4.5 V (minus V_CE(sat)) across its own 30 Ω coil, and each pulls its own current. The transistor's collector adds them up.
Compare against putting the motors in series (nose to tail — motor A's minus lead into motor B's plus lead):
- Series (bad idea for equal motors): each motor sees only half the voltage — about 2.15 V after V_CE(sat). Below the motor's 2 V floor for reliable turning, so they'll stall and buzz. Torque collapses.
- Parallel (this project): each motor sees the full 4.3 V. Each spins at full speed. Combined current: ~286 mA from the AA pack.
Every real robot puts its motors in parallel for exactly this reason. And every real robot gives each motor its own flyback diode, because each coil generates its own independent kick when it stops.
Do the math
Button pressed:
- Base current: (4.5 − 0.7) ÷ 1 kΩ = 3.8 mA.
- Max collector current at that base drive: β × I_base = 200 × 3.8 = 760 mA. We'll need less than half of that.
- Each motor lane: (4.5 − V_CE(sat)) ÷ 30 Ω = (4.5 − 0.2) ÷ 30 = 143 mA per motor.
- Total collector current: 2 × 143 = 286 mA.
- Battery total: ~286 mA motor + ~3.8 mA base = ~290 mA.
Every ceiling to check:
- 2N2222 collector rating: 600 mA. We're at 286 mA. ✓
- Base saturation drive: 760 mA capable. We ask for 286 mA collector — plenty of headroom, deeply saturated. ✓
- Transistor dissipation: V_CE(sat) × I_C = 0.2 × 0.286 = 57 mW. Warm to the touch after a minute; nowhere near hot.
- AA pack: three fresh alkalines deliver ~500 mA before sagging noticeably. We ask for 290 mA — a hearty draw but well within their comfort zone. Old cells will droop; use fresh.
Button released:
- I_base = 0. Transistor snaps off.
- Both coils' collapsing fields try to push current simultaneously. Each motor's own flyback diode catches its own coil's kick. Coil A recirculates through diode A; coil B recirculates through diode B. Neither one crosses over into the other lane, because each lane is a self-contained loop.
- The transistor's collector rises to ~4.5 V (no path to ground) and stays there, safe.
Why each motor needs its own diode
You might think: two motors in parallel share the collector; can they share one diode too?
Not quite. Here's the subtle bit: the flyback diode's job is to give the coil's own current a place to keep flowing when the switch opens. That current is stored in that specific coil's magnetic field. When the field collapses, the current has to recirculate through that coil — meaning the loop has to include that motor.
With one shared diode across both motors, the diode is still there and forward-biases correctly — but now the two coils are mutually coupled through the shared diode: coil A's collapsing current tries to push through coil B (and vice versa), and the transient is messier. It also works, sort of, in this simple case — but real robot builders always give each motor its own diode. It's cheaper (a 1N4001 costs cents), cleaner, and it's one less thing to think about.
Rule of thumb: every coil (motor, relay, solenoid) gets its own flyback diode across it.
Build it
Power rails: battery + to a top row, battery − to a bottom row.
Trigger lane: battery + → push button → 1 kΩ → transistor Base.
The transistor: flat face toward you, legs are Emitter (left), Base (middle), Collector (right). E → − rail, B ← the 1 kΩ, C into a fresh row A (the "collector node").
Motor A lane: motor A between the + rail and row A. Diode A across motor A: cathode (banded end) in the + rail row, anode in row A.
Motor B lane: motor B between the + rail (on a different column, but same + rail electrically) and row A. Diode B across motor B: same rule — cathode in the + rail row, anode in row A.
Both motors, both diodes, share the + rail on the top and the collector row on the bottom. Between those two rails, you have two independent parallel lanes.
Press the button. Both motors spin together. Release: both stop together, quietly.
Turning this into an actual wheeled thing
Once both motors spin, tape a small paper disc (or a foam cylinder from a hobby store) to each shaft. Balance the disks so they don't wobble. Then either:
- Stand-alone spinning display: point the shafts up, watch the disks spin. A crude but genuine top.
- Rolling toy: tape or glue the two motors to opposite ends of a cardboard-tube chassis, with the disks acting as wheels and the tube's mouth acting as the axle. Add a paper "tail" at the back so the whole thing doesn't tip over. Press the button — it rolls forward.
This isn't yet a steerable robot — the two motors are wired together, so they always spin at the same speed and same direction. Turning requires driving each motor independently, which is Level 9 territory (with the L293D motor driver chip and two Arduino output pins). But the drivetrain — the "wheels turn when a signal fires them" half — is done, right here at Level 4.
What this opens up
Every wheeled vehicle at Level 9 uses this pattern, twice:
- Right wheel: transistor + motor + flyback diode, controlled by Arduino pin R.
- Left wheel: transistor + motor + flyback diode, controlled by Arduino pin L.
Two of this circuit, side by side, with two independent triggers. That's it. That's the whole physical layer of a robot. Everything else (line sensors, ultrasound, obstacle avoidance) is just deciding when to press R and when to press L.
You already own the physical layer.
🧠 Your challenge
No single right answer. That's the point.
- Series it. Wire the two motors in series instead of parallel — motor A's minus lead into motor B's plus lead, both between the + rail and the collector, no diodes for a moment. What happens? (Each motor sees ~2.15 V, well below the reliable turning voltage. They buzz and stall. Torque collapses. Parallel wins.)
- One shared diode. Try one 1N4001 across BOTH motors (both motors in parallel, one diode covering the whole pair). Does the fan-pair still spin normally when the button is pressed? (Yes.) And does anything sound different when you release? (Not to your ear on a clean single-press — the shared diode does provide a safe path. But it couples the two coils through itself, and in a longer chain of motors the differences become measurable. Every real robot uses one diode per motor. Cost is pennies.)
- Runaway. Add a third motor + diode in parallel. Predict the total current. Does the transistor still saturate? (3 × 143 = 429 mA. Under the 600 mA ceiling; base drive supports 760 mA. Yes, still saturated. But AAs at 429 mA are stressed — fresh cells only, and expect them to run down faster.)
- Independent triggers. Split into two transistors: one 2N2222 driving motor A, another 2N2222 driving motor B, each with its own 1 kΩ base resistor and its own push button. You've now drawn the schematic for the L9 robot drivetrain (minus the Arduino). Which button drives which wheel? Which combination makes it turn left vs. right?
- Measure the sag. With a multimeter, measure the battery pack's voltage when the button is up (should be ~4.5 V fresh) and when the button is held (with both motors spinning). Fresh alkalines will sag ~0.1 V. Half-dead cells will sag ~0.5 V or more. That sag is why old AAs make sluggish motors — they can't hold voltage under a heavy load.
For grown-ups: safety notes
- Battery-safe throughout. 4.5 V and ~290 mA total won't shock you. The transistor dissipates ~57 mW; warm after a minute, never hot to the touch.
- Each motor needs its own flyback diode, cathode toward battery +. If you leave one out, the transistor sees that coil's kick unprotected — a spike above the 2N2222's ~40 V max V_CEO opens the collector like a fuse. The diodes cost cents; install both.
- Diode polarity matters most. Cathode (banded end) toward battery +. A reversed diode shorts the battery through itself when the transistor turns on. It heats up fast; disconnect and flip.
- Transistor pin order. Flat face toward you, legs left-to-right are Emitter, Base, Collector. Backwards = a hot transistor and stalled motors.
- Fingers, hair, and paper wheels. Each motor spins around 6,000 RPM. Tie hair back, keep loose sleeves clear, and don't put two spinning shafts near each other (a whirl in a cardboard chassis can whip loose paper into a spin).
- AA pack drain: ~290 mA. Fresh alkalines are fine. Old cells sag under this and the motors stall. If you're going to run this in longer sessions, consider NiMH rechargeables — they hold voltage under load better than alkalines and cost less per hour.
- Motor case can warm up under sustained load, especially when the shaft is loaded (paper wheel touching the desk). Nothing near boiling — just warm — but don't hold a stalled motor by its case for minutes.
- Never wire to mains. Every part is 4.5 V-safe.
Checked against
Keep building
You might also like
shares ideas with this one