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

  1. Power the motor from a separate supply.
  2. Connect motor ground to Arduino ground.
  3. Use a motor driver or transistor, not a direct Arduino pin.
  4. 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?