Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

Relay load causing interference in logic circuit

Not open for further replies.


New Member
Hello everyone! I am a first time poster with an annoying problem :)

I am working on a circuit, with basically a 74HC595 (for serial input) driving eight 12V relays in parallel through a ULN2004.

Each relay switches a significant inductive load (actually, consisting of a large number of other relays operating at 24V).

The coil and switch sides of the 12V relays are completely separated, running from different power supplies with no common ground.

When I remove the load from the 12V relays, the circuit operates perfectly. However, when the 12V relays drive the heavy load, the function of the circuit becomes very erratic. Often, the 595's high outputs will revert to low when I attach the load.

Naturally, it feels like some sort of interference or sensitivity problem. The 595 doesn't seem to like to have that 24V / 1A stuff running around on the board and being turned on and off.

I have attached capacitors as is the norm, but it doesn't seem to help.

What else can I do? Is 74HC particuarly sensitive? Should I go with e.g. 74LS (I could do that, but I have none available for testing) or something else?

Thanks for any help!
The schematic

Here is a quick schematic of the relevant part of the circuit. I only drew two 12V relays and one 595/2004 pair, there is really 14 relays on two cascaded 595's /2004's.


  • circuit.JPG
    35.2 KB · Views: 2,555

A few things to try /check;-

Your 100nf are as close to the chips + and - as possible, within 5 -10mm ?
As long as the +12v Common is connected to the ULN2004 - ? then that connects its internal diodes for each +12v relay.
You have got some reasonably high value electrolytic caps on the +5 and +12v rails ?

The wiring into the 595 and the distance from the 595 to the 2004 - are they fairly close eg 25mm etc ?

You could try fitting a shielded lead for the 595 input signal if its a long one.
Also you could try a 10k pull up resistor with a 100nf to ground on the input signal at the 595 input pin to act as a filter.

If the wires to your relays are long, try to shorten them or twist them together.
This is a common problem in control circuits. The best way I know to solve it, if filtering doesn't work, is to put the realys and loads on a completely seperate power supply, and use opto-isolators to drive the realy coils.

I've come across lots of industrial gear with this problem, so don't feel lonely :)
remember to connect all inputs.

in the schematic, not all inputs are connected.
indeed in reality this can cause problems, and will cause problems,
such as erratic signals, and heat up of ICs.

I never had erratic 74hc595 but they respond to touching with the fingers, if the PIC port lines are High-Z.
It won't show up on a schematic but it will show up on a wiring diagram.

You need a single point ground.

Twice in my life I ran up against this kind of problem.
Thanks for all ideas guys.

Flyback diodes are provided by the 2004, so that shouldn't be necessary.

The whole thing is on a tight veroboard, so there are no long wires. There are 100n across the rails of all ICs.
All inputs of the 595 are connected, I just left out that part of the schematic.

It could be worth mentioning that if I remove all 24V relays, and then draw one of the 12V relays and then reconect a 24V relay to it, the 12V relay often turns off, I guess as a result of the 595 resetting itself, even though the 24V circuit is completely galvanically separated from the 12V/5V side of the relay. So I'm guessing the current rush in the 24V must couple somehow to the 12V side.

I guess I will try to put in even more filter and decoupling caps. I thought maybe one could also try placing a diode between the 2004 outputs and the relay, to stop currents backfiring that way?

Willbe, what do you mean by single ground point?
The 5V and 12V parts of the circuits have the same ground rail. The 24V is a separate circuit.
have you considered if the 2004 driver IC might be buggy?

once I had a hard time with a sn76489, which was still working, but did not respond correctly.

12 hours.

then i replaced it with a backup IC, and everything worked fine.

remember one voltage spike getting through could easily damage some CMOS junction, not neccessarily rendering the whole IC defective, but resulting in buggy behaviour.
Clearly something to check :)
I hope I have some backup 2004's somewhere..

The gut feeling is that the 595 is causing the problems, since it appears to reset to all-zero outputs.
Thanks for everyone's input! I seem to have corrected this to an acceptable level, so I'd thought I'd post my findings if anyone else has similar problems.

I did three things to correct this:

1. Placed a 100n plastic capacitor over the contacts (not the coil) of each 12V relay, to suppress what I think must be arcing of the 24V across the contacts which thereby produced the pulse that reset the 595's.

2. Placed a 2k2 pull-down resistor on each data wire between the 595 and the 2004.

3. Although the first two were sufficient, I also redesigned the logic so that different relays are not switched on and off at the same time pulse, but rather all relays turn off and then after a brief wait I turn on the relays that should be on.

There was absolutely no improvement when I tried to place (more) capacitors over the ICs or across the 12V relay coils.
1. ULN2004A requires the input should be at 6 to 12 v logic level. Not 5v TTL level.
2.If you want to connect to 595 ic pins, then use ULN2003 instead of 2004A.
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips