He're a novel solution with no active components.
simulate this circuit – Schematic created using CircuitLab
Figure 1. Three interlocked relays.
How it works:
- RLY1 to 3 coils are rated at half supply. So for a 12 V supply, 6 V relays are used. (5 V "Arduino" relays may be easier to come by.)
- R1 to R3 resistance is equal to the relay coil resistance (or 7/5 times the 5 V coil resistance).
- When any button is pressed the associated relay is energised and latches via its own contact.
- Meanwhile, the diodes connected to that button conduct and reduce the voltage drop across the other two relay coils to 0.7 V. This will cause the other two relays to drop out and unlatch.
R1, 2 and 3 will have full voltage across them when one of the other relays is on so they must be rated adequately for power dissipation.
Response to AaronD's comments:
Of course, this requires a relay with multiple contacts. The other contact(s), not shown here, power the load.
Nope. The loads can be powered from the button / contacts.
simulate this circuit
Figure 2. Loads can be connected as shown.
... and it only works with DC control logic; the diodes don't work the same say with AC).
The OP specified "automotive" so this will cover most vehicles.
The contacts shown here never see more than a diode drop across them, regardless of the power supply (unless it's just powered on and you haven't pushed a button yet) so they're not suitable at all to control a load directly.
I don't understand this comment.
That said, I'm not convinced that a second button press will actually do anything, as it's only shorting a forward-biased diode. Is that enough to grossly change the current balance and make the circuit switch?
If RLY1 is energised then pressing B2 will forward bias D3 shorting out RLY1's coil, causing it to drop out and remove the 12 V power from R2. RLY2 will now have 6 V across it and will pick.
It's tough in here!
@AnalogKid: Nothing in the circuit guarantees no cross-conduction. As above, relays open more slowly than they close, so the possibility of two relays being momentarily closed at the same time is very real.
@AaronD: I'm tracing from a closed B1/RLY1, through D1, and back through RLY2's de-energized coil. Thus, the node below B2/RLY2 sees V+ minus D1's drop. Drawing current from that node risks turning RLY2 on when it's not supposed to.
simulate this circuit
Figure 3. In a desperate attempt to salvage his answer, @Transistor adds D7 to 9.
Adding in D7 to 9 resolves both of these problems, I think. The buttons can't power the loads directly and the energised relay must drop out before the next one can pick. The back-feed problem is solved.
Have I missed anything else?