Controlling solenoids for hold on

Hi,

I was wondering if any one can help with some suggestion of how to best proceed with controlling solenoids.

In a project i want to control ~30 solenoids. they are only very small about 6mm retraction but I do know they can pull 600m amps at 3.3 volts.

So I understand i will need to use some form of FET and cant drive them direct from the Ardunio.

I have also been reading that if you hold on a solenoid for a long period then you need to control the current, applying full current for initial to pull back then reducing it or running PWM to "hold"

But this is where i am not sure of the best way forward. port expansion and running PWM for 32 solenoids from a single ardunio (they need to all be in sync so easier from one device) feels like it would be a lot of work and I not sure how you go about finding the "hold" current for each solenoid.

So i could do this from scratch, with FET, expanders etc, but are there any good of the shelf solutions that can abstract the control so I can just drive pins high and low, or run something like I2C.

I was looking at something like

and

MCP23017 IO Expansion Board

or

[Adafruit 24-Channel 12-bit PWM LED Driver - SPI Interface (TLC5947)](Adafruit 24-Channel 12-bit PWM LED Driver - SPI Interface (TLC5947) | The Pi Hut and )

or

TPIC6B595

or

Adafruit 16-Channel 12-bit PWM/Servo Driver - I2C interface (PCA9685)

and
bare MOSFET's

I know there is other components that would need to be included. But any feed back or suggestions other ways to achieve 32 lanes that can provide 3.3v / 1amp / PWM would be welcome.

As you can see i am not really sure the best way to do it?

Thank you

Your study is definitely heading in the right direction…
All the chips you mention can do the job with different degrees of software involvement.

Pick one for whatever reason, then build up a test jig with two or three solenoids, so you can get a grasp on how you’re driving them. Yes, power supply considerations are i,portent.

Just to help, regardless of how you’re moving forward, get the basic control working, then look into structs and arrays to make managing multiple devices easier.
You still have to do the work, but these will help you collect and organise the control in a more orderly way.

1 Like

Why such low voltage, high current solenoids? 600mA at 3.3V = 1.98 Watts, with 12V solenoids, 1.98W = 165mA.

Hi, @DevilWAH
Do you have a link to data/specs of the solenoids?
Have you got the solenoids and have you made a simple test circuit/jig ?

Thanks... Tom... :grinning: :+1: :australia:

I am looking for very small solenoids (10mm body length) and i want to power from a 5volt supply. so i might run them at 5volt.

the specs are

Power-on rate = 100% X power-on time/power-on time + power-off time 100% 50% 25% 10%
Continuous power Interval energization
The longest power-on time (seconds) 30 10 2
Power W (20℃) 0.8 1.6 3.2 8
Model-DC voltage Current (A)/Resistance (Ω)
DU0415L/S -6V 0.13/45 0.27/22.5 0.53/11 1.3/4.5
DU0415L/S -12V 0.06/180 0.13/90 0.27/45 0.7/18
DU0415L/S -24V 0.03/720 0.07/360 0.13/180 0.3/72

What do the Interval energization values mean? not sure how to read that bit of it.

if i read this right you can run a continual current of 130mamps

i can fire them quickly with ardunio, but what i am not sure of is the circuit to hold them open for a long period (10+ seconds). so i am just using a basic switch via transistor and GPIO pin while testing.

i not so sure how to set it up to send an initial current to retract the solenoid and then step back the / hold the current so nothing burns out.

I keep finding things like this

Additional circuitry to reduce the holding current

In order to save energy with a DC operated solenoid valve, additional circuitry can be used to generate the peak current needed during actuation. In this case the overall coil can be smaller as it only needs to keep the valve open. The additional circuitry creates a temporary peak current during opening. This helps save consumption although the additional circuitry also consumes a small amount of energy. This circuitry to reduce the opening current, works like a full wave rectifier.

but i cant find any more details of these circuits.

though this looks interesting What’s the Best Way to Drive a Solenoid? | Electronic Design

And then there's the traditional way with hardware. :grin:

Given you have a FET switching the negative end of the solenoid, you have a series resistor from the positive to the supply with a capacitor - say of the order of 1 mF - bypassing that positive connection.

I am guessing the below is not exactly what you are talking about. I was not sure what you mean by bypassing the positive connection.

Yep i am an amateur when it comes to electronics.

No, it clearly makes no sense. :rofl:

Resistor between positive end of solenoid and power supply.

Capacitor (1 mF commonly written as 1000µF) from positive end of solenoid to ground.

@TomGeorge

can you explain what the time longest on power is? not sure how to read this.

Your drawn circuit is close. The resistor value is set to limit the current to the solenoid to what ever the holding current is. The capacitor is charged by the the same current through the same resistor. Then when the MOSFET turns on, the charge in the capacitor provides the power to move the solenoid armature. While the MOSFET is turned on, the capacitor will be mostly discharged. But when the MOSFET turns off, the cycle can begin again.
I once had a machine called a "sequencer" that used the above procedure to operate up to 60 solenoids rated at 24 volts DC. The charging voltage was 120 volts DC.
Paul

1 Like

@Paul_KD7HB

would you mind scribbling that circuit diagram out. I think i understand what you mean. but my lack of electronics knowlage means i not really sure what order components need to be in.

I am thinking you want to capacitor to charged when the MOSFET is off, then "dump the charge though the solenoid when it switches off before depleting its charge and the current falling to that determined by the resistor. while the mosofet remains switched on?

oh this might be an idiot (me) not thinking how a capacitor is wired! :slight_smile:

Like this, maybe? :slightly_smiling_face:
New-Project

Q1 needs to be high-side switching. Between the top of L1 and where C1 is attached. So when Q1 turns on, both Vcc and the capacitor drive L1. When Q1 is off, C1 is charged through R1 and waits for the next turn on of Q1. The bottom of L1 is grounded.

Diode across L1 is missing!

That is misleading. L1 is grounded by the FET when it turns on. That merely describes how it all works.

Also misleading. What do you mean?

Thank you so much, i have been playing with this can come up with the same but it was your post that pointed me in the right direction.

I assume also you could place a second resistor in series and between C1 and L1 to limit how much current can flow during switch on.

I had calculated that at 5 volts, a 33Ohm would give 150mamp limit which is the data sheet holding current and a 8Ohm to limit the high current to 600mamps (need to test this all out to get exact values)

Thank you for the guidence I will find time to build this up over the next few days, will still need port expander to control all 32 solenoids but i think i now have all the parts in place :slight_smile:

@Paul_B it all made sense to me.

apart from the Diode part, i been reading about this but not sure exactly what the function is "zener diods " i keep reading about

but from what i get it for limiting voltage and as the solenoid is rated for much higher than 5volt what benefit does it have in this case or protection does it provide? it is to prevent over voltage spikes

5V at 0.15A = 33.3 Ω, if coil = 10Ω, R1 would = 23.3Ω.

@JCA34F of course forgot the resistance of coil is part of over all resistance caculation . Thank you