Fehler bei Code für Luftfahrwerksteuerung

Ich denke das Problem ist Deine komische Schachtelung, die nicht zielführend ist.
Ich sage Dir, Du hast Dich mit den if/if/if/ Ebenen verhauhen:


void loop()
{
  int sensor = analogRead(A0);
  float voltage = sensor * (5 / 1023.00);
  //Serial.println(voltage);
  int sensor1 = analogRead(A1);
  float voltage1 = sensor1 * (5 / 1023.00);
  //Serial.println(voltage1);
  if (irrecv.decode(&results))
  {
    Serial.println(results.value, DEC);
    if (results.value == 16724175) //<- !!!
    {
      if (voltage < 1.6)
      {
        digitalWrite (8, HIGH);
        Serial.println ("Auf vorne");
        delay(500);
        irrecv.resume();
      }
    }
  }
  if (results.value == 16724175) //<- !!!
  {
    if (voltage1 < 1.6)
    {
      digitalWrite (7, HIGH);
      Serial.println ("Auf hinten");
      delay(500);
      irrecv.resume();
    }
  }
  if (voltage > 1.6)
  {
    Serial.println ("OK vorne");
    digitalWrite(8, LOW);
    delay(500);
  }
  if (voltage1 > 1.6)
  {
    Serial.println ("OK hinten");
    digitalWrite(7, LOW);
    delay(500);
  }
  if (results.value == 16738455)
  {
    if (voltage > 1.6)
    {
      digitalWrite (9, HIGH);
      Serial.println ("Ab vorne");
      delay(500);
      irrecv.resume();
    }
    if (voltage < 0.3)
    {
      Serial.println (voltage);
      digitalWrite(9, LOW);
      delay(500);
    }
    if (results.value == 16738455)
    {
      if (voltage1 > 1.6)
      {
        digitalWrite (6, HIGH);
        Serial.println ("Ab hinten");
        delay(500);
        irrecv.resume();
      }
      if (voltage1 < 0.3)
      {
        Serial.println (voltage);
        digitalWrite(6, LOW);
        delay(500);
      }
      irrecv.resume();
    }
  }
}

Schau Dir an, wo sich die Abfragen in welcher Einrückung befinden.
Das ist nicht manuell gemacht, sondern Dein Code mit STRG-T.

1 Like