Simple (and Dirty) Pulse Width Modulation (PWM) With 555 Timer




Introduction: Simple (and Dirty) Pulse Width Modulation (PWM) With 555 Timer

About: Made the kessel run in less than twelve parsecs.
Simple circuit for DC Motor speed control (fan speed control, light / LED dimming and etc) using the 555 timer.

Also a good starting point for novices wanting to get their hands dirty with the 555 timer IC. Some would argue that this is not the most efficient approach, but hey (read the title), it's simple, and it works.

Check the video out.
More images and description here.

Pulse Width Modulation (PWM)

Put simply PWM is the process of switching power ON and OFF to a device in pulses at a specific frequency. Same approach used in commercial light dimmers, DC motor speed controller, CPU fan speed controllers and etc.

That's what we seek to achieve here.

Step 1: Part List

Part list

1) 555 timer IC - 1
2) 100K variable resistor - 1
3) 1N4148 Diode - 2
4) 100nF capacitor - 2

The 555 Timer IC

The 555 timer is arguably one of the most popular IC ever made. There are thousands of resources online if you're interested to delve deeper into the subject. I'm just going to give the simple description directly relevant to the build

PIN 1 - Ground
DC Ground

PIN 2 - Trigger
When LOW, it causes the Output pin to go HIGH. Activated when voltage fall
below 1/3 of +V.

PIN 3 - Output
Output is HIGH when Trigger pin is LOW. Output is LOW when Threshold pin is
HIGH. Output is LOW when reset pin is LOW.Output pin is able to source or sink

PIN 4 - Reset
Short to +V when not in use.

PIN 5 - Control Voltage
Grounded through a capacitor when not in use.

PIN 6 - Threshold
When voltage reaches 2/3 of +V, this pin will cause Output to be driven LOW.

PIN 7 - Discharge
Grounded when Output pin goes HIGH.

PIN 8 - +V
DC Power

Step 2: How It Works.

How it works

When the circuit is powered up, the C1 capacitor will initially be in a discharged state. Thus, the Trigger (pin 2) will be LOW, driving the Output (pin 3) to go HIGH. Discharge (pin 7) goes HIGH and goes ground. The cycle begins.

The HIGH Output will cause C1 capacitor to be charged through the R1 and D1 path. Upon C1 voltage reaching 2/3 of +V, the Threshold (pin 6) will be activated and drive the Output (pin 3) LOW. Discharge (pin 7) goes LOW. The time it takes for C1 to charge depends on the position of R1.

Since Output (pin 3) is now LOW, capacitor C1 will start to discharge through the D2 and R1 path. When the voltage of C1 drops below 1/3 of +V, Trigger (pin 2) will be LOW, driving Output (pin 3) to go HIGH, and Discharge (pin 7) to go HIGH and shorts to ground. The cycle repeats itself.

You've probably noticed by now that the circuit is using Discharge (pin 7) to drive the motor, simply by going ground in each cycle. You can add some amount of protection if you're concerned about back EMF from the motor.

Pin 4 and 5 are not used, and pin 1 is simply tied to ground. The circuit can take between +3v to +18v. The Frequency is around 144Hz. Do note that, doubling the value of C1 will reduce frequency to half, tripling will will reduce frequency to 1/3, and so on.

Step 3: That's It

Happy tinkering. Feel free to browse my blog for other stuff

2 People Made This Project!


  • Tiny Home Contest

    Tiny Home Contest
  • Creative Misuse Contest

    Creative Misuse Contest
  • Fix It! Contest

    Fix It! Contest

109 Discussions


5 months ago

Will this circuit damage the timer if the potentiometer is turned all the way to either side? I see there's no other resistor between the capacitor and the timer's output pin.

Hey guys, is the capasitor have polarity or no? Thanks


Can yours control the speed of a 12 volt dc case fan FROM 0% TO 100%?

ok so with the caps do you mean 100 microfarads or 100 nanofarads? im building this for a very large science project which i will post online. thanks for help

1 reply

It is 100nF. The code will be 104 on the capcitor. Other values will work, and will change the frequency. Lower value capacitor = higher value frequency. Try putting a 100uF capacitor (check the polarity), and you should be able to see it blinking!

It looks as though the 555 is sinking the current, how would you wire a transistor with regards to the ground of the 555 (i.e. would it require a PNP transistor with the base connected to pin 7 on the 555, and would this require a way to drop the voltage going through the PNP between the base and the 555)? Thanks in advance!


1 reply

Steve, excellent question. To drive a NPN transistor with this circuit, all you need to do is use pin 3 as output (even though it's already connected to a potentiometer, it will still work!). Give it a try!

Don't forget a resistor between the NPN's gate, unless it's a mosfet.

Also, what's the best way to control a NPN transistor with the ground output? Would one need to drive the NPN transistor with a PNP transistor?

We are connecting a motor to the circuit, shouldn't we attach a protective diode for taking care of the back EMF ? Please clarify.
Thank you in advance .

1 reply

Yes there should be a diode, but as it says in the title this is just a simple and dirty circuit. I make circuits with motors a lot, while only using protective diodes sometimes, and I have never had a component damaged, so it is not a huge risk.

nice instructables!

I already make the pcb one, check out my instructables:


Nice!! It took me a while to figure out that my 555 couldn't pass enough current so eventually I used a PNP Transistor (TIP127) connected to Pin 7 to power a little dc water pump. It works perfectly now!!

1 reply

Thnak you sir.......

Thnak you sir.......

Thnak you sir.......

Thnak you sir.......

Thnak you sir.......

Thnak you sir.......