Quick jumps: LM324 PWM Controller – Nomad's 555 PWM Controller

Yet more Variable Electronics...

Simple 555 PWM Controller

This controller is aimed at speed control of small motors or for dimming low-voltage lighting, where the kick-start feature of Nomad's controller isn't wanted. It will control the output from about 5% up to at least 95% of full power, which is about as good as it gets with a single 555 chip, and uses a more common NPN bipolar or N-channel MOSFET as the switching transistor.

555 PWM schematic
How it works – When the 555 output is high (+12v), capacitor C1 is charged by current flow through D2, the bottom section of VR1 and R1; at the same time, transistor Q1 is switched on, and with it, power to the load.

When the voltage across C1 reaches 8v (2/3 of the supply voltage), the 555 switches and the output goes low, turning off the transistor and power to the load. C1 now discharges by way of R1, the top section of VR1 and D1. When C1 has discharged to a 4v level (1/3 the supply voltage), the 555 switches over again and the cycle repeats.

With VR1 turned right down, the resistance in the charging circuit is only R1 (1k); resistance in the discharge circuit is VR1 + R1 (101k). Charging time (load On) is at a minimum, discharge time (load Off) is around 100x longer, giving a very low duty cycle.

As the potentiometer is turned up, the charge (On) time increases, discharge (Off) time decreases, so the PWM duty cycle increases until the On time is around 100x the Off time for the maximum duty cycle.

With the 100nF timing capacitor C1, PWM frequency is about 100Hz, the right spot for DC motors. When dimming LEDs at this frequency, some sensitive souls may see slight flickering (I couldn't) – reducing C1 will increase the PWM frequency proportionally, so a 47nF capacitor will give a flicker-free 200Hz.

With the components shown, the controller will run loads up to around 2A (24W) on a 12v supply. For lower loads (up to 1A, 12W) a TIP29A is an alternative, same pin-out as the 31A. For higher loads a low on-resistance N-channel MOSFET such as the IRF530 (14A limit) should be used, it's a straight swap for the TIP31, same way round, and the same value or a higher (up to 1k) gate resistor R2 can be used.

stripboard layout
Parts List
U1 NE555N timer, 8-pin DIL socket (optional)
Q1 TIP29A, TIP31A or IRF530 (see text)
D1, D2 1N4148 or BAT42 diodes (see text)
D3 1N4001 or UF4001 diode (optional, see text)
R1 1k 0.25W 10% or better
R2 120R 0.25W 10% or better
VR1 100k 16mm lin PCB pot
C1 100nF mylar film or ceramic disc (see text)
C2, C3 100nF mylar film or ceramic disc
C4 100uF 16v radial electrolytic

A piece of stripboard 9 strips x 22 holes can be used, 10 track breaks are needed as shown left. These can be made with a few twists of a 1/4" or so drill bit if you don't have the proper tool.

Start by fitting the wire links j1–j8, then R1 mounted flat to the board. Fit the 555, or its socket if you're using one, then the 100n capacitors.

C1 can be fitted between col 8 row 5 and either col 8 row 2 as shown, or col 8 row 4, whichever fits best. Next fit R2 and the diodes, which are mounted vertically. Watch the banded cathode ends are correctly fitted. Finally fit the potentiometer and electrolytic capacitor C4 (checking the negative lead is to the ground on row 2) and the input & output leads. Lead siting allows use of 0.2" pitch PCB screw-connector terminals (eg Maplin RH82D).

Construction Guide – Component side view

1     R1         j2         j4                  
2   j1 C1 C3 j5 C4(–) 0V
3 VR1a D1(c) (br) R2 j8
4 j1 U1(1) (br) U1(8) C3 j7 C4(+) 12V
5 VR1w R1 (br) C1 j2 U1(2) (br) U1(7) (br) Q1(b) j8
6 D1(a) D2(c) R2 U1(3) (br) U1(6) j4 (br) Q1(c) D3(a) Load–
7 VR1b D2(a) (br) j3 U1(4) (br) U1(5) C2 (br) Q1(e) j6
8 j3 j7 D3(c) Load+
9 C2 j5 j6


As said earlier, you can't get the full 0–100% range of duty cycle with a single 555 controller. Part of the small loss at either end of the control range is due to charge or discharge time of C1 through R1, which can't be avoided, but some is due to the voltage drop across diodes D1 & D2. Using schottky diodes (BAT42 or similar) gives a marginal improvement over 1N4148 types and they're only a few pence more. Maximum diode current is under 12mA so any small signal diode will do.


With 11.75v input from my regulated bench supply, I measured an output range from 0.6v to 11.6v (using the schottky BAT42 diodes). LEDs won't dim to total extinction, for that you need to use one of the sawtooth-comparator circuits where a 0–100% range is possible, like the LM324 v2 circuit, or modify the control voltage resistor chain on the LM324 or LM393 circuits. Filament bulbs will dim all the way out, the bulb may remain warm at 5% power but it won't glow.

I tried one of the "new, improved" 7555 timer ics in this circuit – it didn't work. I've not tried the CMOS 555 version, so use at your own risk. The cheap basic 555 has more output current capability (200mA) than these so is better anyway IMHO if you're driving a low-gain power transistor like the TIP31.

I've shown a silicon diode D3 across the output terminals – this is needed with inductive loads like small DC motors to protect the transistor against reverse EMF. A 1N4001 is OK for bipolar transistor switches, the faster UF4001 is safer if you use a MOSFET switch. With "brushless" computer fan motors it's not necessary to fit this diode as they have any needed protection already in-fan. It's also not needed with lighting control.