I have made a DIY offgrid solar generator that utilizes an arduino to determine when to dump excess energy to a water heating load.
I have programmed the arduino to activate the load circuit when the cells reach 3.5 V.

My concern is that due to voltage sag of the battery, the instant that the load is applied the arduino will then sense a lower voltage and disconnect the load.

This will cause the load to be turned on and off rapidly as the voltage sags below 3.5 V and then bounces back up to 3.5 V, putting the LiFePo4 cells through rapid cycles of charging then discharging. I am going to test this to determine at which frequency the cycling takes place, although I am sure this will be dependent on the power being provided by the solar array.

  • Will this rapid switching between charging the batteries and discharging the batteries cause any sort of degradation?
  • Is it possible that this could cause waste heat generation and side chain reactions that accelerate the aging of the battery?

I am considering adding a bank of capacitors and using a PWM output to smooth out the alternating current. I am still uncertain if any of that is necessary as I do no know the extent to which this is a concern for my battery. I did check the setup and determined that the load is switching at around 0.4 Hz.

  • 1
    \$\begingroup\$ so, since you've noticed this might be problematic, why are you even asking? It sounds like a very simple modification to the arduino firmware to add a bit of hysteresis. \$\endgroup\$ – Marcus Müller Dec 1 '19 at 20:27
  • 1
    \$\begingroup\$ Also, logically, the voltage across the batteries can only increase when they're being charged (temperature variations aside). Why even start dumping energy before the cell is fully charged? That sounds like a bad idea. Lithium Battery charging state is not completely determined by voltage alone! \$\endgroup\$ – Marcus Müller Dec 1 '19 at 20:29
  • \$\begingroup\$ I'm asking because I would like to know if this is a real concern before I work to try to solve it. Adding hysteresis does not really solve the problem, only changes the frequency of the charging discharging cycling. It may be that that is in fact only worsening the issue. \$\endgroup\$ – Matt Revesz Dec 4 '19 at 3:03
  • \$\begingroup\$ It is not true that the voltage can only increase when being charged. On a short time scale if you remove the load from a battery, you will see a sudden increase in voltage. \$\endgroup\$ – Matt Revesz Dec 4 '19 at 3:03
  • \$\begingroup\$ I never said I would be dumping energy before the cells are charged. The whole idea is to detect full charge, and then activate the dump load. Yes, state of charge is not entirely determined by voltage, however to keep track of amperage into and out of the battery would have required a current shunt and added a great deal of complexity to this project. If you view the voltage vs SOC for a LiFePo4 battery you will see a rapid rise in voltage as the battery climbs above 90% SOC, I can use this "knee" in the curve as a fairly reliable indicator that the battery is at a high level of charge. \$\endgroup\$ – Matt Revesz Dec 4 '19 at 3:04

You don't need to dump excess energy, you can either short circuit or open circuit the output of the solar cells.
In your typical application this should be open circuit, so no current will flow in your circuit. The arduino will sense the high voltage. You can also try to add a hysteris function to start charging at certain point below open circuit state.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.