const int dataPin = 2; // DS
const int clockPin = 3; // SHCP
const int latchPin = 4; // STCP
int count;
const int numeral[] { // segment bit positions: abcdefgp
0b11111100, // 0
0b01100000, // 1
0b11011010, // 2
0b11110010, // 3
0b01100110, // 4
0b10110110, // 5
0b00111110, // 6
0b11100000, // 7
0b11111110, // 8
0b11110110, // 9
0b00000001, // dp
};
void setup() {
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(latchPin, OUTPUT);
}
void loop() {
if (count > 9)
count = 0;
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, numeral[count]); // display count
digitalWrite(latchPin, HIGH);
delay(500);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, numeral[count] | numeral[10]); // add decimal point
digitalWrite(latchPin, HIGH);
delay(500);
count++;
}