The motor gets its own battery, but the grounds must be joined: a signal is a voltage compared with ground, so the driver can't read the Uno's pins without a shared 0 V. Powering the motor from the Uno's own 5V pulls it down when the motor starts, and the Uno resets.
The motor has its own battery, the Uno has USB, every wire is checked, and the motor does nothing. Or the motor runs, and the Arduino keeps restarting. What's missing?
A voltage is always between two points. "Pin 9 is at 5 V" means 5 V above the Uno's GND. A driver on another supply measures against its ground, so unless the two grounds are joined, it can't read the Uno's signal at all.
Predict: Read the problem and decide what you think before you try anything. A wrong guess is fine: it shows you what to look for.
Try: Try it on the board and compare the result with your prediction.
Investigate: Work out why it happens, one step at a time.
Modify: Change the problem on purpose and see what happens.
Practise: A few on your own, to check you have it.
Make: Make your own problem using what you have learned. Expect a few tries; that is normal.
WidthMore contexts, same idea.
Make your prediction first. Help opens once you've locked it in.
PredictRead the problem and decide what you think before you try anything. A wrong guess is fine: it shows you what to look for.
Separate supplies
TryTry it on the board and compare the result with your prediction.
Try: join the grounds
Try it yourselfYour edits are saved in this browser.
Start the motor. What happens?
Use the board. This ticks when you get there.
Join the grounds.
Use the board. This ticks when you get there.
InvestigateWork out why it happens, one step at a time.
Worked example: what each supply does
Worked exampleBefore each step, say what you think comes next.
Uno (USB)Runs the code and makes the signals: pins at 0 V or 5 V above the Uno's GND.
battery→driver→motorThe big current. Never through the Uno.
GND↔battery −One shared 0 V, so the driver reads 5 V on pin 9 as HIGH.
5V↔battery +The + sides stay separate.
Now pick the wires that join the two halves.
Sam's motor never responds. Click the line where Sam's reasoning first goes wrong.
ModifyChange the problem on purpose and see what happens.
Vary: power from the Uno
Try it yourselfYour edits are saved in this browser.
This motor runs from the Uno's 5V. Start it.
Use the board. This ticks when you get there.
Give the motor its own battery (grounds joined) and start it again.
Use the board. This ticks when you get there.
Modify TypicalChange the problem on purpose and see what happens.
Build it in Tinkercad
PractiseA few on your own, to check you have it.
Grounds
MakeMake your own problem using what you have learned. Expect a few tries; that is normal.
Fix the robot
Try it yourselfYour edits are saved in this browser.
Need a hint?
Two faults: where the motor's power comes from, and the ground.
Another hint
Battery power for the motor, and join the grounds.
Another hint
Then start it.
This robot resets and its driver can't read the Uno. Fix both, then start the motor.
Use the board. This ticks when you get there.
For teachers
Students start a motor whose driver has its own battery but no shared ground (nothing happens), join the grounds, separate signal, power and ground in a worked example, run the motor from the Uno's 5V and watch it reset, and fix a robot with both faults. About 35 minutes.
I can explain why separate supplies need a shared ground.
I can explain why a motor shouldn't run from the board's own 5V.
Before class
Model: without a common ground the driver doesn't respond (in reality the behaviour is unpredictable); a motor on the Uno's 5V resets the Uno when it starts (a brown-out). Some driver boards join the grounds for you on the board; still teach the wire.
Running the lesson
Predict: ask '5 V compared with what?'
Vary: the reset is the classic symptom students will meet on their own robots.
The hard part (on purpose)
'Separate supplies' sounds like 'separate circuits'. Draw the two halves and the one ground wire between them.
When students get stuck
The motor never responds. Ask: Is the Uno's GND joined to the battery's −? Fix: Join the grounds.
Stretch and support
Stretch: Some drivers take a separate logic supply (VCC1) and motor supply (VCC2). Which goes to which, on an L293D?
Support: A picture with signal wires in one colour, power in another, ground in black.
separate supplies: Committing to what happens with unjoined grounds tests the new move before the board shows it.
Try: join the grounds: Starting the motor before and after joining the grounds settles the prediction.
Worked example: what each supply does: Separating the two jobs (signal and power) and the one shared thing (ground) models the move. Sam's 'separate means unconnected' is planted after the method.
Vary: power from the Uno: Running the motor from the Uno's own 5V shows the other half of the rule: big currents pull the board's supply down and reset it.
Build it in Tinkercad: In Tinkercad, removing the ground wire between the Uno and the driver's battery shows the same failure in a fuller simulator.
grounds: Applying the rule to new systems.
fix the robot: Fixing both supply faults from one broken starting point brings the lesson together.
Now you can
Explain why separate supplies need a shared ground.
Explain why a motor shouldn't run from the board's own 5V.