Pneumatics Rapid firing?

There is lots of crowd-sourcing answers that you won’t get by your posting in the official answers thread, https://vexforum.com/showthread.php?t=66952
so I copied your post here.

Loose jiggly wires seem like one possibility.
RobotC code that is insufficient to handle the communications is another likelyhood.
Consider this:
What value and type does VexRT[ch5] return?
What values and type does Sensor Digitial Out expect?

Button debounce, input rate filtering, output rate filtering, or other input qualifications are concepts you might try implementing in the code, when you are getting outputs that are too rapid to make sense.

UnforseenGamer ; Junior Member ; VEX # 1615a wrote

This situation reminds me of an issue I had with my robot and a potentiometer. What else is in the sensor port bank?

If the digital/analog ports short in any way (which can happen when the pot is over-extended), the pneumatics fire. When un-shorted (don’t think that’s a word), they return to their prior position. Mine would fire about 15 times/sec…

//Andrew

In the old remote control, the buttons in the back returned values of 0, 127, and -127. Now I’m guessing here, but perhaps setting the value of the solenoids to 127 is sending a pwm pulse that causes the rapid fire? I don’t really know how ROBOTC handles the digital outputs though. How about trying:


while(true){
  if(vexRT[Ch5] == 127){
    SensorValue[leftSolenoid] = 0;
    SensorValue[rightSolenoid] = 0;
  }else{
    SensorValue[leftSolenoid] = 1;
    SensorValue[rightSolenoid] = 1;
  }
}

Its almost certainly a loose wire if there is no programming explanation to the problem. This has happened to me loads of times, and every time the plug to the microcontroller is sitting out a little. Another possibility is a damaged cable or extension cable, which also happened to me.

1 Like

It could possibly be a programming issue. It would be helpful if the OP posted their code.

“There is lots of crowd-sourcing answers that you won’t get by your posting in the official answers thread,”

^^Noted.

The solution to this problem I found was the RF receiver antenna resting on metal. Once I reduced the contact between the metal and antenna and brought it out the open, I never experienced that problem again

As for code, I can post it next time I get my hands on a school computer if anybody still wants me too. From memory, I think I had an encoder in 8, more encoders in 15&16 and solenoids in 9&10.

I believe how the solenoids react to signals are anything that is not 0 it will fire. For instance, setting the solenoid for 127 and -127 will have the same effect of firing the piston, while 0 will un-fire it, so I assume the program is out of the question

I had an idea to average out the results (ie if you get 10 signals, (0, 0, 1, 0, 0, 0, 1, 0, 0, 0), don’t fire since you get more 0’s the ones, instead of firing twice), but that could cause small delays between when you do want to fire and un-fire(depending on how much you wanted to average)

Thanks!