Today, we will be trying something new by moving away from conventional ways of powering the Arduino, like using power/USB cable or batteries. We will experiment with a source of renewable energy that is becoming more and more popular: sunlight.
As we put things together, we will figure out what size of solar panel the Arduino will need, as well as how we can use one as a practical energy source for lengths at a time. Join us on our trip to use our Arduino in an environmentally friendly manner, like during times when we cannot keep our PCs running, or are away from electrical outlets!
Today’s Electronic Recipe
Expected time to complete: 60 minutes
Arduino’s Operating Voltage and Solar Panel’s Voltage
In the article “Use Arduino to Control a Motor Part 4 – Adding a Remote Control and Using Arduino pro Mini for Miniaturization“, We touched about the specific amount of energy required to power the Arduino. The Arduino Pro Mini that we are working with today operates at 3.3V, so it will require a steady supply of 3.3V from the solar panel. Our solar panel specs are as follows: Maximum power (Pmax): 300Mw / Open circuit voltage (OCV): 5.7V / Maximum power point voltage (Vmpp): 4.5V / Short circuit current (Isc): 74mA / Maximum power point current (Impp): 65mA. Pmax (300Mw) = Vmpp (4.5V) * Impp (65mA), so the solar panel’s voltage (4.5V at max) is a little higher than the Arduino’s 3.3V. Supplying it at this high rate may damage the Arduino, so we must regulate our output.
Picture 1. Arduino UNO (5V) and Arduino Pro Mini (3.3V)
The pictures below show voltage readings from the solar panel on a sunny day (A Vmpp of 4.5V was observed) and from indoor lighting (approx. 2.5V). While we will not run into any trouble if the weather is nice, these readings also mean that we will be unable to obtain the 3.3V needed to power the Arduino from pure indoor light alone when using a single solar panel. Wiring two solar panels in a series gave us a reading of between 8.8–9V, so we recommend using two solar panels in case of bad weather. Wiring your solar panels in parallel will give the same voltage, but a higher current reading (this is how batteries work).
Picture 2. Measuring solar panel voltage on a sunny day
Picture 3. Voltage readings from an indoor light
Picture 4. Two solar panels in a series
Lighting up an LED with the solar panel before wiring it to the Arduino
Before wiring the solar panel to the Arduino, we should do a test run using an LED first. We used a green LED with a forward voltage of 2.0V, meaning that it should light up as long as our solar panel can output at least 2.0V. Our indoor lighting test earlier gave a reading of around 2.5V, so connecting the two made the LED light up. Moving our setup closer to or further away from the source of light changed how bright the LED shone.
Picture 5. Solar panels wired to an LED
Figure 1. LED and solar panel circuit
Now that we are certain that the solar panel generates power, we can connect it to the Arduino.
Supplying the necessary power for the Arduino, and how to use a 3-pin voltage regulator
Because the amount of light the solar panel gets from the sun determines its voltage output, we will need to use a 3-pin voltage regulator in order to supply a steady 3.3V to the Arduino. While the name “3-pin voltage regulator” is a bit of a mouthful, it is just a simple part used to convert any voltage input into a preset fixed voltage output. It is perfect for jobs like this where we would be unable to provide a fixed voltage otherwise.
Picture 6. 3 Voltage regulator
Reading up on the 3-pin voltage regulator that we prepared (ROHM LDO regulator – BA33DD0T) reveals that is a low-dropout regulator, meaning that it will still function even if the input voltage only between 3–4.0V. It also supports input voltages of up to 25V, meaning that you could also use it for projects requiring up to 5 solar panels in a series (4.5V * 5 = 22.5V).
Using the 3-pin voltage regulator is simple. The three pins are for IN / GND / OUT, so all that you need to do is wire both the IN (solar panel + pin) and the OUT (Arduino Vcc) in order to get the power from the solar panel to go through the regulator and out to the Arduino at a fixed rate.
However, there is something you need to keep in mind when using a 3-pin voltage regulator. When using one, the voltage output will “oscillate.” In order to prevent this, we need to insert a condenser as well. Many 3-pin voltage regulators bought at parts stores will come with condensers. The circuit setup you will need can be seen in Figure 3. Two condensers will prevent oscillation, allowing you to receive a stable output from the OUT pin.
Figure 2. 3-pin voltage regulator
Figure 3. 3-pin voltage regulator and condensers
With this step done, we are ready to use the Arduino.
Connect the Arduino and fire it up!
Now that we understand how the 3-pin voltage regulator works, we can hook it up to the Arduino. See the circuit below. For our test run, we used sample Arduino programs like Blink. Notice how the setup will not work indoors unless close to a lamp. It makes you think about just how strong sunlight is…
Figure 4. Running the Arduino off of a solar panel
Picture 7. Successful operation of Arduino with a solar panel!
Today, we used a solar panel to power Arduino with the bare minimum amount of parts. Next time, we’ll look into solar energy a little further, and figure out how we can charge a battery so that we can use it as a supplementary source of energy to power the Arduino when the sun is temporarily covered by clouds. By having a battery charged at all times, we can even use it to power the Arduino at night!