I am trying to finish up some last minute code for our robot and am at a loss for the 24V solenoid provided in the KOP (At least last year). Its double acting and I grasp how it works, but I cant find any documentation on how to program that partiucular solenoid.
I grasp the concept of saying
Solenoid s1 = new Solenoid(8,1);
Solenoid s2 = new Solenoid(8,2);
to initialize the two halves of the double solenoid (with 4 pins plugged into the I/O board)
But how to set which one turns on in code is bewildering to me…as it doesnt appear to be as easy as
if (buttonPressed == true)
{
s1.Set(0);
s2.Set(1);
}
else
{
s1.Set(1);
s2.Set(0);
}
Any pointers on what I’m doing wrong?
Hi John,
You have the right idea with the programming.
We had a method like this for activating pneumatics
void ActivatePneumatics(Joystick *currStick, int buttonNum, int SolenoidNumberTurnOn, int SolenoidNumberTurnOff){
if(currStick->GetRawButton(buttonNum)){
m_solenoids[SolenoidNumberTurnOff]->Set(false);
m_solenoids[SolenoidNumberTurnOn]->Set(true);
When one action happens, turn on set of solenoids on and another off.
When we wanted to activate something using this method we structured it like this
ActivatePneumatics(m_rightStick, BUTTON_MINIBOT_OUT, SOLENOID_MINIBOT_OUT, SOLENOID_MINIBOT_IN);
Also, we established variables that represented the various buttons we would press in order to do turn on the various solenoids. You should design something like this that fits your needs
static const int SOLENOID_MINIBOT_OUT = 1;
static const int SOLENOID_MINIBOT_IN = 2;
static const int SOLENOID_CLAW_OPEN = 7;
static const int SOLENOID_CLAW_CLOSE = 8;
static const int BUTTON_MINIBOT_OUT = 6;
static const int BUTTON_MINIBOT_IN = 7;
static const int BUTTON_CLAW_OPEN = 1;
static const int BUTTON_CLAW_CLOSE = 2;
static const int NUM_SOLENOIDS = 8;
Solenoid *m_solenoids(NUM_SOLENOIDS+1)];
I hope that helps. Do you have any more questions?
So on the 24V double solenoid valve it’s as easy as “true false”? I thought that there were Stations for it like “set_forward” or something similar.