void loop() { /* Lauflicht vorwärts LSBFIRST Bits von rechts ins Register schieben dann jeweils 1 Bit nach rechts schieben Startpunkt hängt davon ab, an welchen Pins die 1. Led und die weiteren LEDs gesteckt sind */ byte LED = B10000000; // die letzte LED bleibt an for (int i = 0; i <= 6; i++) { // Ausgaberegister ausschalten digitalWrite(AusgabePin, 0); // Bits von rechts in das Register schieben shiftOut(EingangPin, BitsSchieben, LSBFIRST, LED); // Ausgaberegister einschalten digitalWrite(AusgabePin, 1); delay(200); // 1 Bit nach rechts schieben LED = LED >> 1; } /* durch die Verschiebung ist der aktuelle Stand: LED = B00000001 Lauflicht rückwärts -> 1 Bit nach links schieben */ for (int i = 0; i <= 7; i++) { // Ausgaberegister ausschalten digitalWrite(AusgabePin, 0); // Bits von rechts in das Register schieben shiftOut(EingangPin, BitsSchieben, LSBFIRST, LED); // Ausgaberegister einschalten digitalWrite(AusgabePin, 1); delay(200); // 1 Bit nach links schieben LED = LED << 1; } // Lauflicht 2 LEDs vorwärts LED = B11000000; for (int i = 0; i <= 2; i++) { // Ausgaberegister ausschalten digitalWrite(AusgabePin, 0); // LSBFIRST -> Bits von rechts in das Register schieben shiftOut(EingangPin, BitsSchieben, LSBFIRST, LED); // Ausgaberegister einschalten digitalWrite(AusgabePin, 1); delay(200); // 2 Bits nach rechts schieben LED = LED >> 2; } // Lauflicht 2 LEDs rückwärts for (int i = 0; i <= 3; i++) { // Ausgaberegister ausschalten digitalWrite(AusgabePin, 0); // Bits von links in das Register schieben shiftOut(EingangPin, BitsSchieben, LSBFIRST, LED); // Ausgaberegister einschalten digitalWrite(AusgabePin, 1); delay(200); // 2 Bits nach links schieben LED = LED << 2; } // Lauflicht -> LEDs gehen nach und nach aus // LSBFIRST -> Bits von rechts in das Register schieben LED = B11111111; for (int i = 0; i <= 7; i++) { // Ausgaberegister ausschalten digitalWrite(AusgabePin, 0); // Bits in das Schiebregister schieben shiftOut(EingangPin, BitsSchieben, LSBFIRST, LED); // Ausgaberegister einschalten digitalWrite(AusgabePin, 1); delay(200); // 1 Bit nach rechts schieben LED = LED >> 1; } // LSBFIRST -> Bits von rechts in das Register schieben LED = B11111111; for (int i = 0; i <= 7; i++) { // Ausgaberegister ausschalten digitalWrite(AusgabePin, 0); // Bits in das Schiebregister schieben shiftOut(EingangPin, BitsSchieben, LSBFIRST, LED); // Ausgaberegister einschalten digitalWrite(AusgabePin, 1); delay(200); // 1 Bit nach links schieben LED = LED << 1; } // LEDS leuchten von außen nach innen und zurück // Array AussenNachInnen for (int i = 0; i <= 6; i++) { digitalWrite(AusgabePin, 0); shiftOut(EingangPin, BitsSchieben, MSBFIRST, AussenNachInnen[i]); digitalWrite(AusgabePin, 1); delay(200); } // alle LEDs blinken for (int i = 0; i <= 6; i++) { digitalWrite(AusgabePin, 0); shiftOut(EingangPin, BitsSchieben, MSBFIRST, LED); digitalWrite(AusgabePin, 1); delay(200); // alle Werte umkehren LED = ~ LED; } // MSBFIRST -> Bits von links in das Register schieben // jede zweite LED im Wechsel LED = B10101010; for (int i = 0; i <= 6; i++) { digitalWrite(AusgabePin, 0); shiftOut(EingangPin, BitsSchieben, MSBFIRST, LED); digitalWrite(AusgabePin, 1); delay(200); // alle Werte umkehren LED = ~ LED; } // jeweils 2 LEDs im Wechsel LED = B11001100; for (int i = 0; i <= 6; i++) { digitalWrite(AusgabePin, 0); shiftOut(EingangPin, BitsSchieben, MSBFIRST, LED); digitalWrite(AusgabePin, 1); delay(200); // alle Werte umkehren LED = ~ LED; } // äußere LEDs/innere LEDs im Wechsel LED = B11000011; for (int i = 0; i <= 6; i++) { digitalWrite(AusgabePin, 0); shiftOut(EingangPin, BitsSchieben, MSBFIRST, LED); digitalWrite(AusgabePin, 1); delay(200); // alle Werte umkehren LED = ~ LED; } }