OR Problem

Hallo Arduino Community

void loop() {
  if(digitalRead(receiver_pin1) == HIGH && digitalRead(lichtschranke1) == LOW) {
    
    state = 1;
  }

switch (state) {
  case 1:
      Serial.println("auf");
      if(digitalRead(lichtschranke1) == HIGH || digitalRead(receiver_pin1) == HIGH)
      {
        state = 2;
      }

Bei den folgenden Code geht es um das OR Statement im case 1 beim if.
In case 1 komme ich ohne Probleme hinein.

bei if(digitalRead(lichtschranke1) == HIGH || digitalRead(receiver_pin1) == HIGH)

ist das Problem das die if Abfrage nur erfolgreich ist und zu case 2 wechselt wenn lichtschranke1 auf HIGH ist. Wenn jedoch der receiver_pin1 auf HIGH geht passiert garnichts und das Programm bleibt weiter im case 1

irgendwelche Lösungsvorschläge?

mfg

Vermutlich wird jedesmal am Anfang von loop() state=1 gesetzt.

Außerdem fehlt vielleicht noch break am Ende eines case.

Weil er wohl durch deine verwurschtelte if-Abfrage nicht in die case-Abfrage gelangt.

danke jetzt fällts mir auch auf :slight_smile:

break ist drin, die zeile wurde nur nicht mitkopiert :slight_smile:

@HotSystems wie meinst du das?

Da du nur Fragmente postest, ist das schwer zu beschreiben.
Aber DrDiettrich hat es schon auf den Punkt gebracht.

Oder das ist ein Fehler den du uns verheimlichst.