I need a circuit to make a relay toggle when pushing a push button. I found this circuit here:

enter image description here

It looks good for me - please tell me if it won't work.

I intend to work with a push button to Vcc and a pull-down resistor to zero on the input. I will push this button not very much (once in a few minutes max), so timing won't be a problem.

Now my questions:

  1. What are R6 and R7 for?
  2. What values do I need for the resistors?
  3. Are 1N4148 and BC547B okay?
  4. Can I use a 12V Vcc? My relay needs 12V.
  5. Can I directly drive a relay from the output?
  6. Do I need a rebounce circuit, and if so, can I use a capacitor for that, and if so, of what value?
  • \$\begingroup\$ We used that transistor flip flop in the all transistor computer that was made in the 60s by NCR in Dundee \$\endgroup\$ May 7, 2022 at 20:09

2 Answers 2

  1. R6 and R7 are to pull the base to ground when the transistor is off. The circuit would probably work without them, but it's good to work with a known value.

  2. I would start with 1kΩ for R1 and R4, 10kΩ for R2 and R3, 100kΩ-470kΩ for R6 and R7, 22kΩ-100kΩ for R5 and R8. C1 and C2 can be 100nF (probably anything 10nF - 1uF will be okay)

  3. Yes, any small signal diode and general purpose NPN should work fine.

  4. Yes, 12V is fine.

  5. Yes if you get the values right. You could replace one of the load resistors (e.g. R4) with the coil and reverse diode, this would probably work okay if the drive current isn't too high. Since the switching will happen on the negative edge of the pulse and depends mainly on the negative edge being fast enough and dropping low enough to pull the base down, the circuit should be pretty flexible value wise (just make sure it doesn;t have to work too hard against R2/R3, and the cap is large enough to allow enough of the pulse through)
    The other option is to use higher values for R1/R4, and use the output of one to drive a MOSFET which switches the relay.

  6. No I don't think so, the switch should be clean electrically (any mechanical bounce is due to the relay itself)

With something quite simple like this, just building the circuit and tinkering with the various values, examining with a scope to see how changing x affects things will quickly give you a picture of how it works and the optimum values to use for your application. You can simulate it too of course, which I advise also (I am a big fan of SPICEing stuff as you may have noticed), but it's a bit more fun to mess about with real components ;-)


Some comments to get you on your way.

1) A simple circuit such as this can easily be plugged into a simulation program such as the free LTSpice available from Linear Technology.

2) You will be able to simulate the circuit and see how it works while at the same time select resistor values that are suitable to your application.

3) Yes, a circuit like this can be easily made to run off 12V.

4) You will do best to add an additional transistor stage to the output to then drive your relay coil.

5) For this type of application you will not need a switch debouncer.

  • \$\begingroup\$ Why don't I need a debouncer? Is the circuit already slow enough? \$\endgroup\$
    – user17592
    Feb 19, 2013 at 15:12
  • \$\begingroup\$ Why do you care if the relay blurps a bit if the trigger switch bounces? \$\endgroup\$ Feb 19, 2013 at 15:14
  • \$\begingroup\$ It is also not at all clear "how fast" things are until several key things happen. 1) You need to specify how you intend to connect the trigger switch to the circuit. 2) You need to provide some indication of what rate you desire the relay to toggle. 3) You need to work out to your satisfaction if this circuit is suitable to your needs - I suggested simulation as a means to that end. \$\endgroup\$ Feb 19, 2013 at 15:18
  • \$\begingroup\$ I would think that you'd trigger the input several times because of the rebounce. I will just connect a push button to Vcc and a pull-down resistor, I think. I'll update my question in a few minutes. \$\endgroup\$
    – user17592
    Feb 19, 2013 at 15:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.