Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Electrical (http://www.chiefdelphi.com/forums/forumdisplay.php?f=53)
-   -   Wiring the IR Receiver (http://www.chiefdelphi.com/forums/showthread.php?t=62606)

chattycat14 28-01-2008 18:08

Re: Wiring the IR Receiver
 
We're having a problem, we get a response from the IR board saying that the digital input has a value of 1 when it should be a 0. What should we do?

ham90mack 28-01-2008 18:32

Re: Wiring the IR Receiver
 
Make sure you are using either the 12 volt robot battery or the digital input power pins (which use the robot battery), otherwise the signal is not being grounded properly.

chattycat14 28-01-2008 18:37

Re: Wiring the IR Receiver
 
Quote:

Originally Posted by ham90mack (Post 687540)
Make sure you are using either the 12 volt robot battery or the digital input power pins (which use the robot battery), otherwise the signal is not being grounded properly.

Under the online window it changes from 0 to 1 when the button is pressed, but when the actual program is downloaded it retains the value of 1.

RyanN 28-01-2008 22:09

Re: Wiring the IR Receiver
 
Quote:

Originally Posted by chattycat14 (Post 687543)
Under the online window it changes from 0 to 1 when the button is pressed, but when the actual program is downloaded it retains the value of 1.

Online window??? Anyway, here is the code we're using. It has some safety built in, and shows the state on the OI.

Code:

//Variables should be declared at the beginning at the program
int mode = 0; //Set it to zero so the robot won't move!
int modea;
int irerror;
int errorloop;



//Switches off all the LEDs on the OI
Switch1_LED = 0;
Switch2_LED = 0;
Switch3_LED = 0;
Relay1_red = 0;
Relay2_red = 0;
Relay1_green = 0;
Relay2_green = 0;
Pwm1_green = 0;
Pwm2_green = 0;
Pwm1_red = 0;
Pwm2_red = 0;
/*The following code will check to make sure the IR sensor is not malfunctioning,
or it is not disconnected, as no more than one button can be triggered at a time.*/
mode = 0; //If there is no signal from the IR board later in the code, then disable the robot
irerror = 1;
if ((rc_dig_in03 + rc_dig_in04 + rc_dig_in05 + rc_dig_in06) < 3)
{
        irerror = 0; //Tells the disable program that there is no error detected
        if (rc_dig_in03 == 1)
        {
                modea = 1;        //Set to Mode 1 (1st button)
        }
        if (rc_dig_in04 == 1)
        {
                modea = 2;        //Set to Mode 2 (2nd button)
        }
        if (rc_dig_in05 == 1)
        {
                modea = 3;        //Set to Mode 3 (3rd button)
        }
        if (rc_dig_in06 == 1)
        {
                modea = 0;        //EMERGENCY STOP (4th button)
        }
        mode = modea;
}
//The following are the certain autonomous programs
//Each mode acts like a different program. 

if (mode == 1) //Mode 1
{
        printf("Mode 1 %d\r");
        Switch1_LED = 1;
//Put your custom programming here, this will execute when the first button is pressed                       
}




if (mode == 2) //Mode 2
{
        printf("Mode 2 %d\r");
        Switch2_LED = 1;
//Put your custom programming here, this will execute when the second button is pressed
}





if (mode == 3) //Mode 3
{
        printf("Mode 3 %d\r");
        Switch3_LED = 1;
//Put your custom programming here, this will execute when the third button is pressed
}

 


//Leave the following code at the very end of the autonomous cycle, so it is sure to execute when and if it is needed.
if (mode == 0) //EMERGENCY STOP
{
        printf("Mode: Disabled %d\r");
        pwm01 = pwm02 = pwm03 = pwm04 = pwm05 = pwm06 = pwm07 = pwm08 = 127;
          pwm09 = pwm10 = pwm11 = pwm12 = pwm13 = pwm14 = pwm15 = pwm16 = 127;
        relay1_fwd = relay1_rev = relay2_fwd = relay2_rev = 0;
        relay3_fwd = relay3_rev = relay4_fwd = relay4_rev = 0;
        relay5_fwd = relay5_rev = relay6_fwd = relay6_rev = 0;
        relay7_fwd = relay7_rev = relay8_fwd = relay8_rev = 0;       
        //The following code shows all the red lights
        //on the OI to tell the drivers that the autonomous
        //has been disabled
        Pwm1_red = 1;
        Pwm2_red = 1;
        Relay1_red = 1;
        Relay2_red = 1;
        if (irerror == 1) //If the IR has an error, then flash
        {
                printf("IR Sensor Problem, Check connection %d\r");
                errorloop++;
                if (errorloop > 5)
                {
                        Pwm1_red = 0;
                        Pwm2_red = 0;
                        Relay1_red = 0;
                        Relay2_red = 0;
                }
                if (errorloop > 9)
                {
                        errorloop = 0;
                }
        }

}

I think I took all of our personal, never to be seen code out, and I think I have all the variables declared in the beginning. I give the right for any team to use this, and I give no warranty. If it does not work, you can PM me, and I can try to help. I will not help with any of your personal programming though.

PS: We have tried this on our robot, and it works great! So I encourage any teams that aren't very programming savvy to try to use this to at least do something.

chattycat14 29-01-2008 18:42

Re: Wiring the IR Receiver
 
hey,
we have easy c, so if anyone could help then it would be appreciated.


All times are GMT -5. The time now is 07:55.

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