Wenn Schalter 1 leuchtet, soll Schalter 2 nicht mehr leuchten

Hey Leute,

ich habe grade mit Arduino angefangen, um langsam programmieren zu lernen. Nach ein paar Anfänger Tutorials habe ich ein erstes Projekt gestartet: Ich möchte einen Buzzer wie bei Spielshows bauen. Bin mittlerweile soweit, dass ich jeweils zwei Tasten habe, die jeweils eine Lampe bei Betätigung zum leuchten bringen. Jetzt möchte ich, dass wenn Taste 1 gedrückt ist, ein Druck auf Taste 2 nicht mehr die Lampe zum leuchten bringt und umgekehrt. Wie kann ich das machen?
Unten befindet sich mein Code zur besseren Verständlichkeit, vielen Dank schon mal!

int Schalter;
int Schalterx;

void setup() {

Serial.begin(9600);
pinMode(2,INPUT);
pinMode(13,OUTPUT);

Serial.begin(9600);
pinMode(8,INPUT);

}

void loop() {

Schalter = digitalRead(2);
Serial.println(Schalter,DEC);

Schalterx = digitalRead(8);
Serial.println(Schalterx,DEC);

if(Schalter == 1)
{
 digitalWrite(13,HIGH);
 digitalWrite(10,LOW);         ------------------------------- das war mein Versuch, dieses Problem 
}                                                                                  zu lösen, klappt leider nicht:D   

if(Schalter == 0)
{
 digitalWrite(13,LOW);

}

if(Schalterx == 1)
{
 digitalWrite(10,HIGH);
}

if(Schalterx == 0)
{
 digitalWrite(10,LOW);
}
}

Willst vielleicht mal Arduino: Buzzer-Buttons für 4 Spieler - Finite State Machine lesen wie man das lösen könnte? Nur so als Idee...

Dein Sketch ist leider kaputt, daher:

Setze den bitte in Code-Tags.

Verwende dazu die Schaltfläche </> oben links im Editorfenster.
Das kannst du auch nachträglich machen.
Dazu den Sketch markieren und die Schaltfläche klicken, oder [code] davor und [/code] dahinter ohne *.

Damit wird dieser für alle besser lesbar.

Du mußt Pin 10 schon auch definieren.

Uwe hat es ja schon geschrieben.
Pin D10 ist nicht als Ausgang definiert.
Allerdings fehlt da noch die gegenseitige Verriegelung.
Dazu musst du den Zustand des anderen Tasters auch abfragen.

(deleted)

HotSystems:
Dazu musst du den Zustand des anderen Tasters auch abfragen.

Sicher?

Ich würde den Zustand der anderen Ausgabe abfragen.
etwa so:

  if (Schalter == 1 && digitalRead(10) == LOW) // Wenn LED von 2. Taste nicht an, mache bei gedrückter Taste LED an
  {
    digitalWrite (13, HIGH);
  }

  if (Schalter == 0)
  {
    digitalWrite (13, LOW);
  }

  
  if (Schalterx == 1 && digitalRead(13) == LOW) // Wenn LED von 1. Taster aus   
  {
    digitalWrite (10, HIGH);
  }
  if (Schalterx == 0)
  {
    digitalWrite (10, LOW);
  }

Und ja - Pin 10 sollte als Ausgang definiert werden, sonst gibt es wieder die Frage, warum die LED dauerhaft halb hell glimmt :wink:

my_xy_projekt:
Ich würde den Zustand der anderen Ausgabe abfragen.

Klar, auch das ist möglich. Kommt immer drauf an wie der TO das machen möchte. :wink:

Danke erstmal für die vielen Antworten, hab diese Woche leider keine Zeit mehr für das Projekt, werde eure Tipps dann nächste Woche alle einarbeiten und dann berichten!

bigfoot99:
Danke erstmal für die vielen Antworten, hab diese Woche leider keine Zeit mehr für das Projekt, werde eure Tipps dann nächste Woche alle einarbeiten und dann berichten!

Ok, dann sind wir alle mal gespannt auf dein Ergebnis.