• Skip to main content
  • Skip to primary sidebar

Homemade Circuit Projects

Need circuit help? Post them in the comments! I've answered over 50,000!

Blog | Categories | About | Contact | Calculators-online
You are here: Home / Solar Controller Circuits / True MPPT Solar Controller Circuit using IC 555

DIY Circuits | Learn Basics | Arduino Coding




True MPPT Solar Controller Circuit using IC 555

Last Updated on September 12, 2025 by Swagatam 16 Comments

Are you wondering if it was possible to build a very simple MPPT circuit using ordinary parts like IC 555 and IC 741, which would work most efficiently imitating a true MPPT? The answer is yes, it is possible, and we will learn about it details, in the following article.

In this design I used the IC 555 as a variable PWM generator. That means the IC 555 here is continuously creating a train of pulses at its pin#3. These pulses decide how fast or slow the MOSFET IRF540 is switching, which means how much power is allowed to reach the battery.

But now the trick part—this PWM pulse width is not fixed, it is controlled from solar panel voltage. That is done using pin#5 of the 555 which is connected to solar panel output through a preset.

If you don't want to read the whole article below, you can watch the following video instead:

How we used ic 555 like pwm generator

So in this idea what we tried is we used that ic 555 as one variable pwm signal producer. That means this ic 555 it keeps giving out one train of pulse signals from its pin 3 continuously.

Then those pulse signals they go and tell the mosfet irf9540 how fast it should do the switching. So now that mosfet it also handles how much current or power is going to battery side.

How pwm width changes with solar voltage

But the special thing here is that width of those pwm pulses it does not stay fixed. It keeps changing depending on how much voltage we are getting from solar panel. So we used that trick by connecting the pin 5 of ic 555 to the output of solar panel through one preset.

Now it is like this, when we are getting more sunlight then that solar panel also starts giving more voltage. Then that higher voltage reaches the pin 5 of ic 555 and pin 5 voltage also goes up. Inside this ic 555 there is that internal modulation part.

When pin 5 voltage increases, then the pwm duty cycle at pin 3 also increases. So this makes the pulse width to become more wide.

That will make us feel like mosfet will stay on for longer time. But that is not true because that mosfet is p-channel type.

So actually the MOSFET conduction actually gets narrow when duty cycle becomes high.

What happens due to all this

When we get full sunlight, that time the duty cycle of the mosfet becomes smaller. That means the on time becomes less.

So now the buck converter takes less energy from the solar panel. So because of this the panel voltage does not fall too much and it remains near that mpp level which is maximum power point.

Then when sunlight becomes weak, the solar voltage also starts coming down. That reduced voltage goes to pin 5 of ic 555 and pin 5 voltage drops.

So again the pwm duty cycle becomes narrow at pin 3. But since it is p channel mosfet, this narrow pulse actually makes the mosfet turn on for longer time.

So now the mosfet gets more on time and because of that the buck converter starts pulling more current from the panel. This helps to keep output power stable.

But we know that panel is already weak in performance, so the circuit automatically decreases pwm and controls the panel voltage so that it does not fall much or get overloaded.

How the circuit balances itself always

So this whole thing works like one balancing system which always adjusts depending on sunlight strength.

How mppt function happens in second part

Now second part of this system makes our circuit work like mppt tracker. That means it tries to follow maximum power point logic.

For this we used one opamp ic 741. It is made in such way that it keeps watching how panel voltage is changing and keeps one past voltage value in memory. That memory is held using some diodes and one capacitor.

So how it is wired and how it works

So pin 2 which is inverting input of opamp gets live voltage from solar panel directly. Then pin 3 which is non-inverting input also gets same panel voltage but it has to go through 3 diodes.

These 3 diodes make voltage drop of around 1.6V. So normally pin 3 stays lower than pin 2 by that 1.6V as long as panel voltage is same or increasing.

There is one 10uF capacitor at pin 3 side which makes voltage drop happen slowly. This helps to hold previous level.

But what happens if voltage drops suddenly

Now suppose the load like battery pulls heavy current because battery is very low. So panel voltage drops quickly. Then this low voltage reaches pin 2 and it falls fast.

But pin 3 cannot fall that fast because that capacitor holds it. So now pin 3 becomes more than pin 2. Then because of this the output of opamp goes high.

