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 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?
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.
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.
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.
And then there's the traditional way with hardware.
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.
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
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?
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.
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
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