Solar Charger Shield v2.0b

The solar charger is a stackable shield to Arduino compatible platforms, enables adaptive battery power and act as energy harvester for in-field charging. You may use various batteries that has the voltage of 2.7V-4.2V to shift up for 5V output, or put on Li-ion battery and solar panel to form an autonomous sensor unit. The maximum current provided by the board can get up to 700mA. An usb connector is also useful to charge the battery.
Model: SLD80227P


Application Ideas

Information on use of Solar panels for charging

1) The solar charger shield produces charges under sunlight and light from filament bulbs. Its function is more effective in the former than in the latter. Solar panels require invisible radiations namely ultraviolet and infrared radiations for producing current.

2) In order to test the system under filament bulb, hold the solar panel at a distance, less than 20cm(< 0.5 feet). However, the charging may not be effective under filament bulbs.

3) Place the solar panel at an angle such that the maximum amount of sunlight is incident on it.

4) Protect the solar panel from excessive exposure to water/water vapors. This may oxidize the surface of the solar panel and reduce its performance.

5) The Solar panel usually comes with a protective transparent sheet of cover. Remove the transparent plastic sheet for better performance of the solar panel.

6) Protect the surface of the solar panel from scratches


1) The solar charger shield is designed to protect any potential short circuit. However care must be taken to avoid any such situations.

2) The solar shield should not be operated at voltages greater than 5V


A schematic of the solar charger shield can be found hereMedia:Solar_Charger_Shield_.pdf.


Item Minimum Typical Maximum
Operate voltage 2.7V 3.7V 5.0V

Maximum current: 500 mA

Pin definition and Rating

The following pins, headers and LED have relevance to the shield

Pin/Header name      Application/Significance
Red LED Charging status
Green LED Charging complete
VBAT Pin to measure the output of the charging circuit to the battery
A0-A6 Analog inputs
BAT and Solar header pins Used for inserting the battery and the solar panel headers

Board Dimensions

70.6 mm*57 mm 


1) Connect the Solar panel and the Li-Pol battery in their designated places as shown in the figure below:

Pins vew.JPG

 2) Place the solar under sunlight or filament bulbs as mentioned in the "Information for using solar panels" section

3) Ensure that the charging (Red) light glows as shown in the figure below:

4) Unplug the battery header and the charging light would change to "OK" status. This is because, no current is flowing into the battery from the charging circuit, that the green light starts glowing.

5) The solar charger shield effectively charges when the panel's output voltage is around 5V. Remove the battery header and measure the voltage across the battery terminals. It is highly likely that the battery may not charge under other light sources as the voltage across the battery terminals is around 2V.

6) It might take around 5 to 7 hours to complete one full charging cycle. When the battery is fully charged, the green light glows.

7) Once you have charged the battery, you may mount the shield on to the arduino. As you power up the solar charger shield, it should power up the arduino as shown in the figure below:

Testing the solar shield with a simple arduino program

Connect the VBAT and analog input pins as shown in the figure:
Img 3792.jpg

Programming Example

Connect the VBAT pin on your charger shield to pin A0 of the shield. You could measure the voltage of your shield using the following example:

 Solar charger shield voltage measurement example. Connect VBAT pin to analog pin A0.
 The pin measures 2.0 V when not under direct exposre to sunlight and 5V when exposed to sunlight. 
 This example code is in the public domain.
// These constants won't change.  They're used to give names
// to the pins used:
const int analogInPin = A0;  // Analog input pin that the VBAT pin is attached to
int BatteryValue = 0;        // value read from the VBAT pin
float outputValue = 0;        // variable for voltage calculation
void setup() {
  // initialize serial communications at 9600 bps:
void loop() {
  // read the analog in value:
  BatteryValue = analogRead(analogInPin);            
  // Calculate the battery voltage value
  outputValue = (float(BatteryValue)*5)/1023*2;
 // print the results to the serial monitor:
  Serial.print("Analog value = " );                       
  Serial.print("\t voltage = ");      
  Serial.println("V \n");  
  // wait 10 milliseconds before the next loop
  // for the analog-to-digital converter to settle
  // after the last reading:


The projects and application examples.

Bill of Materials (BOM) /parts list

All the components used to produce the product.


Please list your question here:


If you have questions or other better design ideas, you can go to our forum or wish to discuss.

Version Tracker

Revision Descriptions Release
Solar Charger Shield v0.9b Initial public release Jan 3, 2010
Solar Charger Shield v2.0b Revision to the better features Aug 2, 2011

Bug Tracker

Bug Tracker is the place you can publish any bugs you think you might have found during use. Please write down what you have to say, your answers will help us improve our products.

Additional Idea

The Additional Idea is the place to write your project ideas about this product, or other usages you've found. Or you can write them on Projects page.


How to buy

Give the product link on Bazaar.

See Also

Other related products and resources.


This documentation is licensed under the Creative Commons Attribution-ShareAlike License 3.0 Source code and libraries are licensed under GPL/LGPL, see source code files for details.

External Links

Links to external webpages which provide more application ideas, documents/datasheet or software libraries.

Copyright (c) 2008-2016 Seeed Development Limited ( /
This static html page was created from