У меня есть 4 переменные, которые будут заполнены, если все числа в пределах определенного диапазона, то они находятся в мертвой зоне. Если хотя бы один из них находится вне диапазона, вызывается оператор else.
Моя проблема в том, что иногда, когда все числа находятся в диапазоне, возникает оператор else, и я не уверен, почему.
boolean isPushed(int x1, int y1, int x2, int y2)
{
//460 TO 533 is the deadzone
//joysticks must be outside of this range to be considered pushed
boolean pushed;
int minZone = 420;
int maxZone = 533;
Serial.println("*****************");
if ((analogRead(X_pin_1) >= minZone && analogRead(X_pin_1) <= maxZone) &&
(analogRead(X_pin_2) >= minZone && analogRead(X_pin_2) <= maxZone) &&
(analogRead(Y_pin_1) >= minZone && analogRead(Y_pin_1) <= maxZone) &&
(analogRead(Y_pin_2) >= minZone && analogRead(Y_pin_2) <= maxZone))
{
Serial.println("NOT PUSHED. Inside deadzone.");
pushed = false;
}
else
{
pushed = true;
Serial.println("PUSHED");
Serial.print("X1 = ");
Serial.println(analogRead(X_pin_1));
Serial.print("Y1 = ");
Serial.println(analogRead(Y_pin_1));
Serial.print("X2 = ");
Serial.println(analogRead(X_pin_2));
Serial.print("Y2 = ");
Serial.println(analogRead(Y_pin_2));
}
return pushed;
}
Например, это один из выходов:
*****************
PUSHED
X1 = 495
Y1 = 481
X2 = 478
Y2 = 530
***************
Скажите, пожалуйста, почему!