Proper way to connect a solenoid

If you’re using valves that aren’t the typical FRC type (like sprinkler valves), I’d recommend using a spike relay instead of the solenoid module/breakout. Then you would use the relay class/vi instead of the solenoid one when you program it.

Like Daniel said, you should start by seeing if it’s working. You don’t need to connect the solenoid to a battery for that.
If you look at the solenoid, you should find that it has to small buttons on top. Pressing them triggers the solenoid, there’s one button in charge of opening each output. Note, this only works when the system is pressurized and there’s no place for the air to escape through other than the solenoid’s release openings. Leaks won’t interfere with the test as long as they’re not huge, so don’t worry about making it super-secure (save your teflon for the actual system). I can’t find a photo right now, I’ll keep looking.
Hook it up to a system with a piston (one input tube coming from the compressor, either directly or through a regulator, two output tubes, one to each side of the piston). Start the compressor with a battery. When it’s pressurized, press a button and see if the piston works. If not, press the other. If it still doesn’t work, you have a faulty solenoid.

As for wiring, it’s usually best to use the cRIO’s relay module like parth suggested. You can use a spike if you want, but then you have to have one for each side so you can both open and close. You’d still have to wire both sides with the cRIO, but it’s way easier since both connections are already there. Make sure you got polarity right! Polarity is confusing in solenoids, more than other electrical components you often use.

Could you post a picture of the system? Maybe there’s a problem we can’t find with your description, but we could see in a picture.

Most sprinkler valves I have seen are 24v AC (Alternating Current) like the power in your house. The robot runs on 12V DC, and the power distribution board also has a 24V DC power supply built in to run the cRio.

I did do some searching around, and it appears that there are AC valves that actually work with DC, but may or may not work with the valve you have. (http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=75553)

(Remember applying voltages to components outside their specifications you are risking failure, and if on a production bot, would not pass inspection) This is not a smart decision, but it may work.

So you can test straight with 12v or 24v dc power and see if it works, if it does, then you can look at making it work from the bot.

As for wiring with a spike, review team 358 documents here. http://team358.org/files/pneumatic/Pneumatics-StepByStep-cRIOversion.pdf

I could cut and paste the diagram here, but they have done the hard work and deserve the credit. :slight_smile:

Also, is there some time of sensor that gives feedback on what psi the compressor is at? We want to be able to adjust how far we can shoot the shirts by changing how much pressure is in the tanks.

I can say that the solenoid does work, we were able to fill up the air tanks with the compressor, and fire a t-shirt a very good distance by connecting the solenoid directly to a battery

I’ve found out that it is in fact a 24v valve, what would you guys suggest based on that?

As far as I know, there’s no way of getting 24V except hogging the cRIO’s power, and I wouldn’t suggest that. Is there a way for you to get a 12V one?

If you were able to successfully operate the valve using the KoP 12V battery, you should be able to do it with a spike relay, wired the same way your compressor is set up.

From the link I posted, they were talking that they were reliably firing the solenoids with 9vdc batteries, so I would wire it with a spike to the 12v battery. Let it run, and monitor how warm it gets, just to watch for early failure.

Not sure how much to spend on an analog pressure sensor, but we use these in industry. http://www.ifm.com/products/us/ds/PN2024.htm with good success.

As of right now we’re open to anything. We’re actually planning on building 4 cannons, but we only have one right now. If its possible we would like to get the 24v one working though

Working with the 24V isn’t different than 12V, and like Scott said, if it worked with the battery it’ll work on the robot. The thing is since you’re not using the solenoid’s specifications it might fail or work poorly. Also, it’s bad practice to not supply the component’s specifications, that’s why I suggested getting another.

Other than the tips in my original post, there’s not much I can say, based on your description. Do you think you could post a picture of the system you built?

Do you guys know of a way to use a non spike relay on the bot? We only have two working ones and one is on the compressor, we want to have 4 cannons and our team is short on cash so we really don’t want to spend the $35 for each new spike

I won’t be able to post a picture today because I don’t have access to the robot right now. It’s at another members house,I’ll ask him to post one later today

In terms of code, I am using Java commandbase. I have “public static Relay cannon = new Relay(4);” in RobotMap. I also have a command setup to fire. In the initialize i’m doing “RobotMap.cannon.set(Relay.Value.kOn);” where cannon is the name of the Relay and RobotMap is the place where it is defined. I can verify that the command is running because I have a debug statement which is printing when I push the button to run it.

Using kOn is turning both sides of the relay on, which won’t cause the solenoid to fire. You want to use kForward which sets the + side to 12v and the - side to ground.

Alternately, you can set the direction to forward in the constructor and then use kOn.

I’m reading that spikes can only switch 12v, which is why I believe that it didn’t work for us.

You mentioned earlier, and I’m reading here http://team358.org/files/pneumatic/ that 24v solenoids can be run through the cRIO power. Are you familiar with how this is done?

Sorry, I forgot to mention that after kForward didn’t work I switched it to kOn. Thank you though, I will change it back now

oOPS Double post.

But you said the valve worked by direct connecting to the battery, so it should work with the spike connected to 12v power.

I understand you don’t want to use the spikes due to the cost, and if you need 4 of them. Why I suggested them, is they are very robust, and fused, which is nice when you are putting stuff together outside of specifications.

This diagram, http://team358.org/files/programming/ControlSystem2009-/setup/2011PowerDistributionDiagram.pdf shows two solenoid cards, one is powered by 24vdc and one is powered by 12vdc.

As you already stated that 12vdc worked, I would suggest that you wire to 12v to test, this is because we are working outside of specs, and if something goes, you may blow the 24vdc power supply in the power distribution board, and the cost money too.

Here is the manual to the solenoid breakout, http://www.usfirst.org/sites/default/files/uploadedFiles/Robotics_Programs/FRC/Game_and_Season__Info/2012_Assets/Solenoid%20Breakout.pdf You will need a 2 pin pwm cabel, wired to the solenoid + to + ground to ground. When you turn on the output in the program the solenoid will fire with the voltage that you apply to power input terminals.[/quote]

The 24 volt AC sprinkler valves that we used would not work on 12 VDC with pressure. They need about 18 volts to fire. You may have a similar issue.

You should connect them to the pneumatic breakout with that module being powered with 24 VDC as shown in the diagram Scott linked to in the thread above this.

We have done this for several years and it works fine.

Attached is an updated version of the same drawing. It shows how to get power for a 24 volt solenoid and this is even legal. Your circuit is fully protected.

I would suggest installing diodes across the coil to absorb the back EMF from the coil. Here is a link that explains. You can leave out the resistor.

You should see the green lights on the module change when you trigger the valve. Remember, you need a short pulse, about 0.5 second is good, so your code will need to make that pulse with a small state machine or you could just connect it to a button on the joystick and let the operator create the short pulse.

Have fun!

-Hugh

2011 Robot_data_power_ Power Dist 2011 (24V) (1).pdf (270 KB)


2011 Robot_data_power_ Power Dist 2011 (24V) (1).pdf (270 KB)