Powering Your Project
| Difficulty | Beginner |
|---|---|
| Category | Foundations |
| Supported boards | Arduino Uno R3 and compatible ATmega328P boards |
| Time needed | 30 minutes |
| Prerequisites | Voltage, Current and Resistance |
| Tested board | Not yet verified |
| Tested on | Not yet verified |
| Arduino IDE version | Not yet verified |
| Library | Not 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 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.3Vpin 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.
- Give the motor its own supply, matched to its voltage.
- Join the grounds. The motor supply’s ground and the Arduino’s
GNDmust be connected, or the control signal has no shared reference and nothing works reliably. - 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
- You have a regulated 5 V supply. Which pin can it go to, and which must it not?
- A 6 V battery pack into the barrel jack. What happens?
- A servo on the
5Vpin makes the board reset. Why? - 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.3Vpin 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.

