Zwei Ampeln

Lese­zeit: 3 Minu­ten

Lösung
Seite als PDF

Zwei Ampeln sol­len in einem fest­ge­leg­ten Takt geschal­tet werden.

So sieht es aus:

Benö­tig­te Bauteile:

  • 2 Ampel­mas­ten
  • Lei­tungs­dräh­te

Baue die Schal­tung auf.

Der zeit­li­che Ablauf:

Defi­nie­re zuerst die ➨Varia­blen für die Zuord­nung der Bauteile:

// 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;

Der set­up-Teil:

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);
}

Begin­ne den loop-Teil mit der Sicher­heits­zo­ne (bei­de Ampeln zei­gen für 1 Sekun­de rot).

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,
  // ROT_R wird beim Start von loop ausgeschaltet
  digitalWrite(GRUEN_R, LOW);
  digitalWrite(GELB_R, HIGH);
  delay(1000);
  digitalWrite(GELB_R, LOW);
}

Startseite
Aufgaben A-Z
Suchen
Downloads
Fehlermeldungen
Seite als PDF

Ver­wand­te Anleitungen:


Letzte Aktualisierung: 2. Jan 2024 @ 9:46