Arduino based MPPT solar charge controller

Arduino based MPPT solar charge controller

by Abid Jamal @

what is Mppt( Maximum power point tracking) ?
“we use MPPT algorithm to get the maximum available power from the Photovoltaic module under certain conditions”

How MPPT works ? Why 150W solar panel does not equal to 150 w?
For example you bought a new solar panel from the market which puts out 7 amps. under charge the setting of a battery is configured to 12 volts : 7 amps times 12 volts = 84w (P=V*I) You lost over 66 watts – but you paid for 150 watts. That 66 watts is not going anywhere, but it,s due to the poor match of the solar output current and battery voltage .

Arduino based MPPT solar charge controller – [Link]

Please follow and like us:
Pin Share
About mixos

Mike is the founder and editor of, an electronics engineering community/news and project sharing platform. He studied Electronics and Physics and enjoys everything that has moving electrons and fun. His interests lying on solar cells, microcontrollers and switchmode power supplies. Feel free to reach him for feedback, random tips or just to say hello :-)

view all posts by admin
Notify of

Inline Feedbacks
View all comments

Just some thoughts to simplify MPPT thinking.

Main criteria when using a solar panel is how much power do you need right now. If you are charging batteries you have two non negotiable criterias – regulator output voltage and current limit – needed right now to charge the battery.

Controller will use all its powers upp to the current limit to reach target voltage. That means power is defined by current limit and the present battery voltage at that limit. As soon as battery reaches target voltage the voltage is now the linmitation and current will below current limit.

The battery control does not care about the power source it just makes sure we dont exceed battery voltage and current.

So how can MPPT do any good? It looks like the battery agenda is set?

For MPP the only thing you need to do is add a minimum voltage criteria for the controller input. It should be just another regulator criteria with same priority as output voltage and output current limit.

There is no more magic. And it can all be implemented in hardware and work in MHz speed.

The only thing needed now is the tracking. That is – dependning on current solar radiation and cell temperature there is an optimum input low voltage limit where the cell would produce its maximum – if required.

There is no magic. You can not find another operationg point. At all other load situations when power required by the charger is less than what the solar cell currently can produce the solar cell has to be less loaded – its current deduced – and its voltage will rise to a level higher than the input voltage low limit.

With solar cells the T in MPPT can be performed with hardware as well. The only thing to add to the low level input voltage criteria is a variation with input current. As current from the cell increases you offset the low level voltage criteria. What happens when this is applied is:

When the cell opererates at maximum power at some radiation level and a some mist shades the sun the current will drop because it can not possibly produce the same power at the current voltage. As current drops the low voltage criteria now moves lineary with current to another and lower level.

If the amplification of the current feedback to the low voltage level is tuned with the solar cell used there will be little earned by swinging the load up and down with an MPU. Yoiu have MPPT!

Of cource you will have an MPU anyway and you then either have to sense the pannel current and adjust the input low level voltage using an analog/PWM output or sense the pannel voltage and current and to a full “chase” P=UxI power optimization.

Just wanted to point out input voltage is a nice and stable control parameter that you implement in hardware and slowly adjust the level by software or current feedback.

If you can not add another hardware control loop to the input voltage the next best thing is to add a large capacitor after the solar panel and sense the input voltage and inhibit the regulator when under the voltage limit and enable when above – using your favorite MPU.


Simplifying MPPT??? Not with that blurb you didn’t! BTW what is MPU?

Get new posts by email:
Get new posts by email:

Join 97,426 other subscribers