//#include <serial.h>
//segmentos a, b,c,d,e, f, g, dp
int Disp[8]={15,2,4,5,18,19,21,22};
int Leds[4]={13,12,14,27};
int Controle[4]={26,25,33,32};
int ValDisplay[4]={0,0,0,0};
int ctrl=0;
int ContaTempo=0;
//a,b,c,d,e,f,g,dp
int Tab[16][8]={1,1,1,1,1,1,0,0,//0
0,1,1,0,0,0,0,0,//1
1,1,0,1,1,0,1,0,//2
1,1,1,1,0,0,1,0,//3
0,1,1,0,0,1,1,0,//4
1,0,1,1,0,1,1,0,//5
1,0,1,1,1,1,1,0,//6
1,1,1,0,0,0,0,0,//7
1,1,1,1,1,1,1,0,//8
1,1,1,1,0,1,1,0,//9
1,1,1,1,1,0,1,0,//a
0,0,1,1,1,1,1,0,//b
1,0,0,1,1,1,0,0,//c
0,1,1,1,1,0,1,0,//d
1,0,0,1,1,1,1,0,//e
1,0,0,0,1,1,1,0};//f
// a
//f b
// g
//e c
// d dp
int TBin[16][4]={0,0,0,0,
0,0,0,1,
0,0,1,0,
0,0,1,1,
0,1,0,0,
0,1,0,1,
0,1,1,0,
0,1,1,1,
1,0,0,0,
1,0,0,1,
1,0,1,0,
1,0,1,1,
1,1,0,0,
1,1,0,1,
1,1,1,0,
1,1,1,1};
void setup() {
//configurar segmentos(leds) do display
//como saída:
//para isso usaremos o laço for, para repetir
//8 vezes a instrução
for(int i=0; i<8;i++)
pinMode(Disp[i],OUTPUT);
//configurando os leds
for(int i=0;i<4;i++)
pinMode(Leds[i], OUTPUT);
//configurando os controles
for(int i=0;i<4;i++)
pinMode(Controle[i], OUTPUT);
}
void loop() {
ContaTempo++;
if(ContaTempo>100)
{
ContaTempo=0;
ValDisplay[3]++;
if(ValDisplay[3]>9){
ValDisplay[3]=0;
ValDisplay[2]++;
if(ValDisplay[2]>9){
ValDisplay[2]=0;
ValDisplay[1]++;
if(ValDisplay[1]>9){
ValDisplay[1]=0;
ValDisplay[0]++;
if(ValDisplay[0]>9)
{
ValDisplay[0]=0;
//preparar fim da contagem
}
}
}
}
}
for(int k=0;k <= 4;k++){
if(k == ctrl){
//ligando os leds
for(int i=0;i<8;i++)
digitalWrite(Disp[i],Tab[ValDisplay[ctrl]][i]);
digitalWrite(Controle[k],0);
digitalWrite(Leds[k],1);
}
else{
digitalWrite(Controle[k],1);
digitalWrite(Leds[k],0);
}
}
/* //mostrando motação binária nos leds
for(int i=0;i<4;i++)
digitalWrite(Leds[i],TBin[j][i]);
*/
delay(1);//1 milisegundos
ctrl++;
if(ctrl == 4)
ctrl=0;
}