One pneumatic piston fires slower than the other?

We are trying to install 2 pneumatic pistons on to our hand. It seems that when going out, one piston has a delay of about 1 second. When going in, both pistons fire in unison. Is anyone else experiencing this issue, and are there any solutions? Thanks!

Video:

Single action? Double action?

Are you using the flow control valve.

Are they adjusted to be the same?

We have double action and we are using the flow control valve. We do have them adjusted to the exact same spot, but regardless this issue was occurring before we adjusted them.

First, make sure there is no obvious friction or something stopping the mechanism.

If not:

  1. Take off the flow control valves and put on normal ones and see if it still does it. If it does, you might have a slightly bent or damaged piston.

  2. Take off the piston and hook it up directly to a tank (no cortex needed) to see if the piston is damaged. You would feel something wrong when pushing it in and out under low pressure.

Also, it might be the setup of your tubing (air can only flow through the pressure regulator in one direction if I remember correctly).

Unfortunately we don’t have any extra normal valves. How would you set up step 2? We currently have the tank going to a t-splitter and from there to the piston, and nothing is happening.

There’s now a video in the original post, if anyone’s interested.

Is it always the same piston no matter what you switch?

  1. Flow control valves
  2. Tubing from the T-split
  3. Ports (if you’re using two solenoids)
  4. The other set of valves (since it’s a double acting solenoid)

Also maybe post your code?

Any chance it’s the code?

We use easyC

Sorry, I can’t get a physical picture of the code, hope you can decipher what is what. Everything is in here, down to the single comments.

The variables are: Int ClampOpenButton
Int ClampCloseButton

The pneumatic ports are Digital 1 and 2

[Begin] void OperatorControl ( unsigned long ulTime )
|
[Variables]
|
[While]--------------{] while (1) // Insert Your RC Code Below
| | |
| | ClampOpenbutton = GetJoystickDigital (1,8,3);
| | |
| | ClampCloseButton = GetJoystickDigital (1,8,1);
| | |
| | --------{] if (ClampOpenButton == 1)
| | | |
| | | SetDigitalOutput (1,1);
| | | |
| | -----------}]
| | |
| | [ELSEIF]----- {] else if ( ClampCloseButton == 1)
| | | |
| | | SetDigitalOutput (1,0);
| | | |
| | -----------}]
| | |
| | ClampOpenbutton = GetJoystickDigital (1,8,3);
| | |
| | ClampCloseButton = GetJoystickDigital (1,8,1);
| | |
| | --------{] if (ClampOpenButton == 1)
| | | |
| | | SetDigitalOutput (2,1);
| | | |
| | -----------}]
| | |
| | [ELSEIF]----- {] else if ( ClampCloseButton == 1)
| | | |
| | | SetDigitalOutput (2,0);
| | | |
| | -----------}]
| | |
| -----------------}]
|
[END]

When I uploaded that last reply, all of the spaces were taken out so now it looks bad, I’m going to work to get a better image.

Why aren’t you just using the blocks for this? EasyC has all of this pre-programmed. You don’t need to use variables to make pistons fire.

I posted instructions on how to post EasyC code a couple of days ago.

https://vexforum.com/showpost.php?p=329490&postcount=15

So have you set both digital port1 and digital port 2 as outputs in controller configuration? Default for those ports are inputs.

I don’t see anything wrong with the code but it could be simplified, no need to read the buttons twice, no need to do the tests twice.

#include "Main.h"

void OperatorControl ( unsigned long ulTime )
{
      int ClampOpenbutton; 
      int ClampCloseButton; 

      while ( 1 ) // Insert Your RC Code Below
            {
            ClampOpenbutton = GetJoystickDigital ( 1 , 8 , 3 ) ;
            ClampCloseButton = GetJoystickDigital ( 1 , 8 , 1 ) ;
            if ( ClampOpenButton == 1 )
                {
                SetDigitalOutput ( 1 , 1 ) ;
                SetDigitalOutput ( 2 , 1 ) ;
                }
            else if ( ClampCloseButton == 1 )
                {
                SetDigitalOutput ( 1 , 0 ) ;
                SetDigitalOutput ( 2 , 0 ) ;
                }
            Wait ( 50 ) ;
            }
}

Unfortunately, easyC does not have blocks for pneumatics.

He probably means

JoystickToDigitalLatch ( 1 , 8 , 1 , 1 ) ;

but that uses one button to set the output to “1” on the first push and then to “0” on the next push.

Yeah, that or JoystickToDigitalOutput, which keeps the Pneumatic expanded/compressed until you press the button, and then immediately resets when you let go.

are both pistons running off of the same solenoid? sorry if you said this already but i didn’t see it.

The pistons are running off of two solenoids.

does it make a difference if you switch the pistons between the 2 solenoids?

If it does i would switch the driver cables and see if it is the drivers that are the problem. we have had a couple fail in our club…

Other wise if they are still different(the same one is slower) then i would suspect that there is something wrong with the piston.

From the video it is pretty clear that it is not a mechanical or flow valve issue. I would try putting them on the same solenoid and see what happens.

We did not have any extra t-splitters so instead we just switched the solenoids of each piston. The piston that is now running off the solenoid that was on the delayed piston before is now delaying. We have determined that one of the solenoids is in fact having a slower reaction time. Thanks for all your help guys!