|
|
|
![]() |
|
|||||||
|
||||||||
|
|
Thread Tools | Rate Thread | Display Modes |
|
#3
|
|||
|
|||
|
Re: Solenoid and compressor help
Sorry i will post there but for the sake of perhaps using some of your expertise i will post the code here aswell can you take a look?
#include "WPILib.h" //#DEFINE FIRST_SOLENOID 1 class RobotDemo : public SimpleRobot { RobotDrive myRobot; // robot drive system Joystick stick; // only joystick Victor Victor1; Victor SFX_Shooter1_Victor3; Victor SFX_Shooter2_Victor4; Relay SFX_Loader_Victor5; Relay SFX_Tiltmotor; //spike connected to motor DigitalInput DigitalInput_High; DigitalInput DigitalInput_Low; /* Solenoid Sole1; Compressor Compress; */ //Solenoid Solenoid1; float Shoot1_Victor3_float; float Shoot2_Victor4_float; float Loader_Victor5_float; public: RobotDemo(void): myRobot(1, 2), // these must be initialized in the same order stick(1), // as they are declared above. Victor1(1), SFX_Shooter1_Victor3(3), SFX_Shooter2_Victor4(4), SFX_Loader_Victor5(3), SFX_Tiltmotor(1), DigitalInput_High(1), DigitalInput_Low(2), //Solenoid1(3) //Relay_Solenoid(2) Sole1(4,4), Compress(3,3) { myRobot.SetExpiration(0.1); } /** * Drive left & right motors for 2 seconds then stop */ void Autonomous(void) { /* myRobot.SetSafetyEnabled(false); myRobot.Drive(-0.5, 0.0); // drive forwards half speed Wait(2.0); // for 2 seconds myRobot.Drive(0.0, 0.0); // stop robot */ SFX_Shooter1_Victor3.Set(1.0); SFX_Shooter2_Victor4.Set(1.0); } /** * Runs the motors with arcade steering. */ void OperatorControl(void) { myRobot.SetSafetyEnabled(true); Compress.Start(); while (IsOperatorControl()) { myRobot.ArcadeDrive(stick); // drive with arcade style (use right stick) //Victor1.Set(1.0); //Shoot1_Victor3_float = 1.0; //Activates shooter at full speed with button 1 if(stick.GetRawButton(1)== 1){ SFX_Shooter1_Victor3.Set(1.0); SFX_Shooter2_Victor4.Set(1.0); } else{ SFX_Shooter1_Victor3.Set(0.0); SFX_Shooter2_Victor4.Set(0.0); } //Actvates loader at full speed with button 2 if(stick.GetRawButton(2)==1){ SFX_Loader_Victor5.Set(Relay::kOn); }else{ SFX_Loader_Victor5.Set(Relay::kOff); } //Activates tilt in either forward or reverse dependant on button and sensor if((stick.GetRawButton(4)==1)&& (DigitalInput_High.Get()==0)) { SFX_Tiltmotor.Set(Relay::kForward); //SFX_Tiltmotor.Set(Relay::kOn); }else if((stick.GetRawButton(5)==1) && (DigitalInput_Low.Get()==0)) { SFX_Tiltmotor.Set(Relay::kReverse); //SFX_Tiltmotor.Set(Relay::kOn); } else{ SFX_Tiltmotor.Set(Relay::kOff); } /* if(stick.GetRawButton(6)==1){ //Solenoid1.Set(True); Relay_Solenoid.Set(Relay::kForward); Relay_Solenoid.Set(Relay::kOn); }else{ Relay_Solenoid.Set(Relay::kOff); }*/ if(stick.GetRawButton(7)==1){ Sole1.Set(TRUE); }else{ Sole1.Set(FALSE); } // link //SFX_Shooter1_Victor3 = Shoot1_Victor3_float; Wait(0.005); // wait for a motor update time } void Test() { } }; START_ROBOT_CLASS(RobotDemo); |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|