/*Aufgabe 1: LED-Steuerung mit Tasten
Beschreibung: In dieser Aufgabe sollen mehrere LEDs je nach der gedrückten Taste eingeschaltet werden. Es gibt drei Tasten, die jeweils eine LED ansteuern. Jede Taste ist mit einem digitalen Pin des Arduino verbunden, und das Programm soll das switch-case-Statement verwenden, um die LEDs basierend auf der gedrückten Taste zu schalten.
Anforderungen:
Der Arduino hat 3 Tasten, die an die Pins 2, 3 und 4 angeschlossen sind.
Der Arduino hat 3 LEDs, die an die Pins 8, 9 und 10 angeschlossen sind.
Wenn die Taste auf Pin 2 gedrückt wird, soll die LED auf Pin 8 leuchten.
Wenn die Taste auf Pin 3 gedrückt wird, soll die LED auf Pin 9 leuchten.
Wenn die Taste auf Pin 4 gedrückt wird, soll die LED auf Pin 10 leuchten.
Wenn keine Taste gedrückt wird, sollen alle LEDs ausgeschaltet bleiben.
Lösungsidee: Verwenden Sie das switch-case-Statement, um zwischen den Tasten zu unterscheiden und die LEDs entsprechend ein- oder auszuschalten.
*/
int button1 = 2; // Taster 1 an Pin 2 //VERBESSERUNG: #define füe die ersten 6 Zeilen
int button2 = 3; // Taster 2 an Pin 3
int button3 = 4; // Taster 3 an Pin 4
int led1 = 8; // LED 1 an Pin 8
int led2 = 9; // LED 2 an Pin 9
int led3 = 10; // LED 3 an Pin 10
void setup() {
pinMode(button1, INPUT); //VERBESSERUNG: INPUT-PULLUP verwenden
pinMode(button2, INPUT);
pinMode(button3, INPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
}
void loop() {
int buttonState = 0;
if (digitalRead(button1) == HIGH) { //VERBESSERUNG: bei dem internen Pullup-Widerstand müsste
buttonState = 1; // hier aber auch high zu low geändert werden, da
} // pegel umgekehrt
else if (digitalRead(button2) == HIGH) {
buttonState = 2;
}
else if (digitalRead(button3) == HIGH) {
buttonState = 3;
}
// Switch-Case-Statement für LED-Steuerung
switch (buttonState) {
case 1:
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
break;
case 2:
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
break;
case 3:
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, HIGH);
break;
default:
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
break;
}
}