Zwei Ampeln

// linke Ampel
int ROT_L = 8;
int GELB_L = 9;
int GRUEN_L = 10;

// rechte Ampel
int ROT_R = 5;
int GELB_R = 6;
int GRUEN_R = 7;

void setup() 
{
  pinMode(ROT_L, OUTPUT);
  pinMode(GELB_L, OUTPUT);
  pinMode(GRUEN_L, OUTPUT);
  pinMode(ROT_R, OUTPUT);
  pinMode(GELB_R, OUTPUT);
  pinMode(GRUEN_R, OUTPUT);
}

void loop()
{
  // beim Start zeigen beide Ampeln rot
  digitalWrite(ROT_L, HIGH);
  digitalWrite(ROT_R, HIGH);

  // 1 Sekunde Sicherheitszone
  delay(1000);

  // linke Ampel wird über rot/gelb auf grün geschaltet
  // GELB_L -> an, 1 Sekunde warten, GELB_L -> aus, ROT_L -> aus, GRUEN_L -> an
  digitalWrite(GELB_L, HIGH);
  delay(1000);
  digitalWrite(GELB_L, LOW);
  digitalWrite(ROT_L, LOW);
  digitalWrite(GRUEN_L, HIGH);
  delay(5000);

  // linke Ampel wird von grün -> gelb auf rot geschaltet  
  // GRUEN_L -> aus, GELB_L -> an, 1 Sekunde warten, GELB_L aus, ROT_L -> an
  digitalWrite(GRUEN_L, LOW);
  digitalWrite(GELB_L, HIGH);
  delay(1000);
  digitalWrite(GELB_L, LOW);
  digitalWrite(ROT_L, HIGH);

  // 1 Sekunde Sicherheitszone, beide Ampeln bleiben rot
  delay(1000);

  // rechte Ampel über rot-gelb auf grün schalten
  // GELB_R -> an, 1 Sekunde warten, GELB_R -> aus, ROT_R -> aus, GRUEN_R -> an
  digitalWrite(GELB_R, HIGH);
  delay(1000);
  digitalWrite(GELB_R, LOW);
  digitalWrite(ROT_R, LOW);
  digitalWrite(GRUEN_R, HIGH);
  delay(5000);

  // rechte Ampel wird von grün -> gelb auf rot geschaltet  
  // GRUEN_R -> aus, GELB_R -> an, 1 Sekunde warten, GELB_R aus,loop beginnt von vornan
  digitalWrite(GRUEN_R, LOW);
  digitalWrite(GELB_R, HIGH);
  delay(1000);
  digitalWrite(GELB_R, LOW);
}

Letzte Aktualisierung: 25. Jul 2023 @ 21:15