I'm looking at connecting up some pneumatic cylinders to an Arduino for control, my only question is, is there a way to get position control somehow?
Could I create a feedback system for position control, say I had 2 potentiometers, one connected to the Arduino and another connect to a arm so that the second potentiometer rotates when the arm is moved with the cylinder.
So I would turn the potentiometer connected to the arduino and then tell the Arduino to activate the cylinder until the potentiometer connected to the arm reaches the same value then stop the cylinder. Would this work? Do pneumatic cylinders stay in it's fixed position if the valves are closed; for example the cylinder rod is moved until it reaches half way and then close the valves, does it retain it's position and holding force?
Or would I need to use something like PWM switching to switch the valves on and off to retain it's position (I know it would probably control speed as well) I also recognize this may be a bit noisy, lol.
I know I could use linear actuators as well however I require a high speed and want a high amount of force. I believe pneumatic cylinders could provide this with the disadvantage of some complication.
Well, think about the cylinder. If the valves are closed and you built it successfully without leaks, why would it move? If the load changes, yes it will move. If you are holding a robot arm up in the air and it doesn't get heavier or lighter, then it won't move.
Linear actuators are much simpler, but less compact. They often include a position sensor too. Pneumatics can also be purchased with linear sensors but the prices go out of the amateurs budget very quickly.
Alexisa:
Do pneumatic cylinders stay in it's fixed position if the valves are closed; for example the cylinder rod is moved until it reaches half way and then close the valves, does it retain it's position and holding force?
Yes and No,
A liquid filled cylinder like a hydraulic cylinder will keep its position and cannot be compressed. A pneumatic cylinder will hold its position if the force remains constant, otherwise it behaves like a spring as the gas can be compressed and change volume with physical pressure.
Depending on the precision required, bear in mind temperature changes will also affect the gas pressure in the cylinder.
So it will not hold its position under changing loads ( but will only move small amounts) but will if its holding a static load. (edit : basically what MorganS said)
Also I assume in order to get control of air in 2 directions I need two solenoid valves? So that I can switch one on and one off and alternate them to switch direction or to stop air I can close both?
Or would it be better to get a 3 way solenoid valve, which I believe has neutral, exhaust and pressure? I've seen three way solenoid valves with manual buttons: none pressed-ports, closed 1 pressed-exhaust, the other pressed-pressure, would I have to hack the button or do you guys have a link to a 3 way solenoid valve I can connect to Arduino easily?
I've seen some two way solenoid valves but I assume they do not have the ability to stop air? and only the ability to push air in either direction so the pneumatic cylinder is either extended or not, giving no control?
A 3-position valve UP-STOP-DOWN will have two solenoids. You need two solenoid drivers such as MOSFETs or relays.
Two 2-position valves can be plumbed to do exactly the same thing. This gives you more flexibility, so these solenoids are much more common. I still have difficulty finding them as they're not really hobbyist items and only show up in serious industrial controls which run on 24V or whatever.
Ok cool. One last thing.
I've seen people utilising snubber circuits or snubber diodes for solenoid valves due to inductivity and especially in quick switching operation, they have also been using relay's not mosfet's or transistors like I plan to (by the way is a transistor better for solenoid power switching? I read somewhere than mosfets are good for switching for high voltages and transistors for high current? which is faster?) I don't really want to have to use a relay
So my setup would be an arduino controlling 2 mosfets or transistors(depends on my above question) which is switching the solenoid valve connected to the pneumatic cylinder
Would I need to use a snubber diode or snubber circuit for either slow or rapid switching?
I also read that a snubber diode may be a bit slow for rapid switching(even schotty diode).
So would it be ideal for me to add a snubber circuit (or diode)? or is there no need?