Introduction: Solar Charging Tracker With Adaptable Input Current Range
SOLAR CHARGING TRACKER
This tutorial shows how to construct an improved of the Solar Charging Tracker by ladyada: https://learn.adafruit.com/portable-solar-chargin... a project present in the Adafruit official page.
This project showed how to assemble a monitoring circuit to read the current and voltage being outputted by a solar cell and supplied by a solar charger. However , the current range that could be read by the original version was limited (up to 1.04 Amps) and was not sensitive to low current values (1.017 mA sensitivity).
Here, we modified the circuit design and the code so thatthe project would support a wider range of higher and lower current values outputted by the PV panel. This was performed by adding a range selector circuitry able to read up to 2.13 Amps (without damaging the Arduino) and down to 21.3 microAmps steps.
Therefore, this allows the charging monitoring of a broad range of solar-powered devices going from low (e.g. lab-scale solar cells,…), mid (e.g. cellphones,…) to high (e.g. laptops) power portable electronics, using any type of common batteries for electrical storage (here we tested with 2500Ah and 1350Ah Lithim.Polymer batteries.
Step 1: Materials Used:
0.1 Ω Precision resistor
10 Ω Quarter-Watt
100 Ω Quarter-Watt
10k Ω Quarter-Watt
15k Ω Quarter-Watt
34.5k Ω Quarter-Watt
47k Ω Quarter-Watt
67.9k Ω Quarter-Watt
3 x 3.5mm terminal blocks
4 Positions rotary switch with at least 2 pathways in parallel
TS922 Op Amp
8 Leg IC holder
Arduino Uno: https://www.adafruit.com/product/50
Prototyping Shield: https://www.adafruit.com/product/2077
Standard 16x2 LCD: https://www.adafruit.com/product/181
Solar panel for testing: https://www.adafruit.com/product/200
Enclosure for Arduino: https://www.adafruit.com/product/271
Tin solder wire
Female jumper wires : https://www.adafruit.com/product/266
9V Battery Clip
3 x 3.5 mm Phono Jacks and Plugs
Battery and charger for testing:
Step 2: Analog Circuit
To measure the current the solar cell is outputting we first need to measure how much potential falls in a given resistor and take the current that passes through it using Ohm’s Law, in this case we are reffering to the 0.1-100Ω resistors (for different ranges of input current), this voltage is too small to be measured directly by the Arduino , so we have to use an inverting amplifier with the Op Amp and two resistors R1 and R2, the Gain will be given by R1/R2, in this case it will multiply the voltage by 23.5 so it can be measured. I used 4 different resistors for different ranges of maximum current that can be read as you can see in the table above.
To measure the voltage that the cell is outputting a simple voltage divider is used (to increase the maximum voltage that can be measured, in this case 10V),with two 10kΩ resistors(R3 and R4).
To measure the voltage at the terminals of Lithium-Polymer battery, while being charged by the cell another simple voltage divider is used (between R5 and R6).
This part is simply to select the between the 10-70KΩ resistors, it can be done using the rotary switch that corresponds another resistor(0.1-100Ω) used in Analog 1. Each of the four resistors can then be identified by using this analog pin by measuring a simple voltage divider across it and a 10kΩ resistor (R7).
Step 3: Connecting the LCD
Solder the header and clip pins 1,2,3,5,7,8,9
Connect pins 15 and 2 together aswell as pins 1, 5 and 16 with wire and solder them.
Connect the 10k potentiometer to pins 2 and 5 and the middle contact of the potentiometer to pin 3.
Step 4: Analog Circuit
After soldering the header pins to the
prototyping shield, start by soldering the 3 terminal blocks to the top-most edge of the shield, after that mount the circuit as shown in the scheme provided.
Now the tricky part, the variable resistors controlled by the switch must be soldered in different pathways, one way to test which terminals are connected is to use the “Beep” function on your multimeter. Solder one end of the switch to the prototyping shield in its positions, and the variable resistors to the other ends. As you can see, it is not very pretty, I am sure it can be made in a much more elegant way.
Solder the female jumper wire cables to digital slots 2-7, ground and 5V in the shield.
Make sure you connect the resistances in the right positions and position the switch so that it pops out of the Arduino enclosure through the slot that can be opened.
Step 5: Programming the Arduino
In this step you will need to connect your Arduino Uno to your computer via USB and have the Arduino IDE compiler installed.
After instaling the compiler open the .ino file in this step and upload it to the Arduino
Step 6: Testing LCD
Now connect the female jumper wires in the following order:
Ground to pin 16
5V to pin 15
Digital 7 to pin 14
Digital 6 to pin 13
Digital 5 to pin 12
Digital 4 to pin 11
Digital 3 (RS) to pin 5
Digital 2 (EN) to pin 4
With nothing connected all values must be equal to 0.00 . An oscillating value means you are appliying a negative potencial to the analog pins , that could damage the Arduino! So beware and make sure you connected everything where you should.
Step 7: Enclosure Montage
Make sure you make room for everything in the enclosure and try to fit all components nicely.
Now you just need to drill 3 holes in the top of the enclosure for the phono plugs and solder the jacks to the solar panel, for more detailed steps consult the original tutorial:
Step 8: Done
You are now ready to use your solar charging tracker to:
Measure the OC Voltage (Up to 10V) of a solar panel (have only the panel connected to it).
Measure the SC Current (Up to 2.13 Amps) of the panel(Just short the Charger phono plug) .
Track how thea charger charges a battery (connecting the battery and charger to its corresponding phono jacks )
This project was made in FCT UNL (Faculdade de Ciências e Tecnologia da Universidade Nova de Lisboa)
by Guilherme Ribeiro , under the orientation of Dr Manuel J. Mendes, special thanks to him for all the guidance and help throughout the project development.