I want to run 3 different relays with one momentary push button, with each pressing and releasing of the push button it should activate sequentially Relay 1, Relay 2, Relay3 and after that goes OFF. I want to do it with only one push button and three different relay not 3 push button.

for example when I push and release the momentary button, it activate relay 1 and it stays ON until I push the button another time, then it activates Relay 2 and deactivate relay 1 and relay 2 stays ON until another push of button, and when Relay 3 is get ON and I push the button, all the relays go OFF and with another push the cycle starts again from Relay 1... it is some kind of step selector for a single phase motor. what is the simplest way I can do it?

  • \$\begingroup\$ Debounce your switch and use some form of decoded counter, e.g. a 4017, that resets on the fourth count. \$\endgroup\$ Dec 18, 2016 at 13:30
  • \$\begingroup\$ Decade counter IC, such as the CD4017? \$\endgroup\$
    – Majenko
    Dec 18, 2016 at 13:30
  • 4
    \$\begingroup\$ Possible duplicate of what is your suggested switching circuit for this purpose? \$\endgroup\$ Dec 18, 2016 at 13:34
  • \$\begingroup\$ what is the simplest denounce circuit for this purpose? also I see circuit samples that IC 4017 runs 10 different outputs, how to adjust it to 3 output channel and reset at fourth count? \$\endgroup\$
    – rocknroll
    Dec 18, 2016 at 13:45
  • 1
    \$\begingroup\$ ganssle.com/debouncing.htm \$\endgroup\$
    – Majenko
    Dec 18, 2016 at 14:30

2 Answers 2


Professor Google provided direction on using XOR logic in a chain.

Relay "R0" is just used as a "Pulse" from the momentary push button.

Take your output from R1, R2, R3. . See if it is what you are looking for.


simulate this circuit – Schematic created using CircuitLab


This is easily handled a microcontroller. All you need is a micro with one input and three outputs, so even the tiny PIC 10F200 can do this.

The important part here is to debounce the button carefully, since each make/break cycle has a separate meaning. The firmware sits in a loop waiting for the button to be in the new state for every time it is checked for something like 50 ms. Once that happens, declare the new state the current state, and start looking for the next change. On each button press, you advance the relay logic by one state.

  • \$\begingroup\$ is there any way to do it without micro, I don't want to get into programming, also please tell me about denouncing circuit needed to work fine for example with 50ms timing? \$\endgroup\$
    – rocknroll
    Dec 18, 2016 at 14:26

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.