const int buttonPins[] = {6, 7, 8, 9}; // Array der Taster-Pins
const int ledPins[] = {2, 3, 4, 5}; // Array der LED-Pins
const int numButtons = 4; // Anzahl der Taster (und LEDs)
int buttonStates[] = {0, 0, 0, 0}; // Zustände der Taster speichern
int lastButtonPressed = -1; // Speichert den zuletzt gedrückten Taster
void setup() {
for (int i = 0; i < numButtons; i++) {
pinMode(buttonPins[i], INPUT); // Taster Pins als Eingänge
pinMode(ledPins[i], OUTPUT); // LED Pins als Ausgänge
digitalWrite(ledPins[i], LOW); // Alle LEDs ausschalten
}
}
void loop() {
for (int i = 0; i < numButtons; i++) {
int buttonState = digitalRead(buttonPins[i]); // Lese den Zustand des Tasters
if (buttonState == HIGH && buttonStates[i] == LOW) { // Wenn der Taster gedrückt wurde
if (lastButtonPressed != i) { // Wenn es ein anderer Taster ist
for (int i = 0; i < numButtons; i++) {
digitalWrite(ledPins[i], LOW); // Schalte alle LEDs aus
}
digitalWrite(ledPins[i], HIGH); // Schalte die entsprechende LED an
} else { // Wenn es der gleiche Taster ist
digitalWrite(ledPins[i], !digitalRead(ledPins[i])); // Toggle den Zustand der LED
}
lastButtonPressed = i; // Aktualisiere den zuletzt gedrückten Taster
}
buttonStates[i] = buttonState; // Aktualisiere den Zustand des Tasters
}
delay(150); // Kurze Verzögerung, um Prellen zu vermeiden
}