Hi,
A little bit of help needed here. The if statement in this loop is very stuborn… it executes even though it is blatantly false… There is a variable issue thing hidden somewhere in here but I can’t seem to find it… All of these variables have been initiated as int and equel to zero. Anyone?
void loop() {
Throttle = analogRead(Xpin); // read the input pin
ThrottleMap = map(Throttle, 0, 1023, 0, 180);
Turn = analogRead(Ypin); // read the input pin
TurnMap = map(Turn, 0, 1023, 0, 180);
if (abs(ThrottleMap-OldThrottleMap) >5 || abs(TurnMap-OldTurnMap) >5); {
Serial.println("TRUE");
HC12.print('<');
if (ThrottleMap < 10) { HC12.print("00");} // Two Leading zeros
else if (ThrottleMap > 10 && ThrottleMap < 100) { HC12.print("0");} // One Leading zero
HC12.print(ThrottleMap); //HC12.print(TurnMap);
if (TurnMap < 10) { HC12.print("00");} // Two Leading zeros
else if (TurnMap > 10 && TurnMap < 100) { HC12.print("0");} // One Leading zero
HC12.print(TurnMap); //HC12.print(TurnMap);
HC12.print('>');
Serial.print("abs(ThrottleMap-OldThrottleMap: ");Serial.print(abs(ThrottleMap-OldThrottleMap));Serial.print("\t\t");
Serial.print("abs(TurnMap-OldTurnMap: ");Serial.println(abs(TurnMap-OldTurnMap));
Serial.print("ThrottleMap: ");Serial.print(ThrottleMap); Serial.print("\t\t");Serial.print("OldThrottleMap: ");Serial.println(OldThrottleMap);
Serial.print("TurnMap: ");Serial.print(TurnMap); Serial.print("\t\t");Serial.print("OldTurnMap: "); Serial.println(OldTurnMap);
OldThrottleMap = ThrottleMap;
OldTurnMap = TurnMap;
}
delay(2000);
}
Attached is my debugging “window”…
Thanx!