I'm using a solar panel (6V - 600mA at peak power) to charge a Li-Ion (3.7V) battery using a TP4065. The TP4065 I'm using has this configuration:
Where the value of the resistor Rprog determines the charging current.
The issue is that the current the solar panel provides is proportional to the light it received and the only way to keep extracting the maximum power from the solar panel is to adjust the load to keep to solar panel voltage around 6V which in my case is controlled by reducing the charging current.
What would be the best circuit to automatically adjust the Rprog resistor to keep the TP4056 Vcc at a constant voltage of around 6V?
Here is an example of a solar panel IV curve showing the voltage where the maximum power is extracted.
Here is the charging characteristic of the TP4065
The voltage a the PROG pin vary between 1V to 0.2V
My project will use an Arduino micro controller. I could use the Arduino to monitor the solar panel voltage and regulate the TP4056 current with the following circuit:
Rprog and Rarduino would be 600 ohms and the 100uF capacitor and Rarduino will act as a low pass filter for the Arduino analog out that output a 3.3V 500Hz PWM signal.
When digital out is 0V, the TP4056 will see a 1.2K resistor and behave normally. As we increase the analog out voltage, the voltage at Rprog will decrease which will decrease the current in the TP4056 PROG pin and finally reduce the battery charging current.
Does this solution can work?