digitalRead als Text ausgeben

Hallo,

ich möchte den Zustand der LED als Text ausgeben. Leider ist die Ausgabe immer "AUS". Ich habe auch andere Varianten ausprobiert und das Ergebnis ist (fast) immer gleich. Da ich noch NEU bin, denke ich, das es etwas grundlegendes ist.
Anbei ein Auszug vom Programm:
...
digitalWrite (ledPin, HIGH);
if (digitalRead(ledPin ==HIGH))
lcd.print("AN");
else
lcd.print("AUS");

delay (2000);

digitalWrite (ledPin, LOW);
if (digitalRead(ledPin ==HIGH))
lcd.print("AN");
else
lcd.print("AUS");

delay (2000);

Für eure Hilfe wäre ich dankbar.

Bohemia

Hoi,
tausch doch nal die Woerter An und Aus aus :slight_smile:

Ein paar kleine Fehler schau mal hier
bei einem if wird die nachfolgende funktion immer ausgeführt wenn das ergebniss 1 ist
also kannst du es so machen wie im beispiel nur den digitalRead (da er nur 0 oder 1 ist) oder ausführlich auf den Zustand vergleich ==1 ==0 oder == !HIGH oder == !LOW

digitalWrite (ledPin, HIGH);
  if (digitalRead(ledPin ==HIGH))  // hier flasch if(digitalRead(ledPin)) wäre hier richtig oder   
                                               // (digitalRead(ledPin) ==HIGH) <== Klammer Falsch
    lcd.print("AN");
  else
    lcd.print("AUS");
   
  delay (2000);
 
  digitalWrite (ledPin, LOW);
  if (digitalRead(ledPin ==HIGH))  // Genauso
    lcd.print("AN");
  else
    lcd.print("AUS");
   
  delay (2000);

Gruß
Der Dani

Hallo,

vielen Dank euch beiden. Das war hilfreich!

Bohemia

Hallo Bohemia,

außerdem hast du die if und bei else die geschwungenen Klammern vergessen, damit wird immer lcd.print("AN"); ausgeführt.
Gruß Ardubu

Ich denke du hast die Klammer in den If Anweisungen falsch gesetzt:
if (digitalRead(ledPin ==HIGH))

du willst aber bestimmt:
if (digitalRead(ledPin) ==HIGH)

Gruß
Jarny

Edit
Mist, Fehler wurde ja schon gepostet :fearful:

Hallo Bohemia,

außerdem hast du die if und bei else die geschwungenen Klammern vergessen, damit wird immer lcd.print("AN"); ausgeführt.
Gruß Ardubu

Nicht korrekt ohne schweifende Klammer wird nur die nächste Zeile nach der If-Bedinung unter diese Bedingung gestellt. Wenn man mehr als 1 Zeile unter die Bedingung stellen will sind die schweifende klammern erforderlich.
Gruß
DerDani

danke Dani, wieder was dazu gelernt.

Hallo,

könnte ich nicht die Ausgabe in eine Variable schieben und diese dann zur Textausgang heranziehen?
Das ist doch bestimmt weniger Schreibarbeit, besonders wenn mehrere Pins abgefragt werden?

Bohemia

könnte ich nicht die Ausgabe in eine Variable schieben und diese dann zur Textausgang heranziehen?
Das ist doch bestimmt weniger Schreibarbeit, besonders wenn mehrere Pins abgefragt werden?

'türlich :smiley: