Frage Serielen Monitor

Hallo,
erst mal vorneweg ich bin Arduino Einsteiger, fange also gerade damit an.
Nun zu meinem Problem. Da ich noch ziemlich am Anfang stehe hab ich einfach mal das "Blink" Programm aus dem Examples Ordner genommen und ein bisschen Modifiziert. Dabei wollte ich das der Status der Led, also an oder aus, auf dem Seriellen Monitor dargestellt wird. Mein Programm Sieht folgendermaßen aus:

int LED = 13;
int val = 0;

void setup()
{
  pinMode(LED, OUTPUT);
  Serial.begin(9600);
}

void loop()
{
  digitalWrite(LED, LOW);
  delay(500);
  digitalWrite(LED, HIGH);
  delay(500);
  
  val=digitalRead(LED);
  if (val==HIGH){
    Serial.println("Led leuchtet");
  }
  else
  {
    Serial.println("Led leuchtet nicht");
  }
}

Mein Problem ist nur das der Serielle Monitor nur den Zustand "Led leuchtet" ausgibt.
Wo liegt der Fehler?

Gruß Kevin

Hallo

Bin ebenfalls Neuling, kann dir da aber wahrscheinlich weiterhelfen. :slight_smile:

Das Problem ist, dass du die LED immer zuerst ausschaltest, dann wieder einschaltest und erst dann überprüfst du welchen Status sie hat. Ergo ist sie immer auf An.

Ich denke du willst eher sowas:

void loop()
{
  // status der led auslesen
  val = digitalRead(LED);
  
  if (val==HIGH){
    // wenn led an, wird sie wieder ausgeschaltet
    Serial.println("Led leuchtet");
    digitalWrite(LED, LOW);
  }
  else
  {
    // wenn led aus, wird sie wieder eingeschaltet
    Serial.println("Led leuchtet nicht");
    digitalWrite(LED, HIGH);
  }
  
  // 0.5 sekunden warten
  delay(500);
}

Du schaltest die LED aus und wieder ein. Anschließend frägst Du den Zustand ab. Merkst Du was? Warum sollte eine "LED aus" Meldung kommen?