// Pin Definitionen
const int Fuss1Rot = 1;
const int Fuss1Gruen = 2;
const int Auto1Rot = 3;
const int Auto1Gelb = 4;
const int Auto1Gruen = 5;
const int ButtonPin = 6;
// Variablen für den Button-Status
int buttonState = 0;
void setup() {
// Pins als Output definieren
pinMode(Fuss1Rot, OUTPUT);
pinMode(Fuss1Gruen, OUTPUT);
pinMode(Auto1Rot, OUTPUT);
pinMode(Auto1Gelb, OUTPUT);
pinMode(Auto1Gruen, OUTPUT);
pinMode(ButtonPin, INPUT);
// Initialzustand der Ampeln
digitalWrite(Fuss1Rot, HIGH);
digitalWrite(Fuss1Gruen, LOW);
digitalWrite(Auto1Rot, LOW);
digitalWrite(Auto1Gelb, LOW);
digitalWrite(Auto1Gruen, HIGH);
}
void loop() {
// Button-Status lesen
buttonState = digitalRead(ButtonPin);
// Wenn der Button gedrückt wird
if (buttonState == HIGH) {
autoToRed();
delay(2000); // Verzögerung bevor Fußgänger Grün wird
fussToGreen();
delay(5000); // Grün für Fußgänger bleibt 5 Sekunden
fussToRed();
delay(2000); // Verzögerung bevor Auto Grün wird
autoToGreen();
}
}
void autoToRed() {
digitalWrite(Auto1Gruen, LOW);
digitalWrite(Auto1Gelb, HIGH);
delay(2000); // Gelb für 2 Sekunden
digitalWrite(Auto1Gelb, LOW);
digitalWrite(Auto1Rot, HIGH);
}
void fussToGreen() {
digitalWrite(Fuss1Rot, LOW);
digitalWrite(Fuss1Gruen, HIGH);
}
void fussToRed() {
digitalWrite(Fuss1Gruen, LOW);
digitalWrite(Fuss1Rot, HIGH);
}
void autoToGreen() {
digitalWrite(Auto1Rot, LOW);
digitalWrite(Auto1Gelb, HIGH);
delay(2000); // Gelb für 2 Sekunden
digitalWrite(Auto1Gelb, LOW);
digitalWrite(Auto1Gruen, HIGH);
}