By | September 10, 2015

Arduino Based MPPT Charge Controller | Alternative energy |renewable energy sources | clean energy

What is Mppt ( Maximum power point tracking)?

We use MPPT algorithm to Extract the maximum available power from the Photovoltaic module under certain conditions. MPPT is a Most Popular tool that helps us to use Solar Energy (Renewable Energy Source) in an efficient way. If we want to Reduce the Graph of Carbon footprints then we must need to move towards clean Energy which is called Renewable Energy ( Energy we can get from Natural resources) Like SOLAR, HYDRO, WIND e.t.c otherwise we will directly move toward Global Warming.

Every Country needs to Move towards the Green Energy especially the CHINA because it is the Main contributor by producing 63% Co2 | Alternative energy.

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 can deliver 7 amps current, 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 watt is not going anywhere, but it,s due to the poor match of the solar output current and battery voltage.
 
After using MPPT algorithm we can get the Maximum available power Battery gets is now 12 amps at 12 volts Output power is equal to p= V*I p=12*12=144w Now you still have almost 144 watts, and everyone is happy.

Specification of the project

1.This project is Based on MPPT (Maximum power point tracker) algorithm

2. LED indication to show the low mid and high level of charge stat

3. LCD (20×4 character ) display for displaying power,current,voltages etc

4. Lightning /Overvoltage Protection

5. Protection For Reverse power flow

6. Overload & Short Circuit Protection

7. Logging data through WiFi

8.Charge your Cellphone, tablets any gadgets through USB port

Electrical specifications:

1.Rated Voltage= 12V

2.Maximum input current = 5A

3.Load current support up to =10A

4. Input Voltage = Solar panel 12 to 24V

5.power of Solar panel = 50 Watts

PARTS REQUIRED:

  • Resistors ( 3 x 200R ,3 x330R,1 x 1K, 2 x 10K, 2 x 20K, 2x 100k, 1x 470K )
  • TVS diode ( 2x P6KE36CA )
  • Arduino Nano 
  • ( ACS712-5A ) Current Sensor 
  • Buck Converter ( LM2596 )
  • Wifi Module ( ESP8266 )
  • LCD display ( 20×4 I2C )
  • MOSFETs ( 4x IRFZ44N )
  • MOSFET driver ( IR2104 )
  • 3.3V Linear regulator ( AMS 1117 )
  • Transistor ( 2N2222 )
  • Diodes ( 2x IN4148 , 1 x UF4007 )
  • Capacitors ( 4 x 0.1 uF, 3 x 10uF ,1 x100 uF ,1x 220uF)
  • Inductor ( 1x 33uH -5A )
  • LEDs ( Red, Yellow, Green )
  • Fuses ( 5A)
Libraries Required For Arduino IDE : 

