author
30CommentsBudapest, HUNGARYJoined November 22nd, 2016

Tell us about yourself!

Complete Your Profile

Achievements

Show 1 More »
  • ARDUINO MPPT SOLAR CHARGE CONTROLLER (Version-3.0)

    Hi. It is commented out just because I use the LCD display, but can be enabled at any time if needed. Feel free to enable it and disable the LCD part until you do not have your OLED/LCD.Regards,Zoltan

    View Instructable »
  • ARDUINO MPPT SOLAR CHARGE CONTROLLER (Version-3.0)

    Hi! The single pot module what you ordered is fine! No need to cut any track, just keep everything as it is and feed the PWM signal via resistor and diode into FB (Feedback) pin of the 4016 chip. Very simple.Regards,Zoltan

    View Instructable »
  • zopinter followed GreatScottLab6 months ago
      • Make Your Own Hand-cranked Emergency Powerbank
      • Make Your Own Super Simple Ultrasonic Mist Maker
      • Make Your Own LED Stroboscope
  • zopinter followed farmerkeith7 months ago
      • Controlling DC Converter Modules
      • Library for BMP280
      • DIY Linear Actuator
  • ARDUINO MPPT SOLAR CHARGE CONTROLLER (Version-3.0)

    Nope, with MPPT you always need to track power OR current with respect to voltage! Tracking just current will not work, see the curves in video at 21:46. As you will see, solar panels current is always the highest when it is shorted out...but at that point voltage is 0, so power is zero is well (as P=U*I).

    View Instructable »
  • ARDUINO MPPT SOLAR CHARGE CONTROLLER (Version-3.0)

    Hello,1. The 18.5V and 14V are the limits where I identified the system should search for the MPPT point. Above-below it there is no sense to search for the MPP point, as it will not be there. With this basically I am speeding up the process of finding the MPPT point, as I am limiting the range where is can be. Check this Texas Insrument MPPT guide, pay attention to section 15:50 "Setting Limits to the Algorith": How to determine these limit ranges: check your solar panels specification for MPP voltage and set a higher/wider range around it. After it when you see under different light/temperature conditions where will system find the real MPPT point, you can adjust this range to be smaller / optimal.2. Very simple: if solar voltage is out of those ranges specified in upper p...

    see more »

    Hello,1. The 18.5V and 14V are the limits where I identified the system should search for the MPPT point. Above-below it there is no sense to search for the MPP point, as it will not be there. With this basically I am speeding up the process of finding the MPPT point, as I am limiting the range where is can be. Check this Texas Insrument MPPT guide, pay attention to section 15:50 "Setting Limits to the Algorith": How to determine these limit ranges: check your solar panels specification for MPP voltage and set a higher/wider range around it. After it when you see under different light/temperature conditions where will system find the real MPPT point, you can adjust this range to be smaller / optimal.2. Very simple: if solar voltage is out of those ranges specified in upper point, I increase or decrease PWM in order to get the system within those ranges where it worth to run the MPP search. For example if solar panel voltage is below 14V (which means load is too big on it and due to it voltage is pulled down far below where MPP should be!), I increase PWM which goes to Buck feedback pin and with this output voltage of Buck will get lower. This will result lower current between Buck and Li-ion, so lower load on Solar-panel as well >>> solar panel voltage increases. I do this until 14V and than switch to MPP searching.As you can see, your "we cannot control solar volts" statement is wrong, with PWM we are actually controlling the load on the solar panel, so we are controlling its voltage and tyring to set it to around panels MPP voltage.

    View Instructable »
  • ARDUINO MPPT SOLAR CHARGE CONTROLLER (Version-3.0)

    1. Yes, if you use MPPT, than your solar voltage will work around its Vmpp and Impp (temperature etc can effect these points and values, that is why we use algorithm to track the MPPT point).2. In my setup the maximum charging voltage is what you set with the potentiometer on the Buck converter. So if you charge Li-ion, than you set it to 12.6V and that will be the maximum. Buck will "convert" that 30.5V-12.6V difference into current, so the result will be that with the set 12.6V you will have around 13-15A charging current, so not just 8.5A will be available what comes our from solar panel...this is the beauty of the MPP: we convert the voltage difference into additional current :)

    View Instructable »
  • ARDUINO MPPT SOLAR CHARGE CONTROLLER (Version-3.0)

    Hello,There are 3 issued with what you wrote, see:1. "you are just changing the duty cycle based on the solar_volts only": you as well added my "mppt_track = buck_amps * sol_volts;" and "if ((mppt_track < old_mppt_track)..." part of the code, so as you can see we are tracking power (P=U*I) and not solar_volts only.2. "Shouldn't we consider the battery charging voltage (12.6 lithium-ion) to change the duty cycle?": the entire topic is about MPPT (Maximum Power Point Tracking), so we are not tracking here the Li-ion voltage and changing PWM accordingly, but we are trying to track the MPPT point of the system to get as many power as possible.If you want to track Li-ion voltage and adjust PWM accordingly, than you are looking for PWM solar controll...

    see more »

    Hello,There are 3 issued with what you wrote, see:1. "you are just changing the duty cycle based on the solar_volts only": you as well added my "mppt_track = buck_amps * sol_volts;" and "if ((mppt_track < old_mppt_track)..." part of the code, so as you can see we are tracking power (P=U*I) and not solar_volts only.2. "Shouldn't we consider the battery charging voltage (12.6 lithium-ion) to change the duty cycle?": the entire topic is about MPPT (Maximum Power Point Tracking), so we are not tracking here the Li-ion voltage and changing PWM accordingly, but we are trying to track the MPPT point of the system to get as many power as possible.If you want to track Li-ion voltage and adjust PWM accordingly, than you are looking for PWM solar controller, not MPPT controller. You will find lot of those on Internet.3. "what is the significance of tracking the solar_volts?": as mentioned above, we are NOT tracking solar_volts, but "mppt_track = buck_amps * sol_volts;", so (maximum)power.Please read in the original post above the"Step 2: Basics on MPPT Charge Controller" chapter, so you can understand why we are doing MPPT and not PWM charger.Hope this helps! :)

    You can use any Shottky diode to replace that entire Ideal-diode setup or you may check the replacement circuit what @farmerkeith posted in his setups: https://github.com/farmerkeith/Solar-charger-XL401...He is using this attached setup for Ideal-diode. I have not tested it but very interesting! Hope farmerkeith can comment on it.

    View Instructable »
  • ARDUINO MPPT SOLAR CHARGE CONTROLLER (Version-3.0)

    You can refer to the original schematic what I have linked in my original post above, so to: http://www.linear.com/solutions/1464There you can see a part number, but basically you can use any low Rds P-mosfet.Regards

    View Instructable »
  • ARDUINO MPPT SOLAR CHARGE CONTROLLER (Version-3.0)

    Sure...I know it would be better to start a separate Instructable on this project, just I am lack of time due to two small kids...Maybe during summer vacation I will try to find for it some time. Thanks for the feedback!

    View Instructable »
  • ARDUINO MPPT SOLAR CHARGE CONTROLLER (Version-3.0)

    Are you feeding some PWM/analogue voltage signal into the Feedback pin on the buck just as I/we described above with Arduino or other microcontroller?Also do not forget, that:1. if your solar panels OPEN voltage is 18V, than its MPPT voltage will be at around 15V - check its exact specifications/mine panes open voltage is 22.5V, official MPPT is 18V and in reality my system finds its MPPT point at around 16.5V/2. this 15V MPPT voltage is true for LAB environments where the temperature is set to 25 Celsius degree - check specs on the solar panel again. In real life solar panel gets very hot and due to this the MPPT voltage goes lower, so maybe it will be at around 14V even in your case...and I guess you charge your lead acid batteries until 13.5-14.4V... So if this is the case, than bas...

    see more »

    Are you feeding some PWM/analogue voltage signal into the Feedback pin on the buck just as I/we described above with Arduino or other microcontroller?Also do not forget, that:1. if your solar panels OPEN voltage is 18V, than its MPPT voltage will be at around 15V - check its exact specifications/mine panes open voltage is 22.5V, official MPPT is 18V and in reality my system finds its MPPT point at around 16.5V/2. this 15V MPPT voltage is true for LAB environments where the temperature is set to 25 Celsius degree - check specs on the solar panel again. In real life solar panel gets very hot and due to this the MPPT voltage goes lower, so maybe it will be at around 14V even in your case...and I guess you charge your lead acid batteries until 13.5-14.4V... So if this is the case, than basically you will not benefit from MPPT charger - just as you noticed it already...3. Solar panes specifications changes with years as well, so this can as well effect its MPPT pointRegards,Zoltan

    View Instructable »
  • ARDUINO MPPT SOLAR CHARGE CONTROLLER (Version-3.0)

    You can go with any LTC4412, they are all the same just working temperature limits, etc are different - please refer to its datasheet for details.Personally I have used already LTC4412HS6 and LTC4412HVIS6 as well, not noticed any difference between them. They do for what they have been designed.... :)

    View Instructable »
  • ARDUINO MPPT SOLAR CHARGE CONTROLLER (Version-3.0)

    This eBay XL4016 based buck in this setup provides me 86-90% efficiency - on the uploaded picture of the LCD you can see a "86%" value. With synchronous buck it would be better probably... :)

    I am as well using my charger described above to charge Li-ion battery pack: I just set the output voltage of the eBay buck to 12.6V and all works fine (current is limited/determined by solar panel). MPPT is done through the PWM modulation of Feedback pin of XL4016 IC, see details in these comments. So I would say charging Lithium batteries is even more easy than Lead-acid ones.

    View Instructable »
  • ARDUINO MPPT SOLAR CHARGE CONTROLLER (Version-3.0)

    You are welcome! Let us know about your progress as we can all benefit from sharing experience :).

    View Instructable »
  • ARDUINO MPPT SOLAR CHARGE CONTROLLER (Version-3.0)

    Great, thanks for testing it!!!FYI, it seems that the 20A module is using LT8711 IC, see: Let me know if you manage to start to use the module with my MPPT Arduino setup and please share the impressions, results. :)

    View Instructable »
  • ARDUINO MPPT SOLAR CHARGE CONTROLLER (Version-3.0)

    FYI: just added above to my original comment a small video where you can see things working: on the LCDs right top side the PWM change, on the left the effect of it on the solar voltage, input and output currents (~2.8A on solar side becomes ~3.5A on the buck output side, daily max current, efficiency, etc.).

    View Instructable »
  • ARDUINO MPPT SOLAR CHARGE CONTROLLER (Version-3.0)

    Nope, unfortunately I do have any mode details on these modules, I do not own any of them (yet), so was not able to check what IC they use and its datasheet. If you find out anything, please share, OK?From other hand, the output voltage/current control should be very same/similar I assume as to the XL4016.

    View Instructable »
  • ARDUINO MPPT SOLAR CHARGE CONTROLLER (Version-3.0)

    These 300W 20A DC Bucks on eBay also looks very promising for those who needs more current than what XL4016 can handle: https://www.ebay.com/itm/300W-20A-DC-Buck-Module-Constant-Current-Adjustable-Step-Down-Converter-Vol-W5A8/192484036285?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2055119.m1438.l2649

    View Instructable »
  • ARDUINO MPPT SOLAR CHARGE CONTROLLER (Version-3.0)

    There is no need to increase the Vout, let me explain: I am charging Li-ion battery pack, so by default when Arduino PWM is 0, I set eBay buck output by its POT to 12.6V which the maximum for my battery pack. Lets say my battery is half-empty, so it is on 11.5V: if I would connect eBay buck to it without "manipulating" its Feedback pin, it would drown down my solar panel voltage to 11.5V (in reality it would be a little bit higher do to voltage drop on the Buck). When I am manipulation the Feedback pin, than I can achieve that the solar panel voltage (input of the buck) will slowly go upper-and-upper until I do not find the MPPT point (on my solar panel it is around 16-17V usually) and than the MPPT algorithm continuously tries to search and keep that point. In the mean time, ...

    see more »

    There is no need to increase the Vout, let me explain: I am charging Li-ion battery pack, so by default when Arduino PWM is 0, I set eBay buck output by its POT to 12.6V which the maximum for my battery pack. Lets say my battery is half-empty, so it is on 11.5V: if I would connect eBay buck to it without "manipulating" its Feedback pin, it would drown down my solar panel voltage to 11.5V (in reality it would be a little bit higher do to voltage drop on the Buck). When I am manipulation the Feedback pin, than I can achieve that the solar panel voltage (input of the buck) will slowly go upper-and-upper until I do not find the MPPT point (on my solar panel it is around 16-17V usually) and than the MPPT algorithm continuously tries to search and keep that point. In the mean time, voltage on my battery starts to increase due to charging, but it will NEVER go above 12.6V, as it is set by the "hardware" POT, so that is the maximum for me: this gives me a safety mechanism as well: if the Andruino by any accident freezes, I can be still sure that my Li-ion pack will not be overcharged and exploded, since voltage coming out from buck will never go above the POT set 12.6V.

    I have never worked with Arduino Due, but I think it has the same capabilities: for analogue voltage output it as well uses PWM and the AnalogWrite command. Afaik, ADC pins are just input analogue voltage sense pins, at least with Uno, Nano and Micro what I used until now.

    One comment: with my setup I am not using the current limiting function of the eBay buck, since I had to short out the current sensing (0.01ohm) resistor: as I am measuring voltage on input and output as well and Arduino needs same GND, basicall that resistor is shorted out, I soldered across it a wire.And one more "tested" setup: for those who do not want to "manipulate" Feedback pin of the buck and also do not want to use the LTC4412 for ideal diode, can simply attach the two mosfet setup as shown on the attached schematic to the output of the ebay buck and control its input (base of transistor) via PWM: when you put 0 there, than setup will act as an ideal diode, while if you start to increase the PWM 1-2-3-...255, basically you will achieve the same result as wit...

    see more »

    One comment: with my setup I am not using the current limiting function of the eBay buck, since I had to short out the current sensing (0.01ohm) resistor: as I am measuring voltage on input and output as well and Arduino needs same GND, basicall that resistor is shorted out, I soldered across it a wire.And one more "tested" setup: for those who do not want to "manipulate" Feedback pin of the buck and also do not want to use the LTC4412 for ideal diode, can simply attach the two mosfet setup as shown on the attached schematic to the output of the ebay buck and control its input (base of transistor) via PWM: when you put 0 there, than setup will act as an ideal diode, while if you start to increase the PWM 1-2-3-...255, basically you will achieve the same result as with Feedback pin control: buck input voltage will change accordingly. Hope it is clear for all what I mean.

    View Instructable »
  • ARDUINO MPPT SOLAR CHARGE CONTROLLER (Version-3.0)

    The reason why I am using the LTC4412 ideal diode on the battery side and not on solar panel side is because of the XL4016 itself: I am not sure if it would like to get the 12.6V reverse voltage back during the night from battery... Would need to read it datasheet, but for sure some buck regulator IC does not like this and can fail. So with this setup I am protecting the eBay buck as well from reverse voltage during night.With my solar panel (max ~5-6A at output side of the buck) the used P-mosfet is not generating any heat, so there is no huge loss I think, especially if I would compare it with a schottky diode...:)Thanks for your resistor calculation! I will try those values as well!

    View Instructable »
  • ARDUINO MPPT SOLAR CHARGE CONTROLLER (Version-3.0)

    LTC4412 is acting as an ideal diode, as I did not want to waste energy by using a Schottky diode even between output of the buck and the battery. I am using a 36 cell 18v solar panel, so if you use panel with bigger voltage, than maybe you will not be able to use LTC4412, please check its datasheet for its limits.Regarding the MOSFET, yes IRF4905 should be fine I think, basically you need there a P-Mosfet with as low Rds as possible - see datasheet for detailsJust to clarify: it is NOT needed to use this LTC4412 based setup what I am using, you can replace this by a simple schottky diode, but than you waste some energy on the diode. Regarding the 150 ohm resistor: I was starting the testing with 1k resistor and at the end I used 150 ohm. So I was not really making calculations, but was ...

    see more »

    LTC4412 is acting as an ideal diode, as I did not want to waste energy by using a Schottky diode even between output of the buck and the battery. I am using a 36 cell 18v solar panel, so if you use panel with bigger voltage, than maybe you will not be able to use LTC4412, please check its datasheet for its limits.Regarding the MOSFET, yes IRF4905 should be fine I think, basically you need there a P-Mosfet with as low Rds as possible - see datasheet for detailsJust to clarify: it is NOT needed to use this LTC4412 based setup what I am using, you can replace this by a simple schottky diode, but than you waste some energy on the diode. Regarding the 150 ohm resistor: I was starting the testing with 1k resistor and at the end I used 150 ohm. So I was not really making calculations, but was more testing which resistor value is the best.Regarding the "what are the upper and lower output voltage limits you get with the 1N5819 and 150 ohm resistor to the feedback pin": this is a "wrong" question I would say, since the XL4016 always tries to keep 1.2V on its Feedback pin: so if I push there a wider PWM, than it basically lowers the output voltage of the Buck to compensate my PWM caused "voltage add-on". So:- if I push 0% PWM, than of course my Arduino does not have any effect on the Buck, like if there would be not any control/MPPT at all- if I push 100% PWM, than there will be probably around ~ 5V on the feedback pin, which means that Buck will lower its voltage output to the minimum what the chip (XL4016) supports.- in "normal operation" on the Feddback pin it will always be 1.2V - Arduino sketch is increasing 1-by-1 (AnalogWrite 0 till 255) the PWM from 0% to point where it measures the biggest Power outcoming from the system and than using PO algorithm it keeps seeking the Pmax continuously.Regarding the resistance of the two resistors: attached is the schematic of these eBay buck converters, usually those are the values what you can see in the schematic, but worth to check when you get it from eBay...:)

    View Instructable »
  • ARDUINO MPPT SOLAR CHARGE CONTROLLER (Version-3.0)

    Check this article, so you can understand how you can "cheat" almost any buck converter using its ICs Feedback pin: http://www.fischl.de/dcdccontrol/And this is what I am basically doing with Arduino to control the eBay buck. I tested the same setup with MCP4725, but after it I realized that this specific eBay buck is OK if I just feed PWM to its Feedback pin, so no need for "stable" voltage, PWM is as well OK for it to be "cheated".Regards,Zoltan

    View Instructable »
  • ARDUINO MPPT SOLAR CHARGE CONTROLLER (Version-3.0)

    Hello,Have you really read my comment on the Instructions page?https://www.instructables.com/id/ARDUINO-SOLAR-CHA...I clearly described there than I modified the original design a LOT and that now I am using a Buck converter from eBay what I am "maniulating" with PWM to achieve the result... So arduino skecth is almost the same, but I an using a Buck converter from eBay rather than doing myself a Buck from FETs what will than blow as you can see people complaining and what happened to me as well when "I originally build the circuit discussed by deba168".So what is causing the confusion exactly? I even added the eBay link to the buck converter what I am using...:)

    Arduino is there on the schematic as well and as you can see it is providing the PWM to the FB pin of the eBay buck, so Arduino is the controller.Regards,Zoltan

    View Instructable »
  • ARDUINO MPPT SOLAR CHARGE CONTROLLER (Version-3.0)

    Hello,Yes, link has expired, but now I have renewed it again, try this: https://cisco.box.com/s/r9wlx4ov653n8tjeu8drtb6eo4...If it does not work for any reason send me your email address and I can send files via email.Regards,Zoltan

    View Instructable »
  • ARDUINO MPPT SOLAR CHARGE CONTROLLER (Version-3.0)

    Hello,I have built a different type of circuit which is based on buck converter from eBay. Schematic and Arduino file are located here: https://cisco.box.com/s/wviwi6s9imdctw8m2q11y3ihgh...Until now it works fine.Regards,Zoltan

    View Instructable »