# PWM dimmer for off-the-shelf 12v LED bulbs

I am building a PWM dimmer for loads of up to 10 off-the-shelf 12v LED bulbs. Here is my current circuit. I'll describe a fundamental problem and I ask if I'm missing something here.

The driver (everything outside the dotted box) contains a basic astable 555 configuration for generating a square-wave of adjustable duty cycle.** . The right-most component is a potentiometer for adjusting the duty cycle; this one is voltage-controlled for simulation convenience, but in real life it will be a digital pot chip. The square-wave (the 555's OUT pin) gates a power nMOSFET (a Darlington NPN pair would work too). The bulb (dotted box) contains a full-wave rectifier with low-pass filtering (for use with 12vac), and a simple LM317 current source (yet these bulbs are \$2 each). The driver needs to be able to work with up to 10 bulbs, connected in parallel, though I've only simulated one here (multiple bulbs will not affect the simulation significantly, I believe, as long as the FET can handle the current).

The problem is that if the pot is too large (say 100K) then the frequency of the PWM waveform is low enough (about 100Hz) that flickering becomes evident under some conditons, but if it's too small (say 10K) then the frequency is high enough (about 1KHz) that the bulb completely filters it out and almost no dimming occurs (see waveforms). The too-fast case is actually a little more complicated: when OUT is high the bulb turns on quickly, but when OUT goes low, the bulb's capacitor has to discharge via the 57ma current through the LEDs, and recH/recL drops low enough for the current source to collapse little, if any.

The only solution is to simply make the best compromise between flickering and dimmability (a 200Hz frequency might be the ticket, but apparently disturbing visual effect can still occur with saccades). Or to use LED bulbs designed for DC operation, which probably don't have such a honking cap.

PLEASE NOTE: I am well aware that better way to dim LEDs is with an adjustable constant-current driver. But I need for this driver to work with THIS bulb (in as much as it's typical of off-the-shelf 12v LED bulbs).

** One finds a variety of 555-based PWM generators on the web. They config the duty-cycle setting resistors/pots in different ways among pins 2/6, 3, and 7 (and some don't even use pin 3); and some even feed the charge/discharge ramp into an opamp comparator and adjust the comparison voltage. Possible advantages of these other circuits are unclear to me, and this one seems simplest. In any event, none of the alternatives is likely to help with the current problem.

• The three parallel LED strings won't share current as you imagine, I think. It's wrong-minded at the outset. (There are more problems with your schematic, by the way.) Why don't you use something like this: 2 BJT current sink with PWM control? The "load" can be your LEDs or bulbs (with some added method missing in your design to balance the currents if you use several parallel strings) and the I/O pin input is your 555 output. (Of course, you will need a DC supply based on your bridge and capacitor. But there may be much less need for the regulator.) – jonk Aug 23 '18 at 5:40
• For direct AC and an incandescent bulb, as opposed to LEDs and DC, a saturable reactor comes to mind. – jonk Aug 23 '18 at 5:46
• Certainly expecting parallel paths to share current is problematic, but these cheap off-the-shelf bulbs are a given (for this exercise). – RustyShackleford Aug 23 '18 at 6:20
• @jonk The three parallel LED strings won't share current as you imagine, I think I agree that "LED strings in parallel" isn't ideal regarding making the LED currents equal. However many LED lights do use this principle, when the LEDs are similar enough and the temperature difference between then during operation is small enough, LEDs in parallel does work (for a while at least). Often these circuits rely on the internal series resistance of the LEDs. – Bimpelrekkie Aug 23 '18 at 6:21
• The 2 BJT thing is a current source, I believe, so this might be a good way to build an adjustable current source. But I don't believe that helps me here - again, because I'm using these off-the-shelf bulbs. For simply switching these bulbs on and off (with pulses), the single device suffices. Nothwithstanding the issue of C3 filtering the pulses. – RustyShackleford Aug 23 '18 at 6:28

if you add an inductor in series with each lamp assembly that will stop the inrush current from immediately charging the capacitor and make them respond to PWM control

you could alternatively use resistors instead at a lower efficiency

simulate this circuit – Schematic created using CircuitLab

This means you'll need to modify each light socket.

• That's an interesting idea. I could not get it to work with inductors, but a 100 ohm resistor worked quite nicely. But it effectively requires mod'ing those off-the-shelf bulbs, so a non-starter. – RustyShackleford Aug 24 '18 at 18:31
• probably the inductor was too small or the frequency too low. you could perhaps mod the sockets – Jasen Aug 26 '18 at 6:26
• Actually, I could probably just use a single inductor or resistor, connected to the drain of the FET in my driver - so it'd carry and limit the inrush current for ALL the bulbs. Only problem is, it'd have to be sized for the number of bulbs. Maybe a trimmer resistor, if they make 'em with values that small (or a trimmer inductor, if such a thing exists). It'd probably work to connect whichever resistor or inductor between the FET's source and GND too. – RustyShackleford Aug 26 '18 at 18:28
• that might actually work - the capacitors should charge evenly (+80-20%) – Jasen Aug 26 '18 at 19:57

The PWM should not be driving a capacitive load.

Consider a simple PWM to disable a current limiter based on NPN Vbe driving an Nch MOSFET gives reasonable low dropout of < 0.6V is all you need. You may use any PWM method you prefer.

• That's a clever way of generating a square-wave (in your link), but I'm not sure how you'd adjust the duty cycle (probably using diodes with a pot on the inverter feed-back path, not unlike what my circuit shows). No better than the 555 though, as far as I can see. – RustyShackleford Aug 23 '18 at 18:50
• The NPN Vbe driving an nMOSFET is very much like the 2 BJT current limiter shown by @jonk in the first comment on my OP. Maybe a little better, because probably less power dissipation in the FET than in the BJT that is the main current path (in the 2 BJT design). – RustyShackleford Aug 23 '18 at 18:55
• But again, this needs to work with off-the-shelf bulbs. So I don't have the luxury of driving with a current limiter. – RustyShackleford Aug 23 '18 at 18:55
• Though a current driver won't work for this problem, I am intrigued by these simple constant-current designs mentioned above (the one with 2 BJTs, or a BJT and an nMOSFET, where the Vbe of a BJT turns off the other device). I wonder though, how consistent is the Vbe of a given type BJT ? Because the accuracy of the current limit is only that good. – RustyShackleford Aug 23 '18 at 19:03
• You can make this a current source like the LM317 by complementing the N types to P types. hFE does not matter. I bet it would work even with NPN C-E reversed . – Sunnyskyguy EE75 Aug 23 '18 at 20:01

That capacitor left of the LM317 C3 is indeed the problem.

Variable current drive will work with these lamps, when the current goes below the limit set using the LM317, the LM317 becomes like a constant voltage drop of about 1.2V, but the current setting setting where this takes effect will depend on the design current of the lamp.

• That's a good point. But (as I should've mentioned in the OP and will now edit) I need to be able to connect up to 10 or so of these bulbs to my driver. If I drive them with a current source, they need to be in series (otherwise it's the problem of sharing current among parallel loads). And since it takes at least 6-9 volts for such bulbs to light up at all, we're talking well over the 30 volts that is the DC maximum for wet exposed locations (per UL), which was another un-mentioned criterion of mine. – RustyShackleford Aug 23 '18 at 18:40
• well then PWM is your only option. – Jasen Aug 24 '18 at 5:45