int count; int ones, tens, hun; int hilo = LOW; int delayer; int loopa = 0; int digits[10][7] = { { 1,1,1,1,1,1,0}, { 0,1,1,0,0,0,0}, { 1,1,0,1,1,0,1}, { 1,1,1,1,0,0,1}, { 0,1,1,0,0,1,1}, { 1,0,1,1,0,1,1}, { 1,0,1,1,1,1,1}, { 1,1,1,0,0,0,0}, { 1,1,1,1,1,1,1}, { 1,1,1,0,0,1,1}, }; void setup() { delayer = 200; pinMode(12,OUTPUT); //data pinMode(4,OUTPUT); //clock pinMode(7,OUTPUT); //clock 2 pinMode(6,OUTPUT); //clock 2 pinMode(13,OUTPUT); //reset pin Serial.begin(9600); } void loop() { if(loopa >=999){loopa=0;}; loopa ++; breakdown(loopa); writeDigit(hun,4);//6f writeDigit(tens,4);//7 writeDigit(ones,4); delay(90); } void breakdown(int num) { ones=num%10; num=num/10; tens=num%10; num=num/10; hun=num%10; } void writeDigit(int number,int pin) { for(int i = 0; i <=6; i++) { switch(digits[number][i]) { case 0: hilo = LOW; break; case 1: hilo = HIGH; break; }; clockoff(0,pin); digitalWrite(12,hilo); clockon(0,pin); } // reset(); } void reset() // reset all chips { digitalWrite(13,LOW); digitalWrite(13,HIGH); delay(0); digitalWrite(13,LOW); } void clockon(int interval,int pin) // advance the clock, needs to be called when adding bytes { digitalWrite(pin,HIGH); delay(interval); } void clockoff(int interval,int pin) // advance the clock, needs to be called when adding bytes { digitalWrite(pin,LOW); delay(interval); }