Go Down

Topic: Auto tennis ball shooter code help (Read 870 times) previous topic - next topic

BurtonCustomX

The machine has a very odd behavior of instead of waiting for the VEX limit switch (http://www.vexrobotics.com/276-2174.html) to give the HIGH signal and spin the motors full forward for 5 seconds, it simply spins full forward immediately and if the limit switch is tripped for 5-6 seconds the motors stop till the switch is released. Anyone know whats wrong????

Code: [Select]

#include <Servo.h>

Servo Victor;


const int LimitSwitch = 2;


void setup()  // This runs once, at startup
{
  pinMode( LimitSwitch, INPUT);
  Victor.attach(9);
}


void loop()  // This loop runs over and over
{

  Victor.writeMicroseconds(1500); // Turn the shooter off


  if( digitalRead(LimitSwitch) == HIGH)  // If the limit switch is pressed
  {
     Victor.writeMicroseconds(2000); // Turn the shooter on
     delay (5000); // Timer for ball to shoot
  }


}

johnwasser

Sounds like your limit switch might be Active Low:  It signals LOW when pushed and HIGH when not pushed.
Send Bitcoin tips to: 1L3CTDoTgrXNA5WyF77uWqt4gUdye9mezN
Send Litecoin tips to : LVtpaq6JgJAZwvnVq3ftVeHafWkcpmuR1e

BurtonCustomX

I'll give that a try later tonight. If not, what else could it be?

johnwasser

The description in the link you supplied says it's Active LOW:

"Switch Type: SPDT microswitch, configured for SPST Normally Open behavior. Behavior: When the limit switch is not being pushed in, the sensor maintains a digital HIGH signal on its sensor port. This High signal is coming from the Microcontroller. When an external force (like a collision or being pressed up against a wall) pushes the switch in, it changes its signal to a digital LOW until the limit switch is released. An unpressed switch is indistinguishable from an open port."

This also indicates you need a pull-up resistor.  Either mount one externally or use the internal one by changing:
Code: [Select]
  pinMode( LimitSwitch, INPUT);
to
Code: [Select]
  pinMode( LimitSwitch, INPUT_PULLUP);

If you don't have a pull-up resistor you may get random LOW indications when the switch is not pressed.
Send Bitcoin tips to: 1L3CTDoTgrXNA5WyF77uWqt4gUdye9mezN
Send Litecoin tips to : LVtpaq6JgJAZwvnVq3ftVeHafWkcpmuR1e

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy