Here I present very simple PWM controller to keep solar panels at constant voltage for driving water heating element. LM393 comparator generates mosfet on/off switching at 0 - 100Hz for 99.6% efficient PWM switching with only 0.012w switching loss due to low frequency operation. PV voltage ripple is 3V which is still well within Vmp range. UCC37321P is way overkill of a driver (9A capable) but it's what I had and I exploited its built in hysteresis on its enable pin for very stable jitter-free mosfet switching. It's also way too fast for this operation - driving the mosfet to 1.8MHz during oscillation mishap that immediately fried the RC snubber resistor! Oscilations and jitter were eliminated by adding 220pF cap across 2Mohm positive feedback resistor for LM393 hysterisis. I spent all day trying to figure this out.
I only had inverted input version of this driver so using enable pin worked out perfect for LM393 active low pulldown output. I used large choke to slow down voltage rise (200ns!!) across the heating element to eliminate massive RFI generated by this circuit. I can place portable AM radio on top of solar panel and hear no RFI. Diode is added to catch inductive spikes at turn off but it needs correct snubber calculated for itself. Without the diode or crude snubber I have in there the turn off spike without the choke inductor was 60V spike at only 10V PV supply due to inherent 13uH inductance in water heating element and wire. With the choke in line and without diode that poor mosfet would get destroyed!
Here is schematic and quick video of its operation. I looped 1 turn of speaker wire through the inductor to get audible PWM sound for demonstration. The circuit works very well to keep panels at preset 60V and you will see when I bypass the PWM the voltage drops to 33V while current remains the same = 50% loss of power without PWM. Edit: Updated schematic here.

I only had inverted input version of this driver so using enable pin worked out perfect for LM393 active low pulldown output. I used large choke to slow down voltage rise (200ns!!) across the heating element to eliminate massive RFI generated by this circuit. I can place portable AM radio on top of solar panel and hear no RFI. Diode is added to catch inductive spikes at turn off but it needs correct snubber calculated for itself. Without the diode or crude snubber I have in there the turn off spike without the choke inductor was 60V spike at only 10V PV supply due to inherent 13uH inductance in water heating element and wire. With the choke in line and without diode that poor mosfet would get destroyed!
Here is schematic and quick video of its operation. I looped 1 turn of speaker wire through the inductor to get audible PWM sound for demonstration. The circuit works very well to keep panels at preset 60V and you will see when I bypass the PWM the voltage drops to 33V while current remains the same = 50% loss of power without PWM. Edit: Updated schematic here.

Last edited: