/*
Fußgänger Ampel
Der Fußgänger drückt auf den Knopf
Das "weiße" Licht geht an (Signal kommt)
Nach ein paar Sekünden später
Auto Ampel geht von Grün auf Gelb auf Rot
Fußgänger auf Grün - geht über die Straße - Rot
Auto Gel-Rot und schleißlich grün
*/
// der Knopf
int pin_btn = 13;
int btn_state = HIGH;
// Fußgänger Ampel
int f_white = 12;
int f_red = 11;
int f_green = 10;
// Auto Ampel
int a_rot = 5;
int a_gelb = 4;
int a_grun = 3;
void setup() {
// put your setup code here, to run once:
Serial.begin(4800); // Any baud rate should work
Serial.println("Hello Arduino!");
Serial.println("Simulation einer Fußgänger Ampel.");
Serial.println("Zum Starten bitte auf den Knopf drücken.\n");
pinMode(pin_btn, INPUT_PULLUP);
pinMode(f_white, OUTPUT);
pinMode(f_red, OUTPUT);
pinMode(f_green, OUTPUT);
pinMode(a_rot, OUTPUT);
pinMode(a_gelb, OUTPUT);
pinMode(a_grun, OUTPUT);
// initialer Status: Auto Grün - Fußgänger Rot
digitalWrite(f_red, HIGH);
digitalWrite(a_grun, HIGH);
}
void loop() {
// put your main code here, to run repeatedly:
// Taster abfragen
btn_state = digitalRead(pin_btn);
// wenn gedrückt wurde
if (btn_state == LOW) {
Serial.print("Knopf gedrückt -> ");
// Signal kommt
digitalWrite(f_white, HIGH);
Serial.println("Signal kommt - bitte warten!");
// warten
delay(2000);
// Auto Ampel auf Rot stellen
digitalWrite(a_grun, LOW);
digitalWrite(a_gelb, HIGH);
delay((2000));
Serial.println("Auto hat jetzt ROT.");
digitalWrite(a_rot,HIGH);
digitalWrite(a_gelb, LOW);
delay(2000);
// Füßgänger auf Grün
digitalWrite(f_white, LOW);
digitalWrite(f_red, LOW);
digitalWrite(f_green, HIGH);
Serial.println("Und Fußgänger kann jetzt über die Straße - aber schnell!");
delay((5000)); // 5 sec. Zeit um über die Straße zu kommen ;-)
// Fußgänger auf Rot
digitalWrite(f_red, HIGH);
digitalWrite(f_green, LOW);
Serial.println("Fußgänger hat jetz ROT.");
// Auto auf Grün
digitalWrite(a_gelb, HIGH);
delay(2000);
digitalWrite(a_rot, LOW);
//delay(2000);
digitalWrite(a_grun, HIGH);
digitalWrite(a_gelb, LOW);
delay(5000); // 5 sec. warten, bevor wieder gedrückt werden darf
Serial.println(("Knopf ist wieder bereit!"));
}
}