A Solar Powered Arduino Uno

Our project is to determine the appropriate solar panel to run an Arduino Uno during the day, and charge a battery enough to run it overnight. To do that we need to know how much power is needed, and how much power is available. We have a solar panel we like for this, but need to know how many, and what size and number of batteries are required. The goal is not to have a solar powered Uno, but to have an understanding of the process.

Uno Voltage and Current Requirements

Current requirement for the Arduino Uno is around 54mA when it is running an app from the DC power source. More or less, of course, depending on the types of internal peripherals being used, and the I/O pin load. The input voltage must be 7V or greater.

To get the correct input voltage we need two Lithium Ion batteries in series. Each is rated at a nominal 3.7V at a good charge to 4.2V at a full charge. Two in series would be 7.4V to 8.4V. In size 14500, or AA, they are rated from 1200 to 2300 mAH each. We'll assume 2000mAH.

To charge them we need sunlight. 50% of the Earth's population lives above 27° north latitude. We'll design for the shortest day at that latitude, which is around 10.25 hours from sunrise to sunset on December 31st [1].

If every day was a sunny day... [2] In the sunny southwest, they have 200+ sunny days, while in the Pacific northwest the number is more like 70. Also interesting from that source page is the "% Sun", which describes the effective daylight hours (the percent of sunlight actually reaching our panel). Let's assume we're building this for a location in Louisville. Only 56% of our 10.25 hours are useful, which cuts our sun time to 10.25 x 0.56 = 5.74 hours per day.

Some Arithmetic

Since we will need 54mA x 24 hours = 1296mAH per day, and we only generate electricity for 5.74 hours per day, we will need to generate 1296mAH รท 5.74hr = 225mA for the duration of our usable daylight hours. 171mA goes to the batteries and 54mA to the Arduino.

The remainder of the day we run on batteries. That's 24 - 5.74 = 18.26 hours. If we design for this, we will proably fail at some point. Some days get very little sunlight. We need 1296mAH to make it through the average day. If there are 3 cloudy days in a row, and we need 1296mAH for each of those days, we need 3888mAH in storage. Again, this is based on our location. We already know we need two batteries in series, but that only gets us 2000mAH and so we need to parallel two of these series pairs. That gets us 4000mAH - just enough.

The Solar Panel

We decided the solar panel needs to generate 225mA during the day, but our solar panel of choice, the AllPowers 100*69, only generates 70mA at 7.4V, so we need four in parallel. The chart below shows the volts x amps of the solar panel on a bright sunny day.

AllPowers 100 x 69 Solar Panel Power Curve
The solar power circuit
100mm x 69mm solar panels
The AllPowers solar panels

These four panels will produce enough power for the project. To have the project do something, and also to prove that it is working, the circuit will monitor its own panel and battery voltage throughout the day and night, storing the results to a microSD card.

The panels are wired as shown above, in parallel through diodes. The diodes can be anything, and although Schottky diodes have a lower voltage drop than rectifier diodes at very low currents, this application requires more current, so we used 1N4005 diodes.

How about a 3.3V Arduino Pro Mini?

We used this method to determine power requirements on the weather station logger project and using the 3.3V Arduino Pro Mini we were able to run with a single 240mAH Lithium Ion battery and a single solar panel about half the size of the 100*69 panel!

The Arduino Uno has an always-on LED, two regulators, and two MCUs on the board. The Mini has one regulator, one MCU, and no LEDs that are constantly on.

Arduino Board Logo


Arduino-Board is the go-to source for information on many available Arduino and Arduino-like boards, tutorials and projects.

Help and Support


Stay updated

Sign up if you would like to receive our once monthly newsletter.