Pages: [1]   Go Down
Author Topic: Hardware protection - 2 Relays - only one can switch-on at the same time.  (Read 1443 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 34
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,

I have a pair of monostable Relays.
I drive them with PCF8574 (i2c) and ULN2803 (see the circuit).
The Problem ist... I need a hardware protection to disallow that both Relays are in the "switched state" (ON) at the same time.



Thanks for Help,
windman
Logged

Global Moderator
Dallas
Offline Offline
Shannon Member
*****
Karma: 208
Posts: 12931
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset


What should happen if an attempt is made to turn on both relays at the same time?

What if one relay is already on and an attempt is made to turn on the other relay?  Is that allowed?
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 34
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

What should happen if an attempt is made to turn on both relays at the same time?
Nothing - both Relays stay OFF.

What if one relay is already on and an attempt is made to turn on the other relay?  Is that allowed?
a) The first one stays ON and the second one turns NOT ON, so second one stays OFF.
b) Both relays turn OFF.
Both Scenarios are OK for me, but I prefer the second one.

Logged

Valencia, Spain
Offline Offline
Faraday Member
**
Karma: 146
Posts: 5522
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,

I have a pair of monostable Relays.
I drive them with PCF8574 (i2c) and ULN2803 (see the circuit).
The Problem ist... I need a hardware protection to disallow that both Relays are in the "switched state" (ON) at the same time.

Use an XOR function. (eg. 74LS86).


Logged

No, I don't answer questions sent in private messages (but I do accept thank-you notes...)

SW Scotland
Offline Offline
Edison Member
*
Karma: 17
Posts: 1389
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Or, if it's a stuck-on relay that you want to cover against then use one of the relay NC contacts to open the feed circuit to the other relay.  Do this for both relays, then it matters not whether logic is screwed or working, it is impossible for both relays to be "energised" at the same time.  This assumes of course that the relay contacts are 100% reliable.

You are now getting an insight into how difficult it is to design a logic control system that is 100% reliable (it's impossible)
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 34
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Use an XOR function. (eg. 74LS86).

Do you have a circuit for me? I am beginner smiley
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 34
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

How about this?
Logged

South Texas
Offline Offline
Edison Member
*
Karma: 8
Posts: 1025
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

or to draw one in Ladder Logic...
       Relay2        Relay1  |
+------[ ]-----------(  )----+
                                    |
       Relay1        Relay2  |
+------[ ]-----------(  )----+
                                    |

   [ ] is a relay contact, and ( ) is a relay coil.

If both were to be turned on at the same time, the first to engage would stay on. If relay 1 were on then relay 2 could not turn on, and vice versa...
Logged

Atlanta
Offline Offline
Full Member
***
Karma: 4
Posts: 128
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

or to draw one in Ladder Logic...
       Relay2        Relay1  |
+------[ ]-----------(  )----+
                                    |
       Relay1        Relay2  |
+------[ ]-----------(  )----+
                                    |

   [ ] is a relay contact, and ( ) is a relay coil.

If both were to be turned on at the same time, the first to engage would stay on. If relay 1 were on then relay 2 could not turn on, and vice versa...
shouldn't that be

       Relay2        Relay1  |
+------[ / ]-----------(  )----+
                                    |
       Relay1        Relay2  |
+------[ / ]-----------(  )----+
                                    |
Logged


SW Scotland
Offline Offline
Edison Member
*
Karma: 17
Posts: 1389
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

KF2QD

Your circuit details what I explained with the exception that you have illustrated NO (Normally Open)contacts which means neither relay will ever operate.  The contacts should be NC (Normally Closed).    ie    ----[/]-----


Edit :   Just pipped to the post by abrookfield !! smiley-razz

« Last Edit: January 15, 2013, 01:48:08 pm by jackrae » Logged

the land of sun+snow
Offline Offline
Faraday Member
**
Karma: 159
Posts: 2916
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Yeah, in the ckt of post #3, neither one will turn on if both signals are true. That actually
is an XOR, I believe. However, I also think it will work if the lines powering the relays are
switched through the normally-closed contacts, rather than by the inputs. I believe this is
what the previous post is saying [!!].

Also, I'm not sure what official logic function that corresponds to, if any.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 46
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Use an XOR function. (eg. 74LS86).

It works great for me, thanks!
Logged

Valencia, Spain
Offline Offline
Faraday Member
**
Karma: 146
Posts: 5522
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Use an XOR function. (eg. 74LS86).

It works great for me, thanks!

Hang on...now I think about it, it's not that simple. You need some ANDs as well.

If the two inputs are called A and B:

Relay 1 = A AND (A XOR B)

Relay 2 = B AND (A XOR B)

The 74LS08 has four AND gates. Each gate has two inputs and one output for a boolean function. With a 74LS86 and a 74LS08 you can wire up the boolean equations above.

nb. These days you're more likely to find 74HC08 and 74HC86 than 74LS08 and 74LS86, the two letters in the middle (eg. "HC") are just the type of material used to make the chips, their function is the same.

See http://en.wikipedia.org/wiki/7400_series

PS: Even this won't protect you against rats chewing the wires or other random cosmic acts. If this is mission critical then maybe you could put a fuse in the power supply which will blow if both devices turn on simultaneously.
Logged

No, I don't answer questions sent in private messages (but I do accept thank-you notes...)

Left Coast, CA (USA)
Offline Offline
Brattain Member
*****
Karma: 361
Posts: 17294
Measurement changes behavior
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

So much complexity. I would just use DPDT relays contacts on each relay and wire one normally closed and common contact from relay #1 in series with the coil of relay #2 and do the same for the other relay. That would override the controllers output signal and switching transistor and would allow only one relay to be activated at any given time, while still allowing both to be turned off. The break before make nature of relay contacts would make this a good simple solution.

Lefty

Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 45
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

you could also use 2 relay as such: relay 1 provides or cuts power to relay 2 contacts,
relay 2 switches between device a and device b.
Logged

Pages: [1]   Go Up
Jump to: