int dataPin = 11;
int clockPin = 12;
int latchPin = 8;
byte digits[10] = {
0b00111111, // 0
0b00000110, // 1
0b01011011, // 2
0b01001111, // 3
0b01100110, // 4
0b01101101, // 5
0b01111101, // 6
0b00000111, // 7
0b01111111, // 8
0b01101111 // 9
};
void setup() {
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(latchPin, OUTPUT);
}
void loop() {
for (int i = 0; i < 10; i++) {
byte val = digits[i];
if (i % 2 == 0) val |= 0b10000000;
digitalWrite(latchPin, LOW);
for (int b = 7; b >= 4; b--) {
digitalWrite(clockPin, LOW);
digitalWrite(dataPin, (val >> b) & 1);
digitalWrite(clockPin, HIGH);
}
for (int b = 3; b >= 0; b--) {
digitalWrite(clockPin, LOW);
digitalWrite(dataPin, (val >> b) & 1);
digitalWrite(clockPin, HIGH);
}
digitalWrite(latchPin, HIGH);
delay(1000);
}
}