Powering Your Project

Draft. This tutorial has not been checked against the physical product yet. Confirm wiring, pin assignments and voltage limits against the product documentation before building it.
DifficultyBeginner
CategoryFoundations
Supported boardsArduino Uno R3 and compatible ATmega328P boards
Time needed30 minutes
PrerequisitesVoltage, Current and Resistance
Tested boardNot yet verified
Tested onNot yet verified
Arduino IDE versionNot yet verified
LibraryNot yet verified

What this covers

Everything works on the bench with a USB cable. Then you add a servo, or unplug the laptop, and it stops. This covers the ways to power an Uno, how much current you actually have, and the three mistakes that destroy boards.

Before you begin

Nothing to wire. This is the page to read before you build something that has to run on its own.

The four ways in

Route Accepts Current available Use it for
USB socket 5 V from the port Commonly limited to about 500 mA Development, small circuits
Barrel jack 7 to 12 V DC, centre positive Depends on the supply, limited by heat Standalone projects
VIN pin Same as the barrel jack Same A supply wired in rather than plugged in
5V pin A regulated 5 V supply, in Whatever the supply gives Bypassing the onboard regulator deliberately

The first three all end up at the same regulator. The fourth skips it, which is useful and dangerous in equal measure.

The USB socket, barrel jack and VIN pin all reaching the regulator, the 5V pin bypassing it, and a current budget bar
Three routes go through the regulator. The 5V pin goes straight to the chip.

The barrel jack range, and why

7 to 12 V DC, centre positive. Both ends of that range matter.

Below about 7 V the onboard regulator cannot maintain a steady 5 V, and the board browns out: resets, odd behaviour, sensors reading nonsense. A 6 V battery pack looks reasonable and is not.

Above 12 V the regulator still works, but it gets rid of the surplus as heat. At 12 V it is already warm; at 15 V it gets hot enough to shut down intermittently, which produces a fault that comes and goes with temperature and is thoroughly unpleasant to diagnose.

9 V is the comfortable middle, which is why so many supplies are 9 V.

The three mistakes that destroy boards

Feeding voltage into the 5V pin from an unregulated supply. That pin goes straight to the chip with nothing in between. 7 V there destroys the board instantly. Only ever connect a regulated 5 V to it, and only when you mean to bypass the onboard regulator.

Getting the barrel jack polarity wrong. Arduino expects centre positive. Many cheap supplies are centre negative and say so only in small print on the label. Check before plugging in.

Powering a motor or servo from the 5V pin. This is the common one, because it usually half-works. A servo’s stall current can be several hundred milliamps, far more than the regulator can supply, and the voltage dips. The board resets mid-movement, which looks like a software fault. Motors need their own supply, with the grounds joined.

How much current you actually have

The limit is rarely the Arduino itself.

  • An Uno doing nothing draws roughly 50 mA.
  • A USB port commonly supplies about 500 mA, so you have around 450 mA for everything else.
  • The onboard regulator can give more in principle, but is limited by how much heat it can shed. At 12 V in, it has little headroom before it gets too hot.
  • The 3.3V pin supplies about 50 mA in total, which is far less than people expect. An ESP32 module cannot run from it.

Add up what your project draws before building it. Three LEDs at 15 mA, a sensor at 10 mA and a display at 20 mA is about 75 mA, which is comfortable. Add one servo and you have left the budget behind entirely.

Powering motors and servos properly

The pattern is always the same.

  1. Give the motor its own supply, matched to its voltage.
  2. Join the grounds. The motor supply’s ground and the Arduino’s GND must be connected, or the control signal has no shared reference and nothing works reliably.
  3. Never run motor current through the Arduino. The board sends a control signal to a driver module or transistor, and the driver passes the real current from the separate supply.

Forgetting step two is the single most common cause of “the motor twitches randomly”.

Batteries

  • A 9 V block into the barrel jack is the classic choice and the worst one. Its capacity is tiny, a few hundred milliamp-hours, and much of its energy is burnt as heat by the regulator. It will run an Uno for a couple of hours at best.
  • Four or six AA cells give 6 V or 9 V with far more capacity. Six is the better choice, because 6 V is below what the regulator needs.
  • A USB power bank into the USB socket is often the most practical answer: regulated 5 V, large capacity, rechargeable. Note that some banks switch themselves off when the current drawn is very low, which an idle Arduino manages to trigger.
  • Lithium cells need a protection circuit and a proper charger. They are not a beginner’s first battery, and a damaged one is genuinely dangerous.

What to do when things reset

An unexplained reset is almost always power. In order of likelihood: something drawing more current than the supply can give, usually a motor; a supply voltage too low; a loose connection; or a short.

Add a check to your sketch. Printing a line from setup() makes a reset obvious, because the message reappears every time the board restarts.

void setup() {
  Serial.begin(9600);
  Serial.println("Siratek: board started");
}

If that line appears while the project is running, it is restarting. Look at the power, not the code.

Check yourself

  1. You have a regulated 5 V supply. Which pin can it go to, and which must it not?
  2. A 6 V battery pack into the barrel jack. What happens?
  3. A servo on the 5V pin makes the board reset. Why?
  4. You join a motor driver’s supply but not its ground. What goes wrong?

Answers in order: the 5V pin, deliberately bypassing the regulator; never VIN or the barrel jack, which expect 7 V or more. The board browns out, because the regulator cannot hold 5 V from 6 V in. The servo draws more than the regulator can supply, the voltage dips and the chip resets. The control signal has no shared reference, so the driver sees nonsense and the motor behaves unpredictably.

Troubleshooting

Symptom Likely cause Check or fix
Resets when a motor moves Current beyond the supply Separate supply for the motor, grounds joined
Works on USB, not on battery Battery voltage too low 7 V minimum at the barrel jack
Regulator too hot to touch Input voltage too high Use 9 V rather than 12 V or more
Board dead after connecting power Unregulated supply into 5V, or reversed polarity Check before powering; the board may be lost
ESP32 module unstable on 3.3V That pin gives about 50 mA Power it separately
Random resets, no motor Loose supply connection Check the jack and the wiring
Dim LEDs and odd readings Supply sagging Measure 5V against GND under load
Power bank switches off Current draw too low to hold it awake Use one without that behaviour

Next steps

  • Easier first: Voltage, Current and Resistance.
  • Related product: a digital multimeter, for measuring the supply under load.
  • Later: the relay and motor driver tutorials, which are this page applied to real loads.

Sources and attribution

All text in this tutorial is original Siratek work.

  • Arduino Uno R3 documentation for the input voltage range, the regulator and the 3.3V pin limit.

Current figures for USB ports, batteries and the onboard regulator are given as typical values and vary with the supply and with temperature. No third-party tutorial text, diagrams, photographs or code has been reproduced here.

Shop
Sidebar
0 Wishlist
0 Cart