What this high output does

This high signal is sent to pin 5 of ic 555. This increases pwm duty cycle at pin 3 of ic 555. So pulse becomes wider. But this again makes gate of p channel mosfet get narrow pwm. So on time becomes short. This reduces output power of buck converter. Then load current becomes less. Because of that, the panel voltage starts rising again.

Final outcome of all this

So this opamp 741 part works like feedback control system. It checks when panel is getting too much load and tries to bring it down fast. Then it lets the panel recover voltage and slowly tries to increase again. This is how the circuit works like intelligent mppt controller.

Buck Converter Inductor Formula

L = (Vin - Vout) × D / (f × ΔI)

Where:

  • L = Inductance in Henry (H)
  • Vin = Input voltage from solar panel (V)
  • Vout = Output voltage to battery (V)
  • D = Duty cycle = Vout / Vin
  • f = Switching frequency (Hz)
  • ΔI = Ripple current through inductor (A), usually 30% to 40% of load current

Example: Based on Your Circuit

Let us assume:

  • Vin = 18V (solar panel under full sun)
  • Vout = 13V (for charging 12V battery)
  • Load current = 4A (so ripple 30% of 4A = 1.2A)
  • f = 50kHz (PWM frequency of 555 IC)

Example:

Let us assume:

  • Vin = 18V (solar panel under full sun)
  • Vout = 13V (for charging 12V battery)
  • Load current = 4A (so ripple 30% of 4A = 1.2A)
  • f = 50kHz (PWM frequency of 555 IC)

Step 1: Calculate Duty Cycle

D = Vout / Vin = 13 / 18 = 0.72

Step 2: Plug in Formula

L = (Vin - Vout) × D / (f × ΔI)
= (18 - 13) × 0.72 / (50000 × 1.2)
= 5 × 0.72 / 60000
= 3.6 / 60000
= 0.00006 H
= 60 µH

Final Answer:

L = 60 µH inductor

That means, for best performance of your buck converter with 18V solar input and 12V battery output at 4A load, you should use around 60 microhenry inductor.

You can use toroidal or iron core inductor rated at least 5A current with low resistance for best results.

Pro Tip:

If switching frequency is lower like 20kHz then L will go up:

L = 3.6 / (20000 × 1.2) = 150 µH

So lower frequency = bigger inductor and higher frequency = smaller inductor, but more EMI.

Summarizing:

  • 555 makes PWM, controlled from solar voltage.
  • 2N2222 flips it, feeds it to MOSFET gate.
  • When sun is strong, MOSFET gets less ON time (voltage maintained).
  • When sun is weak, MOSFET gets more ON time (current increased).
  • 741 compares present and previous solar voltage.
  • If voltage falls too fast, it makes 555 give max PWM.
  • After inverter, this cuts down MOSFET PWM.
  • Load current reduces, panel voltage goes up again.
  • Then again PWM increases slowly... cycle repeats.

You'll also like:

  • conductive glass 1How to Make Dye-Sensitized Solar Cell or Solar Cell from Fruit Tea
  • ENERGYSAVINGAUTOMATICLIGHTCIRCUITEnergy Saving Automatic LED Light Controller Circuit
  • solar tracker ldr assemblySimple Solar Tracker System – Mechanism and Working
  • drip2Birrigation2BcircuitSolar Drip Irrigation Circuit for Indoor Gardens

Filed Under: Solar Controller Circuits Tagged With: 555, Controller, MPPT, Solar, True

About Swagatam

I am an electronics engineer and doing practical hands-on work from more than 15 years now. Building real circuits, testing them and also making PCB layouts by myself. I really love doing all these things like inventing something new, designing electronics and also helping other people like hobby guys who want to make their own cool circuits at home.

And that is the main reason why I started this website homemade-circuits.com, to share different types of circuit ideas..

If you are having any kind of doubt or question related to circuits then just write down your question in the comment box below, I am like always checking, so I guarantee I will reply you for sure!

Previous Post: « Real MPPT Solar Charger Circuit Using Arduino, LCD, and Manual/Auto Switch
Next Post: ACS712 Current Sensor Circuit Diagrams and Datasheet »

