Controlling electromagnet.for inlet timing on steam engine.

Hi,
I want to turn 6 electromagnets on and off to control the inlet timing on a steam engine I am building, I have the magnets, 12volt 5 watt's each. There will be 2 or possibly 3 briefly turned on at once and I wish to vary the length of the time energised and also vary the position in the cycle they energise to control the power and speed of the engine. I have a good mechanical understanding but little knowledge of electronics, I imagine I will need a optical shaft encoder and a potentiometer but have no idea about the circuitry needed to control it all, any help gratefully accepted.
Thanks
Kris

I know nothing about using magnets in steam engines.

Pick one magnet. When do you turn it on and when do you turn it off? How do you know when to turn it on and when to turn it off? How frequently do you need to turn it on and turn it off? For how long does it stay on and then off?

How would you do it mechanically? With a cams tied to the crankshaft to operate the valves. The optical encoder gives you crankshaft position. The Arduino knows where in the cycle the crank is and opens or closes the valves in time. Since they are either energized or not energized (no reversing polarity) you can use a simple MOSFET switch on each valve to control them. I would look for an encoder that has one channel of say 500 to 1000 pulses per rev and a "home" channel that is one pulse per rev (TDC). Is the pot for speed control?

Presumably these solenoids have to turn off fast as well as turn on fast to
meet the timing requirements - this suggests modifying the normal flyback
diode protection circuit to be a flyback diode in series with a zener diode
to allow faster magnetic field collapse.

thanks for the replies, what I am doing is copying an idea used by Dan Gelbart on a steam engine he demonstrates on You Tube; this is the address, Dan's Uniflow Steam Engine - YouTube the page is called Dan's Uniflow Steam Engine, if you look at this it will show what I am trying to do. I I originally found it on Wikipedia, but the page has now been removed. I had had planned to use a mechanical system and I had already designed my own exhaust valve in the piston crown operated by the connecting rod movement and was going to have a mechanically operated inlet valve, but on seeing the method Dan Gelbart had used decided to employ a similar one still using my exhaust valve and using it it open the inlet valve then using the electromagnet to time the opening period. Thinking about it, I can not alter the position in the cycle that it opens as it is opened mechanically by the exhaust valve just before TDC, it is just the period that it remains open that would control power and speed of the engine. I do not plan to run a high RPM possibly 1000 RPM max but preferably around 4 or 5 hundred RPM. I am looking at an optical shaft encoder on ebay with this specification:
Encoder 600P/R Incremental Rotary Encoder
DC5-24V voltage power supply
Speed: more than 5000 r / min
Shaft: 6mm/0.23" Dia, 13mm/0.51" Length
Size: 39mm/1.53" Dia, 36.5mm/1.43" Length
Output: AB 2phase output rectangular orthogonal pulse circuit, the output for the NPN open collector output type

I do not know if switching on and off up to 1000 times a minute counts as fast, I doubt it, the potentiometer is to control the opening length of the electromagnet. Groundfungus has said I need a simple MOFSET switch, but could you possibly give a little more info, I really know little or nothing of electronics, the diagram posted by MarkT means absolutely nothing to me, but I am trying to learn. What type of Arduino circuit do I need.
I know this probably a very simple task for most of you guys, but for me it is something totally new and difficult so all help is greatly appreciated.
Thanks

There is a good reason why nobody has built a car or a steam engine using solenoids to actuate the valves - it doesn't work ! Maybe it will work on a really slow steam engine. The problem is making a mechanism that will exert enough force to actuate the valve, with sufficient low inertia that it can be actuated open and closed fast enough.

michinyon:
There is a good reason why nobody has built a car or a steam engine using solenoids to actuate the valves - it doesn't work ! Maybe it will work on a really slow steam engine.

It can be done for a few hundred RPM (which admittedly is slow) - all you need is something like a propane solenoid valve; 1000 RPM would probably be the top end.

There's an instructable out there that shows how to build a simple single-acting steam engine using a 2-cycle engine (like from a chainsaw or weedeater); the guy basically replaced the spark plug with the valve, plugged up the intake, and put a bicycle tire on the crankshaft for a flywheel. He then mounted a magnet to the edge of the tire, and used a reed switch to actuate the solenoid.

From the video it worked rather well; timing was changed by varying the position of the reed switch in relation to the wheel (altering when the valve opened before/after TDC). He speculated on using the magneto coil system to fire the valve as well (likely a better solution).

