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:
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?