Fork me on GitHub

Project Notes

#184 555Timer/AdjustablePulseGenerator

A widely-adjustable square wave generator using the 555 timer


This circuit is a variation on the basic 555 timer astable oscillator to allow the widest possible range of frequency and duty cycle adjustment. The circuit is described in many places, and can also be found in kit form.

R1 and R2 are adjustable between 220Ω and 10.22kΩ, and the capacitor can be switched between 1nF, 100nF, 1µF, and 100µF.

So far I’ve just tested this on a breadboard. If/when I can find a nice 4-position switch (for the capacitor selection) I’ll probably put this in a project case.

Frequency/Duty Cycle Ranges

Here are the theoretical minimum (Fmin) and maximum (Fmax) frequencies when duty cycle is adjusted as close to 50% as possible (i.e. when R2 is 10kΩ).

Cap Selection Fmin Fmax
100µF 0.470Hz @ 66.667% 0.697Hz @ 50.532%
1µF 46.967Hz @ 66.667% 69.700Hz @ 50.532%
100nF 469.667Hz @ 66.667% 696.999Hz @ 50.532%
1nF 46.966kHz @ 66.667% 71.216kHz @ 50.532%

Here are the theoretical minimum (Fmin) and maximum (Fmax) frequencies when duty cycle is not constrained (i.e. when R2 is 0kΩ).

Cap Selection Fmin Fmax
100µF 1.351Hz @ 97.936% 21.818Hz @ 66.667%
1µF 135.084Hz @ 97.936% 2.181kHz @ 66.667%
100nF 1.350kHz @ 97.936% 21.818kHz @ 66.667%
1nF 135.084kHz @ 97.936% 2.181MHz @ 66.667%

NB: the rated maximum frequency of the 555 timer is generally 500kHz, so theoretical values above that probably cannot be achieved. In practice, the highest reliable frequencies squeezed out of a 555 are typically in the order of 600-700kHz.

Or more illustratively, we can use wolframalpha to plot the frequency graph (for the case of C=1µF):


And corresponding duty cycle (unaffected by the capacitor selection):




The Schematic

The Build

Credits and References

About LEAP#184 555 TimerOscillators
Project Source on GitHub Project Gallery Return to the LEAP Catalog

This page is a web-friendly rendering of my project notes shared in the LEAP GitHub repository.

LEAP is my personal collection of electronics projects, usually involving an Arduino or other microprocessor in one way or another. Some are full-blown projects, while many are trivial breadboard experiments, intended to learn and explore something interesting (IMHO!).

The projects are usually inspired by things found wild on the net, or ideas from the sources such as:

Feel free to borrow liberally, and if you spot any issues do let me know. See the individual projects for credits where due. There are even now a few projects contributed by others - send your own over in a pull request if you would also like to add to this collection.