Why Does My Arduino Reset When the Motor Turns On?
Short answer: the motor is pulling too much current or injecting noise into the power line. The Arduino sees a voltage drop and resets.
Common causes
- Voltage drop: Motor startup current drags the 5V line down.
- Noisy power: Motors create electrical noise that can crash the board.
- Shared supply: Motor and Arduino run from the same weak source.
Fast fixes that work
- Power the motor from a separate supply.
- Connect motor ground to Arduino ground.
- Use a motor driver or transistor, not a direct Arduino pin.
- Add a flyback diode across the motor leads.
Quick check
If your Arduino resets only when the motor starts, it is almost always a power issue.
Why a separate supply helps
The Arduino needs a steady 5V. Motors are spiky loads. A separate supply keeps the motor spikes off the Arduino power rail while a shared ground keeps the signal stable.
What not to do
- Do not power a motor from the Arduino 5V pin.
- Do not skip the flyback diode on DC motors.
- Do not run motors from the same USB port that powers the Arduino.
Bottom line
Resets happen because the motor is stressing the power supply. Use a separate motor supply, share ground, and add a flyback diode.
Related: Can I power a motor or servo from the Arduino 5V pin? · Why can't I upload code? · Why won't my board show up in COM ports?