Electronic – Why the solenoid valves open only if power is turned on at last

74hc595inductivesolenoid-valvetransistor-array

I have a set of eight 48Vcc solenoid valves that I'm controlling using an Arduino. The open and close signals are sent using the Arduino's SPI lines, which are connected to a circuit composed by a 74HC595 shift register and two ULN2803. I have a 48Vcc switching power supply that I use to power the solenoid valves. The schematic is:

enter image description here

In the ULN2803 each solenoid is connected to a group of two bases and two collectors in order to allow a higher current limit on this component.

If I don't have any solenoid valve connected to this circuit and I send the "open solenoids" signal from the Arduino everything is ok. I get 48Vcc between all the connector's positive and negative pins (e.g.: between pins 1 and 9, 2 and 10, 3 and 11…). But if I have the solenoids connected to this circuit a strange behaviour happens.

If I turn on the 48Vcc power suply, turn on the Arduino and send the "open solenoids" signal, nothing happens. In this scenario when I measured the voltage between the connectors pins I got various values, all of them lower than 48Vcc. Sometimes the voltage was floating, without setting on a specific value.

But if I turn on the Arduino, send the "open solenoids" signal and, at last, turn on the 48Vcc power supply, all the solenoids open. Once the valves are opened if I send a "close solenoids" signal and right after that a "open solenoids" signal nothing happens again.

In short, my solenoids only open if at first I send the open signal and then I turn on the 48Vcc power supply. Does anyone know what could be happening?

Best Answer

I don't see any power filter caps on your schematic. A solenoid is a serious load, they are usually listed in ohms. If you don't have a giant cap on your board, you need one. If you connected the 48V to an oscilloscope, you would probably notice the power drop very low.

Another problem you are going to have is solenoids have a high 'on current', you need to make sure you are going to exceed this current and provide enough voltage so the solenoid can turn on. After it turns on you can reduce the current to avoid heating (if you so desire). The switching currents should be listed in the datasheet (which you did not provide).

If you using a cheap chinese power supply, and turning it on to 48V it is going to have some overshoot a few percent above the set value when you turn it on. (I found this anomalous behavior on a student satellite project, it was doing bad things to the software.) This might be giving you the boost your solenoids need to switch on.