Learn

The 555 monostable: a timer that fires once

Sign up freeor see every lesson
  • 192parts on the bench
  • 25boards running now
  • 1.00xreal time, on every board
555 monostablelive0.000 s 0.00x
Press the button once
Press the button once: 100 k and 10 uF hold the LED on for 1.1 s, however long you pressed.

Wired as an astable, a 555 oscillates for ever. Wired as a monostable, it waits. Nothing happens until its trigger pin is pulled low, then its output goes high for a time set by one resistor and one capacitor, and then it goes low again and waits for the next trigger. It is a one-shot: press a button, get one pulse of a fixed length, however long or short the press was.

In the circuit above, a 10 k pull-up holds TRIG at 5 V and a pushbutton pulls it to ground. The timing parts are a 100 k resistor and a 10 uF capacitor on THR and DIS, a 10 nF capacitor keeps noise off CTRL, and the output lights an LED through 220 ohms.

Press Run, then press and release the button. The LED comes on at once and goes out 1.10 seconds later.

555 monostable calculator: t = 1.1 × R × C
Pulse width1.10 s

Electrolytic capacitors are often ±20% or worse, so a real pulse can land that far from this number.

Download the lesson plan (PDF)

Want the step-by-step version? The lesson "Choosing R and C for a delay you want" walks through this with checkpoints.

Open the lesson

How the chip times it

Inside the 555 are two comparators and a flip-flop, and a string of three equal resistors that sets two reference voltages at one third and two thirds of the supply. At rest the flip-flop is reset, the output is low, and a transistor on DIS holds the timing capacitor empty.

When TRIG falls below one third of the supply, 1.67 V here, the flip-flop sets. The output goes high and the transistor on DIS lets go, so the capacitor starts charging through the 100 k resistor towards 5 V. When it reaches two thirds of the supply, 3.33 V, the other comparator resets the flip-flop: the output drops, and DIS empties the capacitor again, ready for the next press.

The time is how long an RC takes to charge from 0 to two thirds of the way. From the exponential, that is R x C x ln(3), and ln(3) is 1.0986, which everyone rounds to 1.1. So t = 1.1 x R x C, and with 100 k and 10 uF that is 1.1 x 100 000 x 0.000 01 = 1.1 s. The engine times it at 1.10 s. Notice that the supply voltage has canceled out: the thresholds are fractions of the supply, so the time does not depend on it.

Some worked values

Keep the capacitor at 10 uF and change the resistor: 10 k gives 110 ms, about a blink; 470 k gives 5.2 s; 1 M gives 11 s. Or keep the resistor at 100 k and change the capacitor: 1 uF gives 110 ms, 47 uF gives 5.2 s, 100 uF gives 11 s. Past a few hundred kilohms and a few tens of microfarads the capacitor’s leakage current starts to fight the charging current and the real time comes out longer than the formula, so for long delays a microcontroller is usually the better tool.

Real parts also have tolerances. An electrolytic capacitor is often plus or minus 20 percent, so a monostable built for 1.1 s from one will give anything from about 0.9 to 1.3 s. If the time matters, measure it, or use a film capacitor.

Why the length of the press does not matter

The trigger is an edge, not a level: once the output is high, further trips below a third of the supply do nothing until the time is up. That makes a monostable a very good hardware debouncer. The pushbutton in this circuit bounces the way a real one does, several contacts in a few milliseconds, and the 555 turns all of them into one clean 1.1 s pulse.

There is one exception worth knowing. If TRIG is still held low when the time runs out, the output stays high until it is released, because the trigger comparator is still setting the flip-flop; hold the button for two seconds in this circuit and the LED stays on for two seconds. A short press gives a pulse of exactly t, a press longer than t gives a pulse as long as the press, and on a bouncy button the chatter as you let go can start a fresh pulse, because by then the capacitor has been emptied. If you need exactly t however the button is pressed, couple the trigger through a small capacitor so that only the falling edge reaches the pin.

Common mistakes

Leaving TRIG without a pull-up, so it floats and the chip fires on its own. Leaving RESET unconnected instead of tied to the supply: it is active low, and a floating reset can hold the chip off. Fitting the electrolytic backwards, with the stripe away from ground, which on a real bench can make it hot enough to vent. And expecting the LED to go out the instant the button is released: it will not, and that is the point of the circuit.

Monostable, astable and what to try next

The same chip with THR and TRIG tied together and a second resistor becomes the astable on the 555 timer page, which triggers itself for ever. Try both: in this circuit, make the capacitor 47 uF and time the pulse against a clock, then change the resistor to 10 k and see it shrink to 110 ms. Then connect the output of this monostable to RESET on an astable, and you have a buzzer that beeps for exactly five seconds after a button press.

Questions

What is the formula for a 555 monostable?

t = 1.1 x R x C, with R in ohms, C in farads and t in seconds. 100 k and 10 uF give 1.1 s. The 1.1 is ln(3), from charging the capacitor from zero to two thirds of the supply.

Does the supply voltage change the 555 time?

No, to a first approximation. Both thresholds are fractions of the supply, so a higher supply charges the capacitor faster but also moves the threshold up by the same proportion. Real chips drift slightly with supply and temperature.

Why does my 555 monostable stay on while I hold the button?

Because TRIG is still below a third of the supply when the time runs out, so the chip keeps being triggered. Feed the trigger through a small capacitor, with a pull-up on the TRIG side, so only the falling edge reaches the pin.

Can a 555 monostable debounce a button?

Yes. Once triggered it ignores further trigger pulses until its time is up, so a bouncing contact produces one clean pulse. A time of 10 to 50 ms is typical for debouncing.

Build this for real

Open the editor, change a value and watch the number move with it. Nothing to install, and no account needed.