Arduino on a 9 V battery dies in hours: why and what to use

A 9 V block battery has small capacity and high internal resistance. It suits tiny low-power projects, not motors or servos.

What the message means

The Arduino regulator turns the extra voltage into heat, and every milliampere you draw comes straight from a small cell. Motors make the voltage sag.

Fix it in this order

  1. Estimate the current of your robot and divide the battery capacity by it. Use the battery runtime calculator.
  2. Use a pack of lithium or NiMH cells with a regulator for larger loads.
  3. Run motors and servos from their own pack, and the controller from a regulator.
  4. Use a buck converter instead of a linear regulator when the supply voltage is much higher than needed.
  5. Turn off unused parts and use sleep modes when idle.

If you see this, do this

You seeDo this
Battery hot or voltage collapsesLoad too large for the cell.
Works for minutes onlyCapacity too small.

battery runtime calculator, robot battery guide, LM2596 setup.

Last reviewed: November 2026. These are the usual causes and the order that finds them fastest. Test on your own board; clones and cables differ.