/*
Forum: https://forum.arduino.cc/t/ampelschaltung-mit-taster-funktioniert-nicht/1368673
Wokwi: https://wokwi.com/projects/426873776267268097
ec2021
2025/03/30
*/
int t;
int a;
int b;
void setup() {
// Hier fehlte die Initialisierung der seriellen Schnittstelle
Serial.begin(115200);
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
pinMode(9, INPUT_PULLUP);
delay(100);
}
void loop() {
t = digitalRead(9);
Serial.println(t);
//if (t == LOW); { // Dieses If endet bereits mit dem Semikolon zwischen der runden und der geschweiften Klammer
// Damit wird alles zwischen den folgenden geschweiften Klammern ausgeführt, unabängig von t
// So geht's besser:
if (t == LOW) {
for (a = 13; a >= 11; a = a - 1) {
digitalWrite(a, HIGH);
delay(2000);
digitalWrite(a, LOW);
}
for (b = 11; b <= 13; b = b + 1) {
digitalWrite(b, HIGH);
delay(2000);
digitalWrite(b, LOW);
}
}
//while (t == HIGH) {} // Hier kommt der Sketch (wenn t gleich HIGH ist) nicht wieder heraus,
// da der Wert von t sich nicht mehr ändert!
// Man muss t innerhalb der Klammern aktualisieren
while (t == HIGH) {
t = digitalRead(9);
}
}