Remember: Make a New Folder ( Folder name should be same as library names like TimerOne and LiquidCrystal_I2C. Paste these Two Folders in Arduino/LIbrary.

———————————————————————————

Model of Arduino Based MPPT Algorithm Charge Controller | Alternative energy

 
MPPT-Algorithm-Charge-Controller-for-Solar-system

Simulation of MPPT Charge Controller Project in Proteus software

This Simulation has been designed in Proteus Software 8.6 version. You can make your own by using Arduino Library for Proteus and a simulation tool known as Proteus. Kindly Contact Us if you want to Buy a proteus simulation source file for this project. 
mppt-proteus-project-simulation
* This Simulation has been designed in  Proteus Software by Three students Abdullah Alabes, Nasser Dhafer and Abdullah Khalid. Further improvements in schematic and tools have been Added by Author of this post-Mr. Abid Jamal. 
WiFi Data Logging by using a Wifi module ESP8266

 

esp8266-arduino


Read This Article: Learn How to Setup the Wifi Module ESP8266 by Using Just Arduino IDE

After Reading The Above article I am assuming that you have successfully connected your ESP8266 module to your Wifi. 
  •  Go and Sign Up in https://thingspeak.com/
  • Make a New Channel and write “Solar Panel Data” in Field 1 and leave other fields blanks and save it. 
  • You will Get API key, Copy that Api Key and Paste in Source Code.
  • Done

 

 

Project Images 

MPPT-Algorithm-Charge-Controller-for-Solar-system

 

MPPT-Algorithm-Charge-Controller-for-Solar-system
MPPT-Algorithm-Charge-Controller-for-Solar-system

 

MPPT-Algorithm-Charge-Controller-for-Solar-system

 

MPPT-Algorithm-Charge-Controller-for-Solar-system
 MPPT-Algorithm-Charge-Controller-for-Solar-system MPPT-Algorithm-Charge-Controller-for-Solar-system
MPPT-Algorithm-Charge-Controller-for-Solar-system
MPPT-Algorithm-Charge-Controller-for-Solar-system MPPT-Algorithm-Charge-Controller-for-Solar-system
 
Successfully Made by others | Alternative energy
MPPT-Charge-Controller-circuit
MPPT-Charge-Controller-circuit
Download Source Code:

                                                                       

                                                                                                                                                 “”””Download Schematic””””

“Do not forget to install all the necessary libraries before uploading the code to Arduino Nano “

If you found any difficulty while making this project so don’t hesitate to ask first we are here to help you 24 hours a day and 7 days a week 24/7 thanks 

152 Replies to “Home Made Maximum Power Point Tracking (MPPT) Charge Controller | Alternative energy”

  1. Vitor_A

    Hi, nice project. There are some solar converters that are buck boost . The boost will increase PV low voltage under low luminosity condition. For example if the solar panel is generating 5V, it could be boosted and deliver some battery charging current

    Regards

    Reply
  2. boB

    Problem with boosting voltage because of low light is that there is little to NO power when that happens

    Reply
  3. boB

    Problem with boosting voltage because of low light is that there is little to NO power when that happens

    Reply
  4. Brian C

    What would be the pitfalls of trying to run multiples of these in parallel. I'm thinking a system with multiple panels/controllers charging a single battery bank. Much like a system with multiple panels and multiple inverters (like the enphase micro-inverter) running in parallel.

    Thoughts?

    Reply
  5. Muneef Shamsan

    Nice project!
    Can I use another arduino controller like arduino mega2560 instead of arduino Nano?

    Reply
  6. Muneef Shamsan

    Nice project!
    Can I use another arduino controller like arduino mega2560 inesNice project!
    Can I use another arduino controller like arduino mega2560 instead of arfuino Nanoted to arduino Nano?

    Reply
  7. Abid Jamal

    Maximum is 50 to 60 watt for higher watts you need to modify the circuitry by just placing more transistor in parallel …dont forget the heat sink,…enjoy

    Reply
  8. humayun khan

    hi.hope you are well.will you please tell me that is it works with boost convertor?will it be efficient system as in low insolation conditions the voltage may be very low.please guide me about this.

    Reply
  9. Anonymous

    Hello wanted to ask what they have for a firmare the ESP8266

    Reply
  10. hassan alshoaibi

    hi. i have project i am working on it. it is only about to get the power from solar and then apply MPPT algorithm using Buck. i just want output source with MPPT without battery charging . Is your code helpful for me or i have to apply new code or my case .
    regard

    Reply
  11. Abid Jamal

    waqas bhai please app apna question sahi bata dae app ka matlab hai k Market main LCD nai mil rahi am i right ???

    Reply
  12. Abid Jamal

    LCD with module is available at "IC MASTER" shop located at college road go there and buy for your self ………other wise you can change the program and connect lcd without module but i would be a little bit difficult.

    Reply
  13. ibrahem kahtan

    Hi
    can I use a fixed inductor that is like resistor in shape instead of the toroid? and what is the effect of doing that?, please

    Reply
  14. Mohammad Uzair

    salam.sir we are doing it on atemage8 but we are facing difficulty regarding coding.can u provide it.and secondly we need buck boost or only buck converter.plz explain

    Reply
  15. Mohammad Uzair

    NO reply on my comment plz reply.salam.sir we are doing it on atemage8 by using perturb and observe method but we are facing difficulty regarding coding.can u provide it.and secondly we need buck boost or only buck converter.plz explain

    Reply
  16. Abid Jamal

    i have never used atemage8 if you are using so you must need to update each and every Out/in pins declaration in code …. buck boost is best option otherwise you can use Boost also ..

    Reply
  17. Shahreen On

    hi, nice project..
    from the schematic the buck converter connector output pin is connected at 5V arduino pin. is suppose to be connected there or Vin arduino pin?

    Reply
  18. Shahreen On

    thanks for the clarification. i notice from picture you posted that there is two(2) extra mosfet is being used..can you show the exact circuit.

    Reply
  19. andre cassiano

    hi I have flashed to esp8266 aswell as included the relevant libraries in ardduino IDE but getting this message espcom_open failed

    Reply
  20. Unknown

    Good day I connected the circuit as on the schematic, but when I add the battery to the project, it keep on burning the 3rd MOSFET the one connected to pin 5 of the mosfet driver. any idea on what might be the cause please.
    Thank you.

    Reply
  21. Abid Jamal

    Powering the MOSFET driver IR2104 from battery terminal ( 12V ) instead of solar panel ( earlier ).

    If anyone making this controller, make this changes and test it. If you have any test results / suggestions, comments it below.

    Reply
  22. Lukas

    Hello,
    tried that solution, pin 5 MOSFET is getting rly hot over here too.
    But only on low PWM-states like 40% and less.
    The ir2104 timing diagramm shows that on lower pwm-states its mostly on (IN=0).
    When IN = 0, LO = VS => Q3-Gate-Source = 12V.
    That means it shorts Bat + to – via the inductor.
    Am I right with that?

    Reply
  23. Tahir Mahmood

    How can we convert this 12v MPPT charge controller to 24v,36v and 48v?
    I have a local made MPPT solar charge controller attach with 24v solar panels its working very good since 2 years.
    Now i want switch on to 36v / 48v.
    waiting for your reply

    Regards

    Reply
  24. makis savaidis

    Even with the minimum light (i.e. if you cover it with a cloth) the solar panel gives the voltage (i.e. 18V for 12V panel) it designed to deliver. Only the current is almost 0

    Reply
  25. Anonymous

    When I examine Deba's design, He said in website mppt charge controller doesnt work. When he connected the controller to battery, mosfets is getting heated. How did you solve the problem ? I need your help

    Reply
  26. Unknown

    Can we read the battery voltage correctly on the screen only if the battery is connected without the solar panel in the circuit

    Reply
  27. Anonymous

    Greetings Sir
    very nice project
    can boost converter also be used

    Reply
  28. Anonymous

    a more complex details of the project do you have? i want to do a final project on my university and i really need some help,thank you!

    Reply
  29. Veer Bhan

    Greetings Sir
    very nice project
    can we add both buck and boost converters

    Reply
  30. Rifqi

    Sir i need to know where i can put the transistor in parallel if i using solar panel 100w? thank you sir. i'm waiting for your reply

    Reply
  31. Salim_Posh

    Sir I want to work on different algorithms of MPPT. Comparison of three algorithms. should I use Arduino or Simulink?

    Reply
  32. Suryaprakash G

    hello my solar panel specs are 20w,max voltage:17.8v, opencircuit voltage:22 v,max current:1.12 a,short circuit current 1.21 a battery specs: 12.7v and 7.6ah
    ….what are modifications should i make in the circuit…reply asap…thanks in advance

    Reply
  33. ice dov

    Hello,

    Nice project. Very similar to: http://www.instructables.com/id/ARDUINO-SOLAR-CHARGE-CONTROLLER-Version-30/

    His is based on the timnolan tracker: http://web.archive.org/web/20130430163911/http://www.timnolan.com/index.php?page=arduino-ppt-solar-charger

    but the problem with the instructables article that as he said, it is NOT working.

    I want to do a hybrid grid standby installation where if there is enough juice in the batteries the loads are operated from them but if the batt voltage falls below a critical level (night or cloudy) then an AC transformer would kick in to charge the batteries and also power the load right away in an uninterruptable fashion.

    For just switching seamlessly between the grid voltage and battery I could use PicoUPS which can handle load up to 10A.

    Can you please confirm that your design is fully working, it does not overcharge or damage the battery or other problems? If so I will base my design on yours.

    Thank you!

    Reply
  34. Keshav Coondiah

    Hello Sir
    I will like to know which software you use to simulate the schematic diagram of the MPPT charge contoller
    Is it PSIM or PSPICE ???

    Thank you in advance Sir

    Reply
  35. Keshav Coondiah

    Abid Jamal BHai

    it will be greatful if u can provide me the circuit diagram of the mppt tracking ,
    because im making a project on solar panel charging mobile phone like a solar power bank.
    can you please share your circuit and design on pcb diagram with me on this email address
    keshavcoondiah14@gmail.com

    secondly how are u calculating those parameters for values like capacitors and resistors and inductors and all. can u please share this calculation with me bhai

    Thank you in so much in advance

    Yours ,
    Keshav

    Reply
  36. Abid Jamal

    No you cant do that by using this schematic, for this purpose you need to do some changes in schematic and arrangement of solar panel.

    Reply
  37. Anonymous

    What type of MPPT for this project? Perturb and Observe, Inc.. or ..

    Reply
  38. Anonymous

    can change this by pic mcu and 96volt 40 amp charger and if yes how much make donation

    Reply
  39. John

    Hello,
    Can i use this buck converter instead of the one you are using ?
    MD Mini 3A Dc Step-Down Power Supply Module LM2596 (Green circuit)
    Also, I found a similar circuit on this website
    http://www.instructables.com/id/ARDUINO-SOLAR-CHARGE-CONTROLLER-Version-30/
    Can you tell me the difference between the circuit and your circuit ? As both circuits have some similarity and I am a bit lost.
    Also some of the pictures are not clear enough, what are you using three push switches for?

    Reply
  40. ali fattah

    hi thanks for your attempts to build a such an amazing design.i have a question.there is a similar project in instrucable site that the developer mentioned the problem that Q3 mosfet got so hot and suddenly burned.did you had the same issue in your schematic?and also i need a simulation flie of your project can you help me with that?thanks a lot and god bless you.

    Reply
  41. Anonymous

    I have designed this circuit but it did not work. I need to know how to connect the buck IN+, IN-, OUT +, OUT- in your circuit. Also, I see in the pictures that you are using 6 MOSFETS but the design have only 4 MOSFETS. Can you please supply my with the final design. If you help me to make this work, I will donate to you. Thanks. 🙂

    Reply
  42. Abid Jamal

    Hello,

    Did You compile the code ?

    Is it error free ?

    Have you download Schematic PDF correctly ?

    Connection Diagram is given clearly in Schematic

    Yes i have used 6 Mosfet for better results + good efficiency.

    You can Contact me On Facebook (Search for Abid.lucky.007)

    Reply
  43. Mahir Rudani

    Hello sir I Read All Of Your Project
    BUT ASK you For Improvment And Update
    Dear I canot See Esp8266 Use In Your Project
    How to Connect esp and App to View Debug In Mobile Or System

    Reply
  44. Anonymous

    Hello,
    Can you please clarify if this circuit can work for a 400 watt solar panel or not?
    Also can you please tell where did you place the two extra mosfets?
    I will donate if you help me.

    Reply
  45. Abid Jamal

    I placed Two extra Mosfet Transistors in Parallel with other ones, YOu need to use more Transistors in Parallel with Big size heat sink for higher capacity.

    Reply
  46. Pingback: ARDUINO BASED MPPT SOLAR CHARGE CONTROLLER -Use Arduino for Projects

  47. John

    Hi there great project you have there,

    Just wondering if I already have a built up working buck boost converter.
    How should I go about integrating this project with buck boost converter?

    Regards
    John

    Reply
  48. tzitzu

    hello,
    Is there any chance to improve the load and the charging current?
    irfz44 goes up to 50 amps properly cooled, also acs712 there’s a 30 A version.
    a mppt with 25A charge would be great

    Reply
    1. Abid Jamal Post author

      You can Improve its performance by adding more irfz44 in parallel with other ones.

      Reply
  49. shahzeb

    Can you help me out in simulation because im getting following error in proteus:

    [SPICE] transient GMIN stepping at time=4.54747e-018
    [SPICE] transient GMIN stepping at time=1e-018
    [SPICE] TRAN: Timestep too small; timestep = 1.25e-019: trouble with node #00040.

    Reply
  50. shahzeb

    problem in simulation
    [SPICE] TRAN: Timestep too small; timestep = 1.25e-019: trouble with node #00040.

    Reply
    1. Dr. Zeeshan

      @shahzeb can you attach the simulation you’ve made on then would i be able to help

      Reply
  51. Prakash Kumar

    sir i have a problem in proteus simulation it showing a following error please resolve my problem
    1. [SPICE] DELMIN increased to 1.38778e-017 due to lack of time precision
    2. [SPICE] transient GMIN stepping at time = 0.11652
    3. [SPICE] TRAN: Timestep too small : timestep = 1.73472e-018: trouble with node #v:q3:fi2#branch

    Reply
  52. Tommy Java

    Dear Sir,
    The schematic shown in this page (https://i.imgur.com/QQCGMBp.jpg) is different compared with the download PDF schematic. May I know which one is correct schematic circuit for this project?

    I am looking forward to hearing from you.

    Thanks and regards,
    Tommy

    Reply
  53. Prakash Kumar

    Abid Jamal BHai

    it will be greatful if u can provide me the circuit diagram of the mppt tracking ,
    because im making a project on solar panel charging mobile phone like a solar power bank.
    can you please share your circuit and design on pcb diagram with me on this email address
    pckumar6249@gmail.com

    secondly how are u calculating those parameters for values like capacitors and resistors and inductors and all. can u please share this calculation with me bhai

    Thank you in so much in advance

    Reply
    1. Abid Jamal Post author

      Dear Parkash each and everything is present inside Article, kindly review article again with more attention ✅

      Reply
      1. Prakash Kumar

        fi2#branch problem arises in proteus simulation it showing a following error please resolve my problem
        1. [SPICE] DELMIN increased to 1.38778e-017 due to lack of time precision
        2. [SPICE] transient GMIN stepping at time = 0.11652
        3. [SPICE] TRAN: Timestep too small : timestep = 1.73472e-018: trouble with node #v:q3:fi2#branch

        Reply
  54. Sheggz

    Hi the arduino code for the project did not compile. I don’t know what the problem is. I got this error “positive not declared in this scope”.

    Reply
  55. dark223

    hi!

    i want to make this circuit, but i read several comments about q3 burning, is this true?

    tanks

    Reply
  56. dark223

    hi!

    i wan to to make this circuit, but I’ve read several comments about Q3 burning, is this still a problem?

    thank you

    Reply

Leave a Reply

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