The only real problem I could see with the whole system was that he used compressed air to run the contraption; if you used steam, and blow-by past the rings (and heck, possibly even during the "exhaust" portion) would get into the crankcase and condense - eventually leading to contaminated oil that would turn into pudding and bring the engine to a halt. Maybe if some other kind of lubricant were used (dry or maybe liquid silicone?) it wouldn't be a big deal.

There seems to be some sort of confusion as to what I want to do. Work on the engine is quite far along, but nowhere near finished. I have finished the crankcase, pistons, connecting rods, all machined from solid, and cleaned up the cylinders from seamless stainless tube.I am about to start work on the mechanical parts of the inlet valve. I have attached some photo's one showing pistons one with the exhaust valve in situ and the other showing the holes in the piston crown, there is also a con rod showing the cam end that will open the exhaust valve in the piston, the tip of the exhaust valve will then bash open the inlet valve at TDC (apparently this method of operating is called a bash valve) which will be attached to the head, to keep the inlet valve open as the piston descends to allow steam to enter the cylinder I will use an electromagnet. I know I could use a reed switch or some other proximity device to control the electromagnet, but I want to be able to vary the length of time the magnets are energised to control the speed and power of the engine. What I want to know is what sort of Arduino circuit would be needed to read the signal from the optical shaft encoder and use it to energise and de-energise the electromagnets, varying the length of time possibly using a potentiometer. My idea is to build the engine and test it on compressed air, if it works then I will start to build a steam generator and condenser. To get to that stage I need some advice (help) to work out the electronics needed, so if there is anybody who could advise me in simple language, because I am totally clueless in this field I would greatly appreciate it. If you need any further info just ask me.

michinyon:
There is a good reason why nobody has built a car or a steam engine using solenoids to actuate the valves - it doesn't work ! Maybe it will work on a really slow steam engine. The problem is making a mechanism that will exert enough force to actuate the valve, with sufficient low inertia that it can be actuated open and closed fast enough.

Did you look at the video? That engine was running at 3,000 RPM and was capable of 6,000 RPM. Mind you, in that steam engine the solenoid was only used as a valve release, not actuator.

However full electromagnetic valve actuation is coming. See this site: 404 Page - LaunchPoint EPS

As long as you are using mechanical means, i.e. using the piston, to actuate the valves and springs to return them as Dan Gelbart does, then this is quite possible. You would need a shaft encoder that provides the Arduino with pulses to count so that it can determine the angle of rotation and therefore determine when to release the magnet, and a separate pulse (or different duration pulse) to tell it where to start counting from. The resolution (pulses per revolution) of the shaft encoder will be important. It needs to be high enough to give you the level of control, in degrees of revolution, that you want.

[Edit] I would not use a reed switch to determine TDC. Better ideas would be:

A shaft encoder like this would be ideal: http://www.torquesystems.com/incremental_encoder_rs23.cfm

Here is one on eBay: DATA TECHNOLOGY INC OPTICAL ENCODER RS23 600 40 5 371 for sale | eBay But I don;t know the resolution of that one. I suspect 600cycles per rev, but could be wrong.

yes I am opening the inlet valve mechanically at TDC exactly as Dan Gelbart does, and am only using the magnets to keep the valve open for the inlet cycle. My engine is 6 cylinder with a swept volume of 30 cc per cylinder, Dan's appeared to be much smaller and only single cylinder, so I am hoping for low speed high torque. I have just purchased a 600 pulse per rev optical encoder on ebay;
http://www.ebay.co.uk/itm/281232555011?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649
can I buy an Arduino off the shelf to do the job or does it have to be programmed by me somehow, sorry I really am new to electronics, One of the posts said I could turn the magnets on and of with a MOSFET switch, I have found some on ebay is there any particular sort I need the magnets are 12 volt dc 5watts each

That shaft encoder does not have an index pulse, so you'll need to provide one. I'd suggest the disk with a single hole.

You will need to program the Arduino, or you might be able to pay someone to do it if you don;t want to learn how.

I think this is a case where you'll need to learn to walk before you run. Get the Arduino and try some of the many thousands of simple (and published) projects to get your feet wet. A MOSFET is what you'd need to control the magnets. You would need a N-channel Logic level MOSFET capable of about 10 amps (if you don't want to use a heat sink) and a low as possible on resistance. IF I were you I'd google "using a MOSFET with Arduino" and start reading up about MOSFETs in general.

OK thanks, I will start to do some research and purchase an Arduino, is it any Arduino or there different types.