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

Lese­zeit: 4 Minu­ten
Navi­ga­ti­on

Benö­tig­te Bau­tei­le:

  • 2 rote LEDs
  • 2 grü­ne LEDs
  • 1 gel­be LED
  • 5 Wider­stän­de > 100 Ω
  • Lei­tungs­dräh­te

Baue die Schal­tung auf.

(Fah­re mit der Maus über das Bild, um die Bezeich­nun­gen der Bau­tei­le zu sehen)

Die Schal­tung der Fahr­bahn­am­pel:

1 Sekun­de Sicher­heits­zo­ne (bei­de Ampeln zei­gen für 1 Sekun­de rot)
5 Sekun­den rot
1 Sekun­de Sicher­heits­zo­ne (bei­de Ampeln zei­gen für 1 Sekun­de rot)
1 Sekun­de rot/gelb
5 Sekun­den grün
1 Sekun­de gelb

Die Schal­tung der Fuß­gän­ger­am­pel:

1 Sekun­de Sicher­heits­zo­ne (bei­de Ampeln zei­gen für 1 Sekun­de rot)
5 Sekun­den grün
1 Sekun­de Sicher­heits­zo­ne (bei­de Ampeln zei­gen für 1 Sekun­de rot)
7 Sekun­den rot

Der zeit­li­che Ablauf:

So sieht es aus:

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

// Fahrbahnampel
int ROT = 5;
int GELB = 6;
int GRUEN = 7;

// Fußgängerampel
int F_ROT = 8;
int F_GRUEN = 9;

Füge dem setup-Teil den pin­Mo­de für die Fuß­gän­ger­am­pel (F_ROT, F_GRUEN) hin­zu.

void setup() 
{
  pinMode(ROT, OUTPUT);
  pinMode(GELB, OUTPUT);
  pinMode(GRUEN, OUTPUT);
  pinMode(F_ROT, OUTPUT);
  pinMode(F_GRUEN, 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() 
{ 
  digitalWrite(ROT, HIGH);
  digitalWrite(F_ROT, HIGH);

  // 1 Sekunde Sicherheitszone delay(1000);
  // Fußgängerampel wird von rot auf grün geschaltet       
  digitalWrite(F_ROT, LOW);
  digitalWrite(F_GRUEN, HIGH);
  delay(5000);

  // Fußgängerampel wird von grün auf rot geschaltet
  // F_GRUEN -> aus, F_ROT -> an
  digitalWrite(F_GRUEN, LOW);
  digitalWrite(F_ROT, HIGH);

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

  // Fahrbahnampel auf rot-gelb und dann auf grün schalten
  // GELB -> an, 1 Sekunde warten, GELB und ROT -> aus, GRUEN -> an 
  digitalWrite(GELB, HIGH); delay(1000); digitalWrite(ROT, LOW);  
  digitalWrite(GELB, LOW); digitalWrite(GRUEN, HIGH);

  // GRUEN -> 5 Sekunden, GRUEN -> aus, GELB 1 Sekunde an,
  // GELB aus 
  delay(5000);
  digitalWrite(GRUEN, LOW);
  digitalWrite(GELB, HIGH); 
  delay(1000);
  digitalWrite(GELB, LOW);
}


Ver­wand­te Auf­ga­ben:


Letzte Aktualisierung: 1. Aug 2020 @ 12:16