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?

  • 2
    \$\begingroup\$ It will probably help if you tie your ULN2803 pin 9s to ground, and make sure the 48 volt ground is connected to Arduino ground. Additionally, I don't see a power and ground connection to the 595. \$\endgroup\$ Feb 9, 2016 at 4:35
  • \$\begingroup\$ What happens if you connect resistors instead of the valves to the output? Just use a resistance value comparable to the solenoids. \$\endgroup\$
    – Stefan
    Feb 9, 2016 at 8:08
  • \$\begingroup\$ @WhatRoughBeast, this schematic was taken from Proteus ISIS, where all the component VCC and ground pins are hidden in this kind of view. Sorry, forgot to mention that! In the real circuit the ULN2803 pin 9 is grounded and the 595 is also connected to power and ground. \$\endgroup\$
    – Ikari667
    Feb 9, 2016 at 11:01
  • \$\begingroup\$ @Stefan, if I use a pure resistive load everything works normal. This strange behaviour is happening only with the solenoids. \$\endgroup\$
    – Ikari667
    Feb 9, 2016 at 11:02
  • 1
    \$\begingroup\$ (1) Is this question still live? (2) If so, what is the terminal voltage reading on the 48 V PSU when the solenoids work and when they don't work? (3) What is the resistance of each solenoid? (4) Will it work if only one solenoid is connected? (5) Datasheet link to 48 V PSU or maximum current? It may be going in to current limit. \$\endgroup\$
    – Transistor
    Feb 13, 2016 at 0:28

1 Answer 1


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.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.