Lauflicht D2 bis D10

Das Beispielscript zeigt ein Lauflicht mit roten LED in 6 Programmen-Variationen, die nach einander ablaufen. Ein Lastwiderstand mit etwa 330 Ohm und ein Jumperkabel wird dazu benötigt.

Ein Lauflicht mit dem Arduino

Das folgende Lauflichtscript nutzt die Digitalports D2 bis D10, die idealerweise auf einer Seites des ARDUINO Nano (jeder andere ARDUINO ist alternativ möglich) liegen und bequem der Reihe nach abgenommen werden können. Die LED sollten über einen Lastwiderstand mit etwa 330 Ω (5mm LED rot 1,6-2V 2mA) angesteuert werden.

Stückliste

Arduino Sketch (der Code)

Jede der einzelnen sechs Variationen wird 5x durchlaufen, bevor das nächste Programm bzw. die nächste Variation gestartet wird. Ist die letzte Variante abgespielt worden, dann beginnt die Reihenfolge erneut bei Programm 1.

void setup() {
    pinMode(2, OUTPUT);
    pinMode(3, OUTPUT);
    pinMode(4, OUTPUT);
    pinMode(5, OUTPUT);
    pinMode(6, OUTPUT);
    pinMode(7, OUTPUT);
    pinMode(8, OUTPUT);
    pinMode(9, OUTPUT);
    pinMode(10, OUTPUT);
}

void loop() {
    int i;
    int j;
    int k;
    int firstled = 2;  // LED 1: erster Digitalpin
    int lastled  = 10; // LED 8: letzter Digitalpin
    int tme      = 30; // Geschwindigkeit der LED

    // ------------------------------------------
    // Programm 1: PingPong - eine LED von links
    // nach rechts
    // ------------------------------------------
    for (j=0; j <= 5; j++) {
        for(i = firstled; i <= lastled; i++) {
            digitalWrite(i, HIGH);
            delay(tme+10);
            digitalWrite(i, LOW);
        }
        for(i = lastled; i > firstled; i--) {
            digitalWrite(i, HIGH);
            delay(tme+10);
            digitalWrite(i, LOW);
        }
    }

    // ------------------------------------------
    // Programm 2: LED fuellt nach links und
    // rechts auf
    // ------------------------------------------
    for (j=0; j <= 5; j++) {
        for(i = firstled; i <= lastled; i++) {
            digitalWrite(i, HIGH);
            delay(tme);
        }
        for(i = firstled; i <= lastled; i++) {
            digitalWrite(i, LOW);
            delay(tme);
        }
        for(i = lastled; i >= firstled; i--) {
            digitalWrite(i, HIGH);
            delay(tme);
        }
        for(i = lastled; i >= firstled; i--) {
            digitalWrite(i, LOW);
            delay(tme);
        }
    }

    // ------------------------------------------
    // Programm 3: LED laeuft zur Mitte auf
    // ------------------------------------------
    for (j=0; j <= 5; j++) {
        k=0;
        for(i = firstled; i <= lastled; i++) {
            digitalWrite(i, HIGH);
            digitalWrite(lastled-k, HIGH);
            delay(tme);
            k=k+1;
        }
        k=0;
        for(i = firstled; i <= lastled; i++) {
            digitalWrite(i, LOW);
            digitalWrite(lastled-k, LOW);
            delay(tme);
            k=k+1;
        }
    }

    // ------------------------------------------
    // Programm 4: Eine LED laeuft nach links
    // ------------------------------------------
    for (j=0; j <= 5; j++) {
        for(i = firstled; i <= lastled; i++) {
            digitalWrite(i, HIGH);
            delay(tme+10);
            digitalWrite(i, LOW);
        }
    }

    // ------------------------------------------
    // Programm 5: Eine LED laeuft nach rechts
    // ------------------------------------------
    for (j=0; j <= 5; j++) {
        for(i = lastled; i >= firstled; i--) {
            digitalWrite(i, HIGH);
            delay(tme+10);
            digitalWrite(i, LOW);
        }
    }

    // ------------------------------------------
    // Programm 6: LED begegnen sich in der Mitte
    // ------------------------------------------
    for (j=0; j <= 5; j++) {
        k=0;
        for(i = firstled; i <= lastled; i++) {
            digitalWrite(i, HIGH);
            digitalWrite(lastled-k, HIGH);
            delay(tme+10);
            digitalWrite(i, LOW);
            digitalWrite(lastled-k, LOW);
            k=k+1;
        }
    }
}

Die LED liegen mit der Kathode (kurzer Anschluss) gemeinsam auf Masse (-) und werden über den Lastwiderstand und einem H-Pegel (+) getrieben (langer Anschluss).

Erweiterungen

Die Hardware kann statt mit LED natürlich auch mit Leistungstreibern oder einer Relais-Endstufe erweitert werden, um höhere Lasten wie Glühlampen oder Halogenscheinwerfer ansteuern zu können.

Das Script kann kopiert werden und als Sketch in die ARDUINO IDE eingefügt werden.