Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

5-200hz, 12-22VDC, 500ma max., Adjustable Solenoid Driver Circuit / PWM input

Status
Not open for further replies.

Kevin McDonald

New Member
Hi All,
First time post here. Hope you're all having a good weekend.
I'm doing a little project with a small clapper solenoid. It's one of the 5.5lb 12VDC, .25A 20mmDia. units sold on ebay. (ZYE1 P20/15). Though I don't have this one yet, so can give you the coil resistance, I'm working with one out of a printer with an 80.0 ohm resistance drawing .120A at 12VDC.

What I want to do is precisely control the cycle. It will be off normally, and when powered, might go through 30 cycles at 15hz. Or 600 cycles at 200hz. With a usable and reliable range of 5-200hz. It will never run for more than 3 seconds. And it will always have at least 5 minutes between uses. I'd like to build a circuit that allows as much adjustment as possible to allow me some fine fining.

I have a strong product development background, but am retired (Wish), well at least somewhat harmless with my little home arduino projects. Until it comes to what you guys do. I'm just getting too old to absorb some of this stuff, so I'm hoping someone can help me. Be happy to reciprocate with some hardware help.

So I'd like to drive this with my arduino PWM signal. All I can figure is to use an IRL540 with both a pull-up resistor across the Gate and Source, and a flyback 1n4001 across the Drain and Source. Or, across the two coil leads?

I know it can't be that simple. I really need this to run as cool as possible, and for years. In an enclosed box. I'm cool with spending component costs to do this right.

Thanks All, Happy Saint Patty's Day
KJM
 
You just need a miniature refrigeration unit with the pipe going into the box and surrounding the coil. Get a unit from an old water cooler. They are being thrown out by the thousands as people stop drinking chilled water.
 
Thanks guys.
This is a miniature project. So cooling options are scarce. Off the top of my head, I think with this duty cycle, just a heatsink on the FET will be enough. Though I could be wrong.
Yes, an electro mag. I can go to 22VDC. Though Ideally, a 19VDC brick would be my choice.
 
"I question if it will work that fast. (at 12 volts) There are ways to speed it up."

Yes. Smack it.
 
Just to help visualize the function, imagine this solenoid will be pulling a ferrite disc toward it under spring pressure, when energized. When at rest, the disc will be held against a dampened stop by that spring.
I would like to cycle it precisely enough to have it float short of the solenoids core. In effect, stopping short of hitting the max travel only in the energized direction. Mechanically, the spring will be an adjustable element for the proto. And the at-rest pressure is low, so light compression springs are fine, giving a wide range to experiment with.
Again, I'm guessing that falling below the max holding current, or in reality, never using a holding current, will help curb the heat. Although energizing the circuit may see spikes, it should still be better overall.
So if we are cycling so precisely as to keep this whole thing floating, can we come up with a circuit that would also be elegant in its energy usage?
Thanks
KJM
 
You can already buy a top and globe and clock that floats in mid air and spins. Why re-invent the wheel?
 
How are you going to drive something at 200Hz when the Arduino's pwm pulse-rate is only 500Hz?
 
MikeMI,
It is possible to workaround the freqs on the arduino using prescalers in the sketch. I don't need to do this because I am actually using an ESP32. Sorry, I sort of generically used arduino for no good reason. Didn't think it was relevant to the project.
 
What the online sellers never tell you is the inductance of the electromagnet. This will limit the rate at which you can pulse the magnet. The rated current of the magnet in the link is 0.25A, but if the magnet had an inductance of, say, 200mH then you'd only get about half that current through it if driving it with 12V at 200Hz.
 
the inductance of the electromagnet
The inductance depends on how close other metal is to the electromagnet. I have some solenoids where the inductance varies a lot from open to closed.

"Inductance" is the effect where when you apply 12V to the coil, the current goes up to the rated amount slowly. The "speed" of getting the current up is directly related to voltage.
Because I am a hardware engineer I would use a hardware fix not a software fix. (you can do this in software) I would use a current mode PWM IC. It could put 24 volts across the coil (100%) until the current reaches the correct amount. Then it will back the duty cycle down to 50% to hold the current there. This will cut the delay in half. It will not make a piece of metal move faster, but it speeds up the time to turn on the magnet.

Turn off time. Again the inductance will fight you. It will cause the magnet to release slowly. Most people put a diode across the coil. This causes the current to reset back to zero at a speed of 0.7 volts. (much slower than 12 volts) I build a fancy circuit that lets the reverse voltage get to 12V, or 24V or 50V so the release time is much faster than the usual 0.7V. (only used where speed maters)

Bottom line is that electromagnets are slow and voltage gets them up and running faster.
If you want to move a piece of metal faster it just takes power. If I remember right the coil is rated for 3 watts all day long. So you might get away with 6 watts for a short time and them let the coil rest for a long time.
 
Maybe a bit late, but I've just looked up this solenoid driver I designed a while back (I used it as a pen pick-up on a plotter). It implements what Ron is describing above: PWM current control, using the inductance of the solenoid, with a high pick-up current and a lower holding current. Don't know it it's of interest, but it might give you some ideas.
I've just noticed that there is a freewheeling diode across the solenoid missing - I suspect that in my build I installed it at the solenoid itself, and so it didn't make it into the schematic.
 

Attachments

  • solenoid drive.pdf
    5.2 KB · Views: 281
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top