Ampel mit Fuß­gän­ger­am­pel und Taster

// Fahrbahnampel
int ROT = 3;
int GELB = 4;
int GRUEN = 5;

// Fußgängerampel
int F_ROT = 6;
int F_GRUEN = 7;

// Taster
int TASTER = 12;

// Status des Taster
int TasterLesen;

void setup()
{
  // Fahrbahnampel
  pinMode(ROT, OUTPUT);
  pinMode(GELB, OUTPUT);
  pinMode(GRUEN, OUTPUT);

  // Fußgängerampel
  pinMode(F_ROT, OUTPUT);
  pinMode(F_GRUEN, OUTPUT); 
 
  // Taster
  pinMode(TASTER, INPUT_PULLUP);
}

void loop()
{
  // Ampel grün/Fußgängerampel rot
  digitalWrite(F_ROT, HIGH);
  digitalWrite(GRUEN, HIGH);

  // Zustand des Tasters lesen 
  TasterLesen = digitalRead(TASTER);
  delay(200);
 
  // PULLUP-Widerstand eingeschaltet-> LOW = Taster gedrückt
  if (TasterLesen == LOW)
  {
    // 1 s Pause
    delay(1000);

    // Fahrbahnampel grün aus
    digitalWrite(GRUEN, LOW);

    // Fahrbahnampel gelb an 
    digitalWrite(GELB, HIGH);
    delay(1000);
    digitalWrite(GELB, LOW);

    // Fahrbahnampel rot an
    digitalWrite(ROT, HIGH); 

    // 1 s Sicherheitszeit 
    delay(1000); 

    // Fußgängerampel auf grün schalten 
    digitalWrite(F_ROT, LOW);
    digitalWrite(F_GRUEN, HIGH);
    delay(5000); 

    // Fußgängerampel auf rot schalten
    digitalWrite(F_GRUEN, LOW);
    digitalWrite(F_ROT, HIGH);

    // 1 s Pause
    delay(1000);

    // Fahrbahnampel auf gelb und dann auf rot schalten
    digitalWrite(GELB, HIGH);
    delay(1000);
    digitalWrite(ROT, LOW);
    digitalWrite(GELB, LOW);
  }
}

Letzte Aktualisierung: 24. Jul 2023 @ 8:00