Skip to content

Arduino Solar Charge Controller – 2

As the battery type is lead-acid battery, the technology is older and a lot of information are available in the internet about the battery.

The battery charging curve is like as following:

There are three stages for battery charging, the stages can be determined by measuring battery charging current and charging voltage. I will use a couple of MOSFET connected in parallel to handle the current

  • At first, On the I-phase, the battery(12v) will be connected directly to the panel(20v)
  • Then on the Uo-phase, as charging current drops, the battery terminal voltage will increase. The arduino has to closely monitor the terminal voltage of the battery and its internal preset voltage(14.4.V) and send PWM signal to the mosfet to keep up the voltage at its nearest setting.
  • Then In the U phase, the battery is nearly fully charged, the current will drop to a minimum. arduino will closely measure this current against a preset value and when it matches, it will turn off the charging.

The preset value is needed here to make this board universal. To support different amp-hour and different voltage batteries.

As there are a lot of manufacturers, every battery can be different. So, I have planned to make a configurable charge controller over the serial port.


The planned features of the charge controller are as like as following:

  • Simple ON/Off type charge controller at first.
  • I will use ACS712 30A sensor to measure incoming and outgoing current from battery.
  • A normal two resistor based voltage divider to sense the battery terminal voltage.
  • A waterproof DS18B20 Sensor to measure battery temperature.
  • A 16×2 Character LCD display to show status.
  • The voltage and current settings for the three stages can be saved into internal EEPROM of the charge controller. And whenever the charge controller started, It will restore the settings from the EEPROM.
  • Optional monitoring and changing settings over MQTT connection via a ESP8266 ESP-01 module.

As I have started the project, The source codes are shared on github. My two younger brothers are helping me to do this project. I will update this blog about the project as it progress.

Leave a Reply

Your email address will not be published. Required fields are marked *