# 555 timer - Creating a 5 second astable pulse

I need to a clock pulse where each pulse last 5 seconds for a traffic light controlling system assignment. I haven't worked with the 555 timer much and I haven't had any success with this. I used the equation t = 0.7*(R1 + 2R2)*C and tried designing a circuit with a 470uF cap, 1K r1 and 7K R2, but this only gives me a signal of around 4 seconds. Why is this? And how could I fix this?

• The best way to fix this is to ditch the evil 666 timer and use a microcontroller. That's how its done nowadays, and been done for the last 15 years. The tiny and cheap PIC 10F200 can do this job easily. The result will be smaller, more accurate, and more reliable than dredging up archaic analog methods from the pleistocene. It will also be cheaper considering full life cycle costs. Oct 27, 2013 at 15:39
• I would like to, but it's a assignment from a module in my course and I'm only allowed to use combinational and sequential devices. Oct 27, 2013 at 15:42
• The short time is probably due to component tolerances - electrolytic caps such as your 470 uF can vary by more than 20 % from their marked value. Try increasing the resistor values to get the required time. Oct 27, 2013 at 15:51
• You could also try by adding another 120uF capacitor in parallel with your 470uF cap. That should increase your timer period by about 25%. Oct 27, 2013 at 18:32
• or you could just use a CMOS 4060B which has a built in (external CR controlled) astable and 14 bit divider - high clock frequency, low C values, seconds to minutes outputs if required and no programming (although I do agree with Olin that a cheap and tiny uC can do the job very well) Oct 27, 2013 at 18:35

## 1 Answer

There are at least three things that can affect this:

1. Tolerance of the components. Your resistors and capacitors may be +/- 10% or more.
2. Tolerance in voltage of the 555 -- what is the actual VCC and the actual threshold voltage?
3. Variation based on temperature or other ambient conditions.

If you are within spitting distance of the timing you need, slightly adjust the capacitor or resistors until you get where you need to be. Easiest would be to perhaps use a potentiometer to make those adjustments.

And I agree with everyone else: In real life, it's easier to use a microcontroller with built-in timers and oscillators. An AVR ATTiny85 would need zero support components to do this (although a de-coupling capacitor would be good form.) Too bad you can't use it :-)