Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   C/C++ (http://www.chiefdelphi.com/forums/forumdisplay.php?f=183)
-   -   Solenoid Breakout (http://www.chiefdelphi.com/forums/showthread.php?t=83800)

mrmummert 02-03-2010 19:32

Solenoid Breakout
 
wiring of the solenoid valves is proper, i do not know if the breakout is using 24 volt power as opposed to 12, however, when defining the Solenoids as such:


Sol1 = new Solenoid(1);


should the word Solenoid(after new) be recognized and highlighted or does it remain unlighted. as well as, why would windriver not recognize the joystick command for GetRawButton. It recognizes everything but GetRawButton, therefore, it does not work i must use GetTrigger or GetTop.

Ex. if(rightStick.GetRawButton(4))
{Sol1 -> Set(true);}

Radical Pi 02-03-2010 22:14

Re: Solenoid Breakout
 
I have found Wind River is a little buggy when it comes to some of the functions for highlighting. As long as the code compiles it is fine

mikets 02-03-2010 22:58

Re: Solenoid Breakout
 
How did you declare and instantiate rightStick? If you dynamically instantiate it such as:
Code:

Joystick *rightStick = new Joystick(n);
Then you should be doing:
Code:

if (rightStick->GetRawButton(4))
{Sol1->Set(true);}


mrmummert 03-03-2010 19:47

Re: Solenoid Breakout
 
I declared it as

rightStick(1, 3, 11),
leftStick(2, 3, 11),
....


also is this stated properly for victors?

if ......
{victor1.Set(1.0);}

nighterfighter 03-03-2010 20:44

Re: Solenoid Breakout
 
What is with the 2,3,11?

I've always just used (1),(2),(3), etc and it has worked fine.

And you cant JUST say rightStick(1). It needs to be declared as a joystick somewhere.

Ex:
Code:


#include "WPILib.h"


class Aweseome1610Robot: public SimpleRobot
{
        RobotDrive myRobot; // robot drive system
        Joystick leftStick;
        Joystick rightStick;
        Victor victorOfDoom;



public:
        Aweseome1610Robot(void)
                : myRobot(1, 2)        // left side, right side
                , leftStick(1)
                , rightStick(2)
                , victorOfDoom(5) //Victor of Doom is on PWM slot 5
        {
                GetWatchdog().SetEnabled(false);
        }

        void RobotMain(void)
        {
                while (true) //Bad practice, dont do that. :P
                {

                  if(rightStick.GetRawButton(1) //Trigger
                  {
                  victorOfDoom.Set(leftStick.GetThrottle());
/*Drive the Victor based on the leftSticks throttle, because the Set function accepts a Float value, and GetThrottle returns a float. */
                  }
                }
        }

       
};

START_ROBOT_CLASS(Aweseome1610Robot);


mikets 03-03-2010 22:02

Re: Solenoid Breakout
 
Quote:

Originally Posted by mrmummert (Post 931141)
I declared it as

rightStick(1, 3, 11),
leftStick(2, 3, 11),
....


also is this stated properly for victors?

if ......
{victor1.Set(1.0);}

You are declaring the joysticks as having 3 axes and 11 buttons and on port 1 and 2 respectively. That looks fine. I checked the wpi library source code and it should work. There must be something else in your code that is interfering. My experience with robot programming is that you can stare at a segment of code and it looks perfectly fine but it is other part of the code that was the problem. For example:
Code:

if (rightStick.GetRawButton(4))
{
    Sol1->Set(true);
}
...
...
// A long way down the code if you have:
Sol1->Set(false); // This will negate what you were trying to do.

In the past, we had code to run the motors but the motors were not running. We even put some print statement in the code to make sure the code to turn the motor on was executed but the motors were still not running. It turns out some function call soon after was turning off the motors immediately. This is just to demonstrate when you have a problem that doesn't make sense, look wider.


All times are GMT -5. The time now is 13:46.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi