1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
char tab[7]; char i = 0; char trig = 38; char SH = 40; char ST = 42; char commun[6]=""; char num[6]={' ',' ',' ',' ',' ',' '}; char x = 0; void segment(char i) { switch(i){ case '0' :tab[0]=1;tab[1]=1;tab[2]=1;tab[3]=1;tab[4]=1;tab[5]=1;tab[6]=0;break; case '1':tab[0]=0;tab[1]=1;tab[2]=1;tab[3]=0;tab[4]=0;tab[5]=0;tab[6]=0;break; case '2':tab[0]=1;tab[1]=1;tab[2]=0;tab[3]=1;tab[4]=1;tab[5]=0;tab[6]=1;break; case '3':tab[0]=1;tab[1]=1;tab[2]=1;tab[3]=1;tab[4]=0;tab[5]=0;tab[6]=1;break; case '4':tab[0]=0;tab[1]=1;tab[2]=1;tab[3]=0;tab[4]=0;tab[5]=1;tab[6]=1;break; case '5':tab[0]=1;tab[1]=0;tab[2]=1;tab[3]=1;tab[4]=0;tab[5]=1;tab[6]=1;break; case '6':tab[0]=1;tab[1]=0;tab[2]=1;tab[3]=1;tab[4]=1;tab[5]=1;tab[6]=1;break; case '7':tab[0]=1;tab[1]=1;tab[2]=1;tab[3]=0;tab[4]=0;tab[5]=0;tab[6]=0;break; case '8':tab[0]=1;tab[1]=1;tab[2]=1;tab[3]=1;tab[4]=1;tab[5]=1;tab[6]=1;break; case '9':tab[0]=1;tab[1]=1;tab[2]=1;tab[3]=1;tab[4]=0;tab[5]=1;tab[6]=1;break; default :tab[0]=0;tab[1]=0;tab[2]=0;tab[3]=0;tab[4]=0;tab[5]=0;tab[6]=0;break; } } void send(char x) { if(x==1)digitalWrite(trig,HIGH); if(x==0)digitalWrite(trig,LOW); digitalWrite(SH,HIGH); digitalWrite(SH,LOW); } void fill() { for(i=0;i<7;i++){send(tab[i]);} for(i=0;i<6;i++){send(commun[i]) ;} for(i=0;i<3;i++){send(1) ;} digitalWrite(ST,HIGH); digitalWrite(ST,LOW); } void calcul(long nombre) { segment((nombre / 100000)+48);for(x=0;x<14;x++){commun[x]=1;}commun[0]=0;fill(); segment((nombre / 10000)%10+48);for(x=0;x<14;x++){commun[x]=1;}commun[1]=0;fill(); segment((nombre / 1000)%10+48);for(x=0;x<14;x++){commun[x]=1;}commun[2]=0;fill(); segment((nombre / 100)%10+48);for(x=0;x<14;x++){commun[x]=1;}commun[3]=0;fill(); segment((nombre / 10)%10+48);for(x=0;x<14;x++){commun[x]=1;}commun[4]=0;fill(); segment((nombre %10)+48);for(x=0;x<14;x++){commun[x]=1;}commun[5]=0;fill(); } void clear_segment() { for(int zen=0;zen<6;zen++){num[zen]=' ';} } void setup() { pinMode(trig,OUTPUT); pinMode(SH,OUTPUT); pinMode(ST,OUTPUT); } void loop() { for(long z=0;z<999999;z++) { calcul(z); delay(5); } } |