There are solutions to this problem—mechanical (push On/push Off switch), electromagnetic (latching relay) and electronic (CMOS logic), but few (if any) good discrete electronic solutions. I have scoured the web, looking for such and have not found any decent circuits. One recent job required such and I had to resort to CMOS logic — I will be posting that one in the future.
As a result, I have been racking my brain for the last few months and have finally come up with a really neat circuit. It is a little busy, having 19 components, but they are small, inexpensive and commonly available.
What are the benefits of such a circuit?
Good question — one may wonder what use this could be. Besides being compatible with any normally open pushbutton, it is a great way to add multiple pushbuttons to a system—all normally open pushbuttons are simply wired in parallel — any can start or stop the device. Also note that push-on/push-off switches are quite special and have a limited offering in regard to size, mechanics and aesthetics—they also have an unpleasant feel, in my estimation.
Single Pushbutton Run-Stop Schematic
How it works
When the pushbutton is initially closed, it directly turns on the gate of Q1 via D2. Q1 turns on after a brief delay determined by the charge time of C1. Q1 then biases Q2 on, and Q2 seals in the pushbutton signal and C2 charges up to 12V via R8 and D2.
When the pushbutton is closed again, the top side of C2 is grounded via the pushbutton action through D1. The lower side of C2 goes negative and dumps half of its charge into C3. The negative voltage on C3 turns on Q3 that is connected in the common collector configuration (emitter follower). The emitter of Q3 shorts the bias voltage of Q2 to common thus turning off Q1 (as soon as the pushbutton is released).
Minimum cycle time
Minimum time between pushbutton cycles is approx. 1.1sec. If this timing is violated, the circuit will not re-latch on subsequent pulses. In the event it does not turn off the first time because it occurred within this 1.1sec window, all that is necessary is to wait for an additional 1.1sec and push it again.
FYI, Typical pushbutton closure time varies from about 0.1 to 0.2sec.
This type of latch circuit when comprised of bipolar transistors is very noise susceptible due to the high gain of common emitter transistors. However, Q1 is in this case a P-Channel MOSFET that has about a 3V gate threshold. In addition, the gate is swamped via a 1000pf capacitor to enhance noise immunity. Good noise immunity is essential to prevent the circuit from turning on by itself—I had no issues with noise.
Why a 27A MOSFET?
MOSFET power transistors are characterized by Rdson that in this case is 0.07Ω. If operated at 27A, the voltage drop will equal 1.9V—way high for 12V applications. If the transistor is operated at 3A instead, the voltage drop is 0.21V and that is acceptable. So to assure low voltage drop, large, low resistance power devices are applied at low current. Since both the voltage drop and current is low, the power loss is very low, so only a small heat sink is required.
For the future
Single pushbutton CMOS logic Run-Stop circuit
Preferred components for the serious experimenter