Arduino controlled array of latching solenoids via DPDT relays

Hi All,

Would very much appreciate if someone more experienced than I (which should be about everyone else here XD ) would check the circuit in attachment (both JPG and gschem formats).

My doubt concerns the bottom part (resistor+cap combo) where the relays connect to ground… I’m trying to save as much power as I can since this is a battery powered project.
The relays are 5V with nominal power up to 0.3W and operation power up to 0.14W which, by my calculations, gives a startup current of ~60mA and ~28mA for operation.
The bottom cap is there for that extra startup “jolt” (relay takes ~6ms to fully energize the coil) and the resistor for the operation current.
Now… I’d very much like to hear about ways of saving even more power and keep the relay coil energized :wink:
Also please comment on any errors I may have done in this circuit :slight_smile:


solenoid_control.sch (8.84 KB)

Blue on black with dark yellow lines - that is very difficult to read. The bottom cap adds nothing - just keeps the relays from switching on quickly.

Have you looked at latching relays? You give them a pulse one direction to close one contact, and a pulse the other direction to close the other contact. The rest of the time, no current flow is needed. Browse here:

These have R=125 and a drop out voltage ov .5 VDC, maybe each of your relays can have the cap/res combo to limit the hold current to .5/125R=4mA would give emitter resistor of 1.1K(1K)

Thank you CrossRoads and LarryD. karma be upon you :D

@CrossRoads: yes absolutely :) the solenoids, however, already are of the latching type, needing only a reverse pulse to change position (Hunter 9V solenoids). Latching upon latching relays? getting a bit lost there eheheheh :blush: The Fujitsu relays are there exactly to do that reverse polarity job. On the solenoids side I'm golden with that 4700uF cap. No extra current being drawn there :) And sorry about the color scheme :( It just happens to be what my eyes agree with :D Would be extremely grateful if you could provide an example using latching relays to control latching solenoids ;)

@LarryD: excellent spotting of those relays! thank you :)

Again, thank you very much for your input guys ;) Pedro.

I've settled with LarryD's relay suggestion for the time being because: a) It's still within my current abilities b) still uses just one pin of the mc or the 595 c) those relays are cheap :P d) I can live with 4mA being drawn :) (project being powered by a 9V 300mA battery and a solar cell to top it off) e) I've just bought a bunch of them XD

I would, however, be very grateful if someone could point me to a similar circuit where the relays are of the latching type (still using just 1 pin to drive it) ;)

TY, Pedro

Been thinking about it for a while and this is what I’ve come up with (in attachment).
@CrossRoads: light background XD

Uses 2 pins of the 595 (sigh) for each relay and takes careful coding on the MC’s side. Apart from that it seems to me like a viable (low tech) solution.
AFAICS it features 0 power consumption when the 2 transistors are off, the relay being of the latching type and requiring only a few ms pulse on either direction.
I’m unsure however where to put the protection diode around the relay’s coil ( guessing I’ll need 2? ) … could someone please lend a hand on that?

In the meantime… would gladly welcome alternatives to this circuit using other components :wink:

[EDIT] found this on digikey… will this do?


Much more readable, thank you.

You have both relay coils connected to +5; that won't work. You need more of an H-bridge setup so that current can flow both directions. See L293DN.

Maybe the Arduino can drive the L293 directly with 2 pins to drive the latching solenoid directly. Then skip the shift register and relay.

Thank you CrossRoads for pointing that chip to me. Wasn’t familiar with it.
Downloaded its datasheet and drew the attached schematic. Still using the 595 as only 4 solenoids would munch 8(!) of the atmega’s pins…
Pretty straightforward stuff until I got my eyes on the specs… this little puppy is a power hog!!! Looking closely, in the worst case scenario, even with that little trick, depicted on the schem by disabling the chips until needed, I could be facing a steady 28mA draw per chip! :frowning:
Please correct me if I didn’t interpret the datasheet correctly.
This is all, of course, theoretical as I don’t have this one in my components stock and can’t make real measurements. It was all from the datasheet.

At this point, unless I’m a total dunce who doesn’t know how to interpret a datasheet and needs someone to set me straight :sweat_smile:, I’m much more inclined to adopt LarryD’s suggestion and carry on with the relay approach. Much less complex a solution and more power savings AFAICS.
The solenoids are only activated one at a time and only for relatively short periods of time (10-30m) once or twice a day.

I do appreciate, however, CrossRoads’ expertise in the matter for showing me more elegant solutions :wink:


I would have thought 8mA typical with all outputs at high impedance, datasheet page 5.

The futurlec relays have: "Coil Resitance: 125ohm" With 5V for source, that means 40mA thru them.

A high current shift register, TPIC6B595, might be a better choice. Supply current is very low when not switching, similar to HC595. HC595's only support recommended 8mA, and absolute max of 35mA.

Yes I saw the same at page 5. That only accounts for the logic side right? Because I'm reading, perhaps wrong, that there's more power being drawn on the output side. I considered the product of the logic and output sides max values as in the "worst case scenario"

Again thank you very much for pointing that high power 595 ;)

BR, Pedro.

When not driving - all outputs Low, or High Impedance , the motor side shows 2mA typical. 6B595 is a nice chip, I use it a lot. Thanks to Boffin1 for pointing it out originally.