Probleme beim Programmieren der If Funktion!!

hi,

Ich habe das Problem das in meinem Code die if Klammern nacheinander aktiviert werden ohne das die Buttons gedrückt werden müssen, also die Aktivierung der if klammer nicht geschieht und der und der Inhalt der if klammer ausgeführt wird.

Kann mir jemand helfen, ich habe erst frisch angefangen Programmieren zu lernen.

7_Lichter.ino (7.11 KB)

Ich verstehe kein Wort.

Beschreibe mal in ganz normalen Worten was dein Programm machen soll.
Was kann Lieschen Müller beobachten wenn dein Programm korrekt laufen würde?

viele Grüße Stefan

jonx311:
hi,

Ich habe das Problem das in meinem Code die if Klammern nacheinander aktiviert werden ohne das die Buttons gedrückt werden müssen, also die Aktivierung der if klammer nicht geschieht und der und der Inhalt der if klammer ausgeführt wird.

Kann mir jemand helfen, ich habe erst frisch angefangen Programmieren zu lernen.

Erstens:
Wenn ein if Block ausgeführt wird, obwohl du das nicht willst, dann hast du ein Problem mit der Bedingung.
Denn if tut das, was es tun muss, nicht was du dir wünscht.

Zweitens:
Mir scheint, du hast die Pulldown vergessen.
Darum schweben die Eingänge, und liefern, ab und zu, auch mal High oder eben auch mal Low.

tasterstatus1=digitalRead(taster1);
  if (digitalRead(tasterstatus1) == HIGH);{
  1. Du liest den Zustand aus einem Eingang und liest dann den Zustand aus dem Pin das dem Zustand entspricht.
    Im If liest Du aus den Pin 0 und 1 nicht aus dem taster1-Pin.

  2. Die If bedingung hört mit dem ";" auf. Alles was in den Geschweiften Klammer steht ist nicht an das if gebunden sondern wird immer ausgeführt.

Grüße Uwe

uwefed:
Uwe

Hast Wahr!
(ist mir ja glatt durch die Lappen gegangen)

Hallo,

ein Minimalbsp. für den TO. Dafür muss der Taster nur zwischen µC Pin und Masse geklemmt werden. Zusätzlich wird der interne Pullup im µC aktiviert.

const byte taster = 36;
const byte pinLed = 32;

void setup (void)
{
  pinMode(taster, INPUT_PULLUP);
  pinMode(pinLed, OUTPUT);
}

void loop (void)
{
  if (!digitalRead(taster))
  {
    digitalWrite(pinLed, HIGH);
  }
  else
  {
    digitalWrite(pinLed, LOW);
  }
}

Für die Codeorgie könnte sich der TO ein Array und/oder struct ausdenken, wenn er mit der Tasterabfrage klargekommen ist.

combie:
Hast Wahr!
(ist mir ja glatt durch die Lappen gegangen)

die Tomaten von vorhin? :wink: :wink: :wink:
Grüße Uwe

(deleted)

uwefed:
die Tomaten von vorhin? :wink: :wink: :wink:

Andere!
Allerdings von vergleichbarer Qualität.

Respekt, eine gute Parade.

Also ein gutes Tomatenjahr heuer.

Grüße Uwe

Yes!
Hochsaison.
:smiling_imp: