#184 555Timer/AdjustablePulseGenerator
A widely-adjustable square wave generator using the 555 timer
Notes
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):
Construction
Credits and References
- NE555 Duty Cycle Frequency Adjustable Square Wave Module - basically this circuit in kit form
- LM555 Datasheet
- Visual 555 Calculator
- Overclocking the 555 Timer - tutorial by Julian Ilett
- ..as mentioned on my blog