/* Ampelnlicht
Aleksandar Tesic 3AFEL
02.06.2022 */
// Deklarieren LEDs Diode bei Ampel 1
const int LEDG1 = 13;
const int LEDY1 = 12;
const int LEDR1 = 11;
// Deklarieren Schalter 1
const int SW1 = 10;
// Deklarieren LEDs Diode bei Ampel 2
const int LEDG2 = 13;
const int LEDY2 = 12;
const int LEDR2 = 11;
// Deklarieren Schalter 2
const int SW2 = 9;
// Deklarieren LEDs Diode bei Ampel 3
const int LEDG3 = 4;
const int LEDY3 = 3;
const int LEDR3 = 2;
// Deklarieren Schalter 3
const int SW3 = 5;
// Deklarieren LEDs Diode bei Ampel 4
const int LEDG4 = 4;
const int LEDY4 = 3;
const int LEDR4 = 2;
// Deklarieren Schalter 4
const int SW4 = 6;
void setup() {
// Ampeln 1 und 2
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
pinMode(SW1, INPUT_PULLUP);
pinMode(SW2, INPUT_PULLUP);
// Ampeln 3 und 4
pinMode(4, OUTPUT);
pinMode(3, OUTPUT);
pinMode(2, OUTPUT);
pinMode(SW3, INPUT_PULLUP);
pinMode(SW4, INPUT_PULLUP); }
void loop() {
// Roten LEDs leuchten am Anfang
digitalWrite(11, HIGH);
digitalWrite(2, HIGH);
const int valueOfSwtich1 = digitalRead(SW1); // Zustand der Schalter 1
const int valueOfSwtich2 = digitalRead(SW2); // Zustand der Schalter 2
const int valueOfSwtich3 = digitalRead(SW3); // Zustand der Schalter 3
const int valueOfSwtich4 = digitalRead(SW4); // Zustand der Schalter 4
if (valueOfSwtich1==1 || valueOfSwtich2==1) trafficLight(13,12,11); // Ampeln 1 und 2 luchten
if (valueOfSwtich3==1 || valueOfSwtich4==1) trafficLight(4,3,2); // Ampeln 3 und 4 luchten
if ((valueOfSwtich1==1 || valueOfSwtich2==1) && (valueOfSwtich3==1 || valueOfSwtich4==1)){
trafficLight(13,12,11); // Zuerst leuchten Ampel 1 und Ampel 2
trafficLight(4,3,2); } // und dann Ampel 3 und Ampel 4
if (valueOfSwtich1==1 && valueOfSwtich2==1 && valueOfSwtich3==1 && valueOfSwtich4==1){
trafficLight(13,12,11); // Zuerst leuchten Ampel 1 und Ampel 2
trafficLight(4,3,2); } // und dann Ampel 3 und Ampel 4
if (valueOfSwtich1==1 && valueOfSwtich2==1 && valueOfSwtich3==1 && valueOfSwtich4==1){
trafficLight(13,12,11); // Zuerst leuchten Ampel 1 und Ampel 2
trafficLight(4,3,2); } // und dann Ampel 3 und Ampel 4
}
// Ampeln leuchten
void trafficLight (const int LEDG, const int LEDY, const int LEDR) {
// Rot
digitalWrite(LEDG, LOW);
digitalWrite(LEDY, LOW);
digitalWrite(LEDR, HIGH);
delay(5000);
// Rot + Gelb
digitalWrite(LEDG, LOW);
digitalWrite(LEDY, HIGH);
digitalWrite(LEDR, HIGH);
delay(2000);
// Grün
digitalWrite(LEDG, HIGH);
digitalWrite(LEDY, LOW);
digitalWrite(LEDR, LOW);
delay(5000);
// Grün Blinken
for (int i = 0; i < 3; i++){
digitalWrite(LEDG, HIGH);
delay(500);
digitalWrite(LEDG, LOW);
delay(500); }
digitalWrite(LEDY, LOW);
digitalWrite(LEDR, LOW);
// Gelb
digitalWrite(LEDG, LOW);
digitalWrite(LEDY, HIGH);
digitalWrite(LEDR, LOW);
delay(2000);
// Rot
digitalWrite(LEDG, LOW);
digitalWrite(LEDY, LOW);
digitalWrite(LEDR, HIGH);
delay(5000); }