int serPin = 9; int serClockPin = 8; int latchClockPin = 7; byte number_values[] = {252, 96, 218, 242, 102, 182, 190, 224, 254, 246}; // 0b11111100,0b01100000, 0b11011010, 0b11110010, 0b01100110, 0b10110110, 0b10111110, 0b11100000, 0b11111110, 0b11110110] void setup() { pinMode(serPin, OUTPUT); pinMode(serClockPin, OUTPUT); pinMode(latchClockPin, OUTPUT); } void loop() { for (int i=0; i<100; i++) { int digit_tens = i / 10; int digit_units = i - (digit_tens * 10); shift_byte (number_values[digit_units]); shift_byte (number_values[digit_tens]); register_update(); delay (500); } } void shift_bit (byte bit_value) { digitalWrite(serPin, bit_value); digitalWrite(serClockPin, HIGH); delay (1); digitalWrite(serClockPin, LOW); } void register_update (){ digitalWrite(latchClockPin, HIGH); delay (1); digitalWrite(latchClockPin, LOW); } void shift_byte (byte byte_value){ boolean bit_value; for (int i=0; i<8; i++) { bit_value = byte_value & 1; shift_bit (bit_value); byte_value >>= 1; } }