// Pins für die LEDs definieren
const int ledPins[] = {2, 3, 4, 5, 6, 7, 8, 9}; // Array der LED-Pins
const int numLeds = sizeof(ledPins) / sizeof(ledPins[0]); // Anzahl der LEDs
void setup() {
// Alle Pins als Ausgänge definieren
for (int i = 0; i < numLeds; i++) {
pinMode(ledPins[i], OUTPUT);
digitalWrite(ledPins[i], LOW); // Alle LEDs zu Beginn ausschalten
}
}
void loop() {
// Die Bitmuster entsprechend der gewünschten Lauflichtsequenz definieren
const byte patterns[] = {
B00000000, B00000001, B00000010, B00000100, B00001000, B00010000, B00100000, B01000000, B10000000,
B10000001, B10000010, B10000100, B10001000, B10010000, B10100000, B11000000, B11000001,
B11000010, B11000100, B11001000, B11010000, B11100000, B11100001, B11100010, B11100100,
B11101000, B11110000, B11110001, B11110010, B11110100, B11111000, B11111001, B11111010,
B11111100, B11111101, B11111110, B11111111
};
const int numPatterns = sizeof(patterns) / sizeof(patterns[0]); // Anzahl der Muster
// Durch die Muster laufen und die LEDs entsprechend setzen
for (int i = 0; i < numPatterns; i++) {
for (int j = 0; j < numLeds; j++) {
// Setze jede LED entsprechend dem aktuellen Bitmuster
bool ledState = bitRead(patterns[i], j); // Lese den Zustand des j-ten Bits im Muster
digitalWrite(ledPins[j], ledState ? HIGH : LOW); // Schalte die LED ein oder aus
}
delay(500); // Warte 500 Millisekunden, bevor das nächste Muster angezeigt wird
}
// Warte kurz, bevor der Zyklus von vorne beginnt
delay(1000); // Warte eine Sekunde
}