Electrical – What causes inaccurate time in 555

555ne555timer

I would like to use 555 with a relay to make a reliable control circuit.

I use 555 as mono-stable and the following equation does not work:

t = 1.1*R*C seconds

R = 51 K ohm

C= 220 uF

The output should be high (1) for about 12 sec but it does not. It is high for 6 or 7 sec only!! then it goes to low (0).

  1. What causes this error? Is the previous equation ideal and I should use practical one?

  2. I noticed that the 7 sec are constant. They don't change. Will they be constant for ever? If yes, I will increase the resistance to get 12 sec then I will continue building my project.

  3. If 555 is not reliable, Would you suggest me any other IC to control time?

Thank you,

Best Answer

That 220 uF capacitor will be an electolytic one, they're well known to have inaccurate values. The value will also be slightly voltage dependent and since the capacitor is charged and discharged in your circuit, you end up with a highly unpredictable value.

I see the following options:

  1. Try with a different value capacitor until you get the right timing value. You could also use several capacitors in parallel (like 100 uF and a 22 uF) if you need.
  2. Use a 7555 or TLC555 this is the CMOS version of the 555, it can work with very high value resistors, like 1 M ohm. Then you could use a more accurate ceramic capacitor.
  3. Forget about the 555 and use HEF4060 oscillator + counter IC, it needs a resistor and a small value capacitor to run an oscillator but it also provides frequency divided versions of that signal so you can still make long timing values.
  4. Forget about the 555 and use a microcontroller. If that MCU is used with an external timing crystal or resonator you can achieve timing accuracy almost as good as your digital watch. No that's not expensive, I have Arduino nano modules with a crystal and they're 2 Euros a piece.