Reader Interactions

Comments

GEORGI MALINOV says:
December 10, 2025 at 5:40 pm

Hello! I looked at the above proposed circuit and I notice one error in it – the voltage on the panel cannot be monitored by the OU741, since its input is connected to the stabilized power source for the entire circuit, these are the 18 volts of the stabilizer. In my opinion, the 10k potentiometer should be connected to the plus of the panel…

Reply
Swagatam says:
December 11, 2025 at 7:40 am

Hi, thanks for your kind analysis….however the 555 and the 741 are configured to detect the falling voltage from the panel and adjust the output accordingly. The 18V from the regulator only works like a voltage limiter and prevents voltage exceeding the 18V limit, however if the solar panel voltage drops, then the regulator cannot prevent that, and this dropping voltage is detected by the circuit so that it can adjust the MPP level for the battery accordingly…

Reply
Amirsaraf says:
September 12, 2025 at 3:13 am

Hello Swagatam
I sent you the text that was erased. I am writing again very briefly, I hope it will be corrected. Considering the polarity of the diode connecting the output pin of 741 and pin 5 of IC 555, turning the volume to ground will connect the output of 741 directly to ground and damage the IC. The resistance at the top of the potentiometer should be reduced to 50 kOhm and a resistor should be installed at the bottom of the potentiometer.
Thank you for your attention

Reply
Swagatam says:
September 12, 2025 at 8:11 am

Hello Amirsaraf, yes, a whole one month data was erased due to a critical error on my website and I had no backups to restore it. Because of that your previous comments and many other comments, along with the modifications in the diagrams were erased and gone, and I am extremely sorry about that.
But no problems, I have now once again corrected the diagram so that the concern that you have mentioned is rectified appropriately.
Please check the new updated diagram in the above article, and please let me know if it is ok or not?

Reply
Amirsaraf says:
September 13, 2025 at 3:42 pm

Dear Mr. Swagatam
The circuit is now corrected, and the bypass capacitor was installed, which was very interesting. Thank you for your good work

Reply
Swagatam says:
September 13, 2025 at 6:48 pm

Thank you Dear Amirsaraf, for your kind analysis – much appreciated…

Reply
Ignacio Joannon says:
September 12, 2025 at 3:53 pm

I saved an image of the circuit you had posted earlier. It is identical to the new one, except in the new version you add some extra information: the label “L1” on the inductor; and the 18V zener in the second image is specified as 1W, while in the first it simply says “18V zener”.

Reply
Swagatam says:
September 12, 2025 at 6:49 pm

Yes, the new design has a few more additional details. For optimum current, the TIP35 could be replaced with a 20 amp Darlington transistor and the base resistor replaced with a 1k resistor.

Reply
Ignacio Joannon says:
September 18, 2025 at 11:48 pm

Could you simulate the circuit in Falstad? I don’t have enough knowledge, but I did what I could. https://docs.google.com/document/d/1oKrxUz4rNNYMVEfW6taTrMjy_VH3jaLA_hV1e6ZYebw/edit?usp=sharing

Reply
Swagatam says:
September 19, 2025 at 9:08 am

I tried but it seems it is not responding. I think we should simulate the stages step wise, fist we can start with the IC 555 PWM stage, then the buck converter, then the IC 741 stage, and finally the feedback stage…

Reply
Ignacio Joannon says:
September 9, 2025 at 4:34 am

Hello Swagatam,

I am an engineer, although I am far from being an expert in electronics (I would very much like to be). I’m writing from Chile. Over the past few weeks, I have been researching different types of controllers to make the use of PV solar panels for water heating as economical as possible—without sacrificing too much efficiency and while keeping the system robust. I am considering a setup with 6 panels and a power limit of no more than 3 kVA, ruling out commercial inverters due to their high cost.

It seems to me that an interesting option could be an analog controller, although I’m not sure if it would be feasible to achieve that level of power economically and reliable. I have seen different strategies (analog multiplier, fixed Vmpp, current-based tracking) that I don’t fully understand. I have also come across digital alternatives using Arduino or other devices, with various methods (P&O, incremental conductance, fixed Vmp table, or lookup table).

