Arduino based Solar Battery Charger Using Maximum Power Point Tracking (MPPT)

Photovoltaic (PV) systems are environment friendly and fuel free which is the biggest advantage of the system. However, there are two major drawbacks of solar PV systems, low efficiency and high initial cost. So, to increase the efficiency of photo-voltaic systems, it is important to extract maximum power from the panel all the time. This project propose an implementation of Perturb and observe (P&O) method, a technique of maximum power point tracking to increase the efficiency of solar battery charger system.

There are many other algorithms of MPPT but in this project we are implementing perturb and observe algorithm because of its less implementation cost and good efficiency. It calculate power from the solar panel output and send it to Arduino for perturb and observe algorithm is to extract maximum power from the panel. This project uses boost converter to perform MPPT; however MPPT can also be performed using buck, buck- boost converter. Also a 24 volt battery is charged with a 12 volt solar panel using MPPT with boost converter.

Hardware Components for Solar Battery Charger with Boost Converter and MPPT

Voltage Regulator (7805)

Mostly voltage sources do not provide the fix output voltages. So voltage regulators are used instead of voltage sources for fix voltages.

  Current sensor (ACS712)

Current sensor is used after the solar panel at input. It measures the value of current obtained from the solar panel and give this value to the controller. This value of current is further use in the algorithm for the MPPT . This sensor is also used before battery so that output current can be measure and further we compare this current with the input current. ACS 712 works on the principal of Hall Effect. For ACS712 see Fig

current sensor ACS712 for solar charger with MPPT based boost controller
Current Sensor for solar charger
  • Current sensor (ACS712) needs 5v operation.
  • Range of sensor is 5V to -5v.
  • Sensor is used to measure solar panel current.

  Power MOSFET driver (TC4424)

Metal Oxide Semiconductor Field Effect Transistor (MOSFET) driver is used to drive or used to trigger MOSFET. As the gate of MOSFET Need 10V to 20V to turn on MOSFET we get signal from the AURDINO that is up to 5v which is not able to turn on the MOSFET so we use driver to turn it on. TC4424 is used for this purpose.

  • There are eight pins of this IC.
  • The input operating voltage of this IC is 4.5V to 17V

Metal Oxide Semiconductor Field Effect Transistor (MOSFET)

IRFZ44E MOSFET is used in this project. Duty cycle generated by microcontroller controls the switching speed of the MOSFET .
It has three pins,

  • 1 is Gate.
  • 2 is Drain
  • Pin 3 is Source.
  • Its drain to source voltages (Vds) are 60 volts.
  • Its drain current (Id) is 48 Amps.

Solar Panel

Solar panel converts sun light into electrical energy. The improved quality of solar cell results in better efficiency and performance. Solar panel in this project will be of 60 watts. It has open circuit voltages of 16-17 volts.

 Battery source

Battery plays important role in this project. There are different types of rating batteries available in market but we have to use the battery that can charge easily and quickly so we prefer the battery of 24v that we have to charge using boost converter voltage. Since we boost up voltages to 24v that’s why we use battery of 24 volts.


Arduino Mega 2560 is used as a controller in this project. To operate Arduino mega 2560 5 volts are required. It has a memory of 128 kb. Arduino can be connected with the laptop or computer through a USB port.

Voltage Sensor

Voltage sensor is there to sense the voltages coming from the solar panel. A voltage divider configuration is used to sense the output voltages of the Photo Voltaic (PV) panel. The configuration of two resistors makes a voltage divider configuration; the value of one resistor (R1) is high while other (R2) is low.

DC-DC Converter

Boost converter is used to boost up the voltages from 12 volts to 24 volts. The output voltages of a boost converter are more than the input voltages or source voltages. There are two modes in boost converter. When the switch is closed inductor energy is stored in the inductor and inductor current is increased by the input voltages. In this state MOSFET becomes short circuit and deactivates the RC portion of the circuit. The second state arises when switch is turned off or open.

The property of inductor is that it repels the changes in current and allows the boost voltage. Inductor acts as a load and it stores the energy. In this state Inductor acts as energy source, and while discharging it produces output voltages.

DC-DC converter for MPPT solar charger
DC-DC converter for MPPT solar charger

Circuit Designing

Proteus software is used to perform the software simulations. Proteus circuit of the system is in fig below:

  1. MOSFET driver is used to trigger the MOSFET. To trigger the MOSFET need 10 to 20 volts, but the arduino can provide only 5 volts so MOSFET driver is used.
  2. Inductor, Diode and MOSFET are used for the formation of the boost converter, which steps up the voltage from 12 volts to 24 volts and charges the battery.
complete Circuit diagram of solar based battery charger
Circuit diagram of solar based battery charger

Voltage Sensor Designing:

Voltage sensor is designed with the help of voltage divider. Software simulation of voltage divider is in figure below.

Voltage sensor circuit for MPPT solar based battery charger
Voltage sensor circuit for solar based battery charger

Hardware Implementation

Solar Panel

solar  panel for MPPT based solar battery charger
solar plate for solar battery charger

Specifications of solar panel are:

Maximum Power Output (PMAX) 50W
Open Circuit Voltage (VOC) 22.10V
Maximum Voltage Output (VOMAX) 17.9V
Maximum System Voltage 1000Vdc
Dimensions Of Panel (L*W*H) 670*538*25
Short Circuit Current (ISC) 3.10A
Maximum Power Current (Imp) 2.85A
Weight 6 kg


In this project 24 volts battery is used. The specifications of the battery are:
Voltage of the battery                    24v
Charge current                               10A
Maximum input of solar             <50v
Discharge Current                      10A

BOOST Convertor

Boost convertor is to boost up the voltage level from 12v to 24v and store these voltages to the battery. This is the hard ware implementation of boost convertor with the help of it we boost up our voltage level to 24v. See figure for hardware implementation of BOOST converter pcb design.

complete PCB design file of boost converter for solar based charger
PCB design of boost converter for solar based charger

For complete code of MPPT controller of solar battery charger, use following link and share your experiences below.

Complete code for solar battery charger with MPPT controller and boost converter

For More Articles and ideas for final year  projects stay tuned with us. Like our facebook page to stay tuned.
In case of query and question, comment below or contact us.

1 thought on “Arduino based Solar Battery Charger Using Maximum Power Point Tracking (MPPT)”

What do you think?

This site uses Akismet to reduce spam. Learn how your comment data is processed.