//Pin connected to ST_CP of 74HC595 int latchPin = 8; //Pin connected to SH_CP of 74HC595 int clockPin = 12; ////Pin connected to DS of 74HC595 int dataPin = 11; int digit1 = A0; int digit2 = A1; int digit3 = A2; int digit4 = A3; int count =0; void setup() { //set pins to output so you can control the shift register pinMode(latchPin, OUTPUT); pinMode(clockPin, OUTPUT); pinMode(dataPin, OUTPUT); pinMode(digit1, OUTPUT); pinMode(digit2, OUTPUT); pinMode(digit3, OUTPUT); pinMode(digit4, OUTPUT); } void callback() { count++; } int c = 0; void loop() { for(int i=0; i<50; i++){ displayDigit(extractDigit(count,4)); digitalWrite(digit1, HIGH); digitalWrite(digit2, LOW); digitalWrite(digit3, LOW); digitalWrite(digit4, LOW); delay(5); displayDigit(extractDigit(count,3)); digitalWrite(digit1, LOW); digitalWrite(digit2, HIGH); digitalWrite(digit3, LOW); digitalWrite(digit4, LOW); delay(5); displayDigit(extractDigit(count,2)); digitalWrite(digit1, LOW); digitalWrite(digit2, LOW); digitalWrite(digit3, HIGH); digitalWrite(digit4, LOW); delay(5); displayDigit(extractDigit(count,1)); digitalWrite(digit1, LOW); digitalWrite(digit2, LOW); digitalWrite(digit3, LOW); digitalWrite(digit4, HIGH); delay(5); } count++; } void displayDigit(int d){ char number[10] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; digitalWrite(latchPin, LOW); // shift out the bits: shiftOut(dataPin, clockPin, MSBFIRST, ~number[d]); //take the latch pin high so the LEDs will light up: digitalWrite(latchPin, HIGH); } int extractDigit(int V, int P) { return int(V/(pow(10,P-1))) % 10; }