const byte dataPin = 4, latchPin = 5, clockPin = 6; byte pattern = 1; unsigned long changedAt = 0; void showPattern(byte value) { digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, MSBFIRST, value); digitalWrite(latchPin, HIGH); } void setup() { pinMode(dataPin, OUTPUT); pinMode(latchPin, OUTPUT); pinMode(clockPin, OUTPUT); showPattern(pattern); } void loop() { if (millis() - changedAt >= 300) { changedAt = millis(); pattern = pattern == 128 ? 1 : pattern << 1; showPattern(pattern); } }