how do you define the ir board commands in the program.
this is what we have but we don’t know if it is right
#define IRswitch1
#define IRswitch2
#define IRswitch3
#define IRswitch4
or can someone post how they defined the IRswitch?
how do you define the ir board commands in the program.
this is what we have but we don’t know if it is right
#define IRswitch1
#define IRswitch2
#define IRswitch3
#define IRswitch4
or can someone post how they defined the IRswitch?
You need to use #define to assign a value to the IRswtich things. They are only placeholders, the compiler will go through and replace all “IRswitch1” with whatever you put after it. So it would like:
#define IRswitch1 rc_dig_in01
#define IRswitch2 rc_dig_in02
#define IRswitch3 rc_dig_in03
#define IRswitch4 rc_dig_in04
Assuming you used those four for your IR wiring. And then to use them:
if (!IRswitch1) //If the IR has been pressed
auto_routine_1(); //Do whatever when switch is down
}
Just as an example, here’s how we defined it:
// IR Inputs
#define IR_DIG_1 rc_dig_in07
#define IR_DIG_2 rc_dig_in08
#define IR_DIG_3 rc_dig_in09
#define IR_DIG_4 rc_dig_in10
// IR Values
#define IR_DISCONNECTED (IR_DIG_1 && IR_DIG_2 && IR_DIG_3 && IR_DIG_4)
#define IR_1 (IR_DIG_1 && !IR_DISCONNECTED)
#define IR_2 (IR_DIG_2 && !IR_DISCONNECTED)
#define IR_3 (IR_DIG_3 && !IR_DISCONNECTED)
#define IR_4 (IR_DIG_4 && !IR_DISCONNECTED)
That way you won’t get confused when the IR board is out.
We NOT our digital ins right there at the macro. Like what psy_wombats said, but I think that it reads better in the if statements. Digital inputs become false when the circuit is closed. =)
#define IRswitch1 !rc_dig_in01
That’s correct for switches or “open-collector output” sensors that complete a connection to ground. But the IR sensor is not that kind of circuit. It provides a logic level output, with the digital input resting at zero and going to one when the signal is recognized.