Most controllers are designed for charging batteries, which requires precise voltage regulation and control systems to prevent overcharging. In my case, however, the application should be simpler: I only need to operate at the MPP, and on the load side we can simply select a suitable resistance from what is available on the market.

Could you please guide me on which direction would be best to focus my search?
Thanks!

Reply
Swagatam says:
September 9, 2025 at 12:28 pm

Hi Ignacio,
If you can build it yourself, then I would suggest you the last circuit given in the above article. It looks a good fit for your requirement, and it has all the features, such as automatic MPPT control, overload control and battery overcharge feed back control, and is simple also.

Let me know if you have any further questions regarding this design….

Reply
Jan says:
June 30, 2025 at 3:21 pm

Hi Swagatam,
Do you perhaps have a circuit to protect my solar system from lightning strikes?
Regards
Jan

Reply
Swagatam says:
June 30, 2025 at 5:57 pm

Hi Jan,
The only way I an aware of is to connect a tall copper rod above the solar panel, and then insert the lower section of the rod deep inside the soil, packed with lots of salt and water.

Reply
Brendan Glynn says:
May 23, 2025 at 6:58 pm

How about getting a small solar panel and connecting its max power (minimal) resistor across it. The voltage across it should be a measure of the sun’s intensity. This signal could be used to drive switching circuit for an array of big solar panels (orientated similarly) to drive a heating element. (I only want hot water energy storage) Could use an Arduino to include a template function to match the panel to signal.
Now how to calculate (1) optimum pwm frequency (2) inductor value (3)capacitor value

Reply
Swagatam says:
May 24, 2025 at 8:11 am

That’s definitely possible. Frequency can be anything between 50kHz and 100kHz, it is mainly a measure of how small or how big the inductor needs to be.
Inductor value can be calculated using the following software, and capacitor value is not critical, the higher the better:
https://www.homemade-circuits.com/buck-converter-calculator/

Reply

Need Help? Please Leave a Comment! We value your input—Kindly keep it relevant to the above topic! Cancel reply

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

Primary Sidebar

circuit simulator image



Subscribe to get New Circuits in your Email



Categories

  • Arduino Projects (93)
  • Audio and Amplifier Projects (133)
  • Automation Projects (17)
  • Automobile Electronics (101)
  • Battery Charger Circuits (85)
  • Datasheets and Components (109)
  • Electronics Theory (149)
  • Energy from Magnets (27)
  • Games and Sports Projects (11)
  • Grid and 3-Phase (20)
  • Health related Projects (27)
  • Home Electrical Circuits (13)
  • Indicator Circuits (16)
  • Inverter Circuits (95)
  • Lamps and Lights (159)
  • Meters and Testers (71)
  • Mini Projects (28)
  • Motor Controller (68)
  • Oscillator Circuits (28)
  • Pets and Pests (15)
  • Power Supply Circuits (91)
  • Remote Control Circuits (50)
  • Renewable Energy (12)
  • Security and Alarm (64)
  • Sensors and Detectors (106)
  • SMPS and Converters (34)
  • Solar Controller Circuits (60)
  • Temperature Controllers (43)
  • Timer and Delay Relay (49)
  • Voltage Control and Protection (42)
  • Water Controller (36)
  • Wireless Circuits (30)





Other Links

  • Privacy Policy
  • Cookie Policy
  • Disclaimer
  • Copyright
  • Videos
  • Sitemap



People also Search

555 Circuits | 741 Circuits | LM324 Circuits | LM338 Circuits | 4017 Circuits | Ultrasonic Projects | SMPS Projects | Christmas Projects | MOSFETs | Radio Circuits | Laser Circuits | PIR Projects |

Social Profiles

  • Twitter
  • YouTube
  • Instagram
  • Pinterest
  • My Facebook-Page
  • Stack Exchange
  • Linkedin



Recent Comments

  • Swagatam on 9 Simple Solar Battery Charger Circuits
  • Gagana on 9 Simple Solar Battery Charger Circuits
  • Swagatam on Arduino 2-Step Programmable Timer Circuit
  • Swagatam on Simple Buck-Boost Converter Circuits Explained
  • Swagatam on IC IR2111 H-Bridge MOSFET, IGBT Driver IC: Full Datasheet, Circuit Diagram

© 2026 · Swagatam Innovations