Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <TimerOne.h>
- byte num [10]={
- 3, //0 00000011
- 159, //1 10011111
- 37, //2 00100101
- 13, //3 00001101
- 153, //4 10011001
- 73, //5 01001001
- 65, //6 01000001
- 31, //7 00011111
- 1, //8 00000001
- 25 //9 00011001
- };
- const int DS_1=2, SHCP=3, STCP_1=4, DS_2=5, STCP_2=7, displays=4;
- int i, j=1, sep [displays], x=0, z, k=0;
- float y;
- unsigned long int ahora, antes=0;
- void setup() {
- pinMode(DS_1, OUTPUT);
- pinMode(SHCP, OUTPUT);
- pinMode(STCP_1, OUTPUT);
- pinMode(DS_2, OUTPUT);
- pinMode(STCP_2, OUTPUT);
- Timer1.initialize(1000);
- Timer1.attachInterrupt(mostrar);
- }
- void loop() {
- ahora=millis();
- if (ahora-antes>100){
- x+=1;
- z=x;
- for (i=0; i<=(displays-1); i++){
- y=z%10;
- sep [(displays-1-i)]= y;
- z=int((z/10));
- antes=ahora;
- }
- }
- }
- void mostrar()
- {
- if(j==pow(2,displays))j=1;
- if(k==displays)k=0;
- digitalWrite (STCP_2, LOW);
- shiftOut(DS_2, SHCP, MSBFIRST, 0);
- digitalWrite (STCP_2, HIGH);
- digitalWrite (STCP_1, LOW);
- shiftOut(DS_1, SHCP, LSBFIRST, num[ sep[k] ]);
- digitalWrite (STCP_1, HIGH);
- shiftOut(DS_1, SHCP, LSBFIRST, 0 >> 8); //Arreglo temporal, MEJORAR!
- digitalWrite (STCP_2, LOW);
- shiftOut(DS_2, SHCP, MSBFIRST, j);
- digitalWrite (STCP_2, HIGH);
- j=j*2; k=k+1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement