# help programmig doble solenoids

Ok i have one more question on the programing the double solinoid

this is what i have

relay1_fwd = p3_sw_trig; //lower arm extend double solenoid
relay1_rev = p3_sw_top; //lower arm retract double solenoid
relay2_fwd = p3_sw_aux1; //upper arm extent double solenoid
relay2_rev = p3_sw_aux2; //upper arm retract double solenoid
//relay3_fwd
//relay3_rev
//relay4_fwd
//relay4_rev
relay5_fwd = p4_sw_aux1 //lift plate up festo solenoid
relay5_rev = p4_sw_aux2 // lift plate down festo solenoid

ok will this work or will it cuase it to keep going one way and back the other way. If so how would i code this. Thanks

If you set them equal to each other, it will fire only if the button is pressed continuously. If you instead put them into if statements, all will resolve!
Please note, the festo is not a double, red code reflects change.

``````if(p3_sw_trig)
{
relay1_fwd = 1;
relay1_rev = 0;
}
if(p3_sw_top)
{
relay1_fwd = 0;
relay1_rev = 1;
}

if(p3_sw_aux1)
{
relay2_fwd = 1;
relay2_rev = 0;
}
if(p3_sw_aux2)
{
relay2_fwd = 0;
relay2_rev = 1;
}

if(p4_sw_aux1) relay5_fwd = 1;
if(p4_sw_aux2) relay5_fwd = 0;
``````

Another way to decrease the amount of triggers used and make it easier for the operator, have the same button do both actions by

a) setting flags and then using if statements
b) declaring a bool, using logical operators
c) writing an abs function and using a

``````relay = abs(relay - 1);
``````

will this code still make the festo work properly. Thank you guys for all the help

You’re not giving enough information for us to know what you think “work properly” means.

A double solenoid will switch states when a control signal is applied, and will stay in its current state when the signal is removed. If you wire it properly and simply copy OI button inputs to RC relay outputs, you can use one button to make the solenoid switch one way, and another button to make it switch the other way.

A Festo solenoid will sit in one state when the control signal is absent, and will go to the other state only while the signal is applied. If you wire it properly and simply copy OI button inputs to RC relay outputs, you can use one button to hold the solenoid on; releasing that button will make the solenoid turn off again.

The code posted by dm0ney does not simply copy OI button inputs to RC relay outputs. It interprets OI button inputs as desired actions and controls the RC relay outputs to cause those actions. If you don’t press both buttons simultaneously, the double solenoid part of the code has the same effect as your code. The Festo part turns it on when p4_sw_aux1 is pressed and leaves it on when the button is released, and it turns it off when p4_sw_aux2 is pressed and leaves it off when the button is released.