Светодиод Arduino не горит должным образом - PullRequest
0 голосов
/ 21 октября 2019

Я делаю проект с помощью джойстика Arduino, и я сделал светодиод включенным в двух случаях: если вы потянете ручку вверх и влево, я заметил, что если я потяну ее влево, светодиод загорится минимально, если я потяну ручкудо загорается нормально. Кто-нибудь знает почему? Я использую джойстик, входящий в комплект Arduino / Genuino Uno

void pinLight(int pin1, int pin2) { // Switches 2 pins on
   digitalWrite(pin1, HIGH);
   digitalWrite(pin2, HIGH);
}
void pinDark(int pin1, int pin2) { // Switches 2 pins off
   digitalWrite(pin1, LOW);
   digitalWrite(pin2, LOW);
}

int Xpin = A0;
int Ypin = A1;
int Xval, Yval;

void setup() {
    for (int i = 2; i < 13; i++) {
       pinMode(i, OUTPUT);
    }

    Serial.begin(9600);
    pinMode(Xpin, INPUT);
    pinMode(Ypin, INPUT);
}

void loop() {
    Xval = analogRead(Xpin);
    Yval = analogRead(Ypin);

    delay(20); // Used for debug
    Serial.println(Xval);
    Serial.println(Yval);

    // Slightly turned right
    if (Xval < 420) {
       pinLight(8, 9);
    } else {
        pinDark(8, 9);
    }
    // Slightly turned left
    if (Xval > 550) {
      pinLight(6, 7);
    } else {
      pinDark(6, 7);
    }

    // Slightly turned up
    if (Yval < 506) {
      pinLight(7, 9);
    } else {
      pinDark(7, 9);
    }

    // Turned left
    if (Xval < 10 && Yval > 90) {
       digitalWrite(12, HIGH);
    } else {
       digitalWrite(12, LOW);
    }

    // Turned right
    if (Xval > 1010) {
        pinLight(3, 11);
    } else {
        pinDark(2, 3);
    }
    // Turned up
    if (Yval < 10) {
      pinLight(5, 11);
    } else {
      pinDark(5, 11);
    }

}
...