In diesem Projekt soll jetzt eine Ampelschaltung mit drei LEDs aufgebaut werden und dieser Artikel beschreibt das Projekt…

Eine Ampel besteht natürlich aus drei Farben und deshalb bietet es sich an eine rote LED, eine gelbe LED und eine grüne LED zu verbauen. Die LED Ampel soll dabei genau so geschaltet sein, wie eine echte Straßenverkehrs-Ampel. In der Programmierung müssen also vier Phasen realisiert werden…

Anmerkungen und Erklärungen:

Die drei LEDs werden also an die digitalen Pins des Arduinos angeschlossen. Genutzt werden in diesem konkreten Fall die Pins 11, 12 und 13.

Im Abschnitt „void setup“ werden die Pins als Output gesetzt und anschließend im Bereich „void loop“ auf High oder Low gestellt.

Hier die vier Ampelphasen (wie bei einer echten Ampel):

  1. Phase 1 = Rotphase
  2. Phase 2 = Rot + Gelb-Phase (kurz bevor es grün wird)
  3. Phase 3 = Grünphase
  4. Phase 4 = Gelbphase (kurz bevor es rot wird)

Die Zeitspanne für die einzelnen Phasen soll hier jetzt noch nicht interessieren.

Programmierung:

int led1 = 13;   //LED rot an digitalen Pin 13 angeschlossen
int led2 = 12;   //LED gelb an digitalen Pin 12 angeschlossen 
int led3 = 11;   //LED gelb an digitalen Pin 11 angeschlossen

void setup()
{
pinMode(led1, OUTPUT);  //setze digitalen Pin als Output
pinMode(led2, OUTPUT);  //setze digitalen Pin als Output
pinMode(led3, OUTPUT);  //setze digitalen Pin als Output
}

void loop ()
{
digitalWrite(led1, HIGH);  // schalte LED 1 rot ein
delay (2000);                // Rotphase in Millisekunden

digitalWrite(led2, HIGH);  // schalte LED 2 gelb ein
delay (1000);                // Gelbphase in Millisekunden

digitalWrite(led1, LOW);    //schalte LED 1 rot aus
digitalWrite(led2, LOW);    //schalte LED 2 gelb aus


digitalWrite(led3, HIGH);  // schalte LED 3 grün ein
delay (2000);                // Grünphase in Millisekunden
digitalWrite(led3, LOW);    //schalte LED 3 grün aus
delay (1000);                // warte eine Sekunde die Tausend steht für Tausend Millisekunden

digitalWrite(led2, HIGH);  // schalte LED 2 gelb ein
delay (1000);                // Gelbphase in Millisekunden
digitalWrite(led2, LOW);    //schalte LED 2 gelb aus

Von Torsten