// Pines 7 Segmentos A, B, C, D, E, F, G
byte pinDisp[] = {15, 4, 18, 19, 21, 22, 23};
int num = 0; // Contador de 0 a 9999
// 26-1, 25-2, 33-3, 32-4
byte pinControl[] = {32, 33, 25, 26};
int uni = 0;
int dec = 0;
int cent = 0;
int mil;
unsigned contaPrev = 0;
unsigned long periodo = 200;
void setup()
{
byte i;
for (i = 0; i < 7; i++)
{
pinMode(pinDisp[i], OUTPUT);
}
for (i = 0; i < 4; i++)
{
pinMode(pinControl[i], OUTPUT);
digitalWrite(pinControl[i], HIGH);
}
}
void loop()
{
unsigned long conta = millis();
mil = num / 1000;
cent = (num - mil * 1000) / 100;
dec = (num - mil * 1000 - cent * 100) / 10;
uni = num % 10;
display(uni);
pinesControl(0);
if (dec > 0 || cent > 0 || mil > 0)
{
display(dec);
pinesControl(1);
}
if (cent > 0 || mil > 0)
{
display(cent);
pinesControl(2);
}
if (mil > 0)
{
display(mil);
pinesControl(3);
}
if (conta - contaPrev >= periodo)
{
contaPrev = conta;
num++;
if (num == 10000)
{
num = 0;
}
}
}