Arduino controlled battery cycler?

Hi I'm looking to build a battery cycler that will charge and discharge single cells such as NiCd and eventually LiFePO4. The requirements are accurate constant voltage and constant current sources (depending on chemistry) in the range 0-4.3 V and say -5 to +5 A programmable. The need is to first charge the cell with e.g. 2 A constant current for 4 hours while setting a maximum V (depending on chemistry) then a rest period followed by constant current discharge to a present lower voltage limit (and then repeat the cycle). I have looked at many different circuits for battery charging, but the combination of both power supply and electronic load in the same circuit seems only available at very large expense!

I think I might be able to use the PWM DC motor control to set the current, with some sense and feedback, and using a voltage regulator to set the voltage - but has anyone seen a circuit using an Arduino or similar?

Sounds like you need:

  • Read voltage across battery
  • Read current through battery (Very small current-sensing resistor in series with - end?)
  • Control Current from charging circuitry
  • Control Current in discharge circuit

(Opinion: separate charging and discharging paths, power FETs etc. Divide and conquer. Can use same heatsink.)

--Code :-)

Think about: - Battery temperature?? - Effect of waveform other than pure DC in charging?? - Log enough data to calculate a battery's actual A-H capacity

I've done something like this YEARS ago: PC, DOS, PASCAL...

Now if I had something cheap like this for the drawer full of AA NiMH's I have I'd know which ones to pitch out!

Thanks. I will incorporate temperature monitoring, but that can be integrated later. The waveform needs to be very pure DC as any ripple or deviation can affect the performance - this is actually to test experimental batteries and verify lifetime, degradation etc. Data logging every second is available and used, as Ah is calculated, along with losses and other chemistry specific effects.