problema con 7 segments 4 digit (timer countdown)

ho un problema con il suo utilizzo. in pratica voglio fare un countdown vero passandogli un tot di secondi trasformo il tempi in formatto mm:ss e lo visualizzzo sul dispaly. il mio problema è che il timer dopo ogni secondo che passa blinka per aggiornarsi. io vorrei cercare di limitare il blink e rendere più visible i numeri scritti ma non capisco dove sbaglio. questo è il codice

// -----------------------------------------------------------------
// Definisco la mappatura tra pin e segmenti
// -----------------------------------------------------------------

int digit1 = 7; // 7Segment = PIN 12 - Arduino PWM 7: accende il primo digit
int segA = 6; // 7Segment = PIN 11 - Arduino PIN 6
int segF = 5; // 7Segment = PIN 10 - Arduino PIN 5
int digit2 = 4; // 7Segment = PIN 09 - Arduino PWM 4: accende il secondo digit
int digit3 = 3; // 7Segment = PIN 08 - Arduino PWM 3: accende il terzo digit
int segB = 2; // 7Segment = PIN 07 - Arduino PIN 2

int digit4 = 8; // 7Segment = PIN 06 - Arduino PWM 8: accende il quarto digit
int segG = 9; // 7Segment = PIN 05 - Arduino PIN 9
int segC = 10; // 7Segment = PIN 04 - Arduino PIN 10
int segDP = 11; // 7Segment = PIN 03 - Arduino PIN 11
int segD = 12; // 7Segment = PIN 02 - Arduino PIN 12
int segE = 13; // 7Segment = PIN 01 - Arduino PIN 13

#define DIGIT_ON LOW
#define DIGIT_OFF HIGH
#define SEGMENT_ON HIGH // Catodo comune
#define SEGMENT_OFF LOW
#define DISPLAY_BRIGHTNESS 20000

int Tempo=15;

void setup()
{
// Imposto tutti i pin come output
pinMode(segA, OUTPUT);
pinMode(segB, OUTPUT);
pinMode(segC, OUTPUT);
pinMode(segD, OUTPUT);
pinMode(segE, OUTPUT);
pinMode(segF, OUTPUT);
pinMode(segG, OUTPUT);
pinMode(segDP, OUTPUT);
// Pin relativi all'elemento
pinMode(digit1, OUTPUT);
pinMode(digit2, OUTPUT);
pinMode(digit3, OUTPUT);
pinMode(digit4, OUTPUT);
// Spengo tutti gli elementi
digitalWrite(digit1, DIGIT_OFF);
digitalWrite(digit2, DIGIT_OFF);
digitalWrite(digit3, DIGIT_OFF);
digitalWrite(digit4, DIGIT_OFF);

Conteggia();
}

void Conteggia()
{
do
{
Calcola(Tempo);
delay(1000);
Tempo=Tempo-1;
}
while(Tempo>0);

// Spengo tutti gli elementi
digitalWrite(digit1, DIGIT_OFF);
digitalWrite(digit2, DIGIT_OFF);
digitalWrite(digit3, DIGIT_OFF);
digitalWrite(digit4, DIGIT_OFF);
}

void loop()
{

}

void Calcola(int TempoInSecondi)
{
int TotMinuti;
int MinutiA;
int MinutiB;
int TotSecondi;
int SecondiA;
int SecondiB;

TotMinuti = (int) (TempoInSecondi/60);
TotSecondi= TempoInSecondi - (TotMinuti*60);

if (TotMinuti < 10)
{
MinutiA=0;
}
else
{
MinutiA=TotMinuti/10;
}

MinutiB=TotMinuti-(MinutiA*10);

SecondiA=TotSecondi/10;
SecondiB=TotSecondi-(SecondiA*10);

Numero(MinutiA,1);
Numero(MinutiB,2);
Numero(SecondiA,3);
Numero(SecondiB,4);
}

void Numero(int numero, int digit)
{
// Accendo il digit corrispondente alla lettera da scrivere
digitalWrite(digit1, (digit==1) ? DIGIT_ON : DIGIT_OFF);
digitalWrite(digit2, (digit==2) ? DIGIT_ON : DIGIT_OFF);
digitalWrite(digit3, (digit==3) ? DIGIT_ON : DIGIT_OFF);
digitalWrite(digit4, (digit==4) ? DIGIT_ON : DIGIT_OFF);

switch (numero)
{
case 0:
digitalWrite(segA, SEGMENT_ON);
digitalWrite(segB, SEGMENT_ON);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_ON);
digitalWrite(segE, SEGMENT_ON);
digitalWrite(segF, SEGMENT_ON);
digitalWrite(segG, SEGMENT_OFF);
break;

case 1:
digitalWrite(segA, SEGMENT_OFF);
digitalWrite(segB, SEGMENT_ON);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_OFF);
digitalWrite(segE, SEGMENT_OFF);
digitalWrite(segF, SEGMENT_OFF);
digitalWrite(segG, SEGMENT_OFF);
break;

case 2:
digitalWrite(segA, SEGMENT_ON);
digitalWrite(segB, SEGMENT_ON);
digitalWrite(segC, SEGMENT_OFF);
digitalWrite(segD, SEGMENT_ON);
digitalWrite(segE, SEGMENT_ON);
digitalWrite(segF, SEGMENT_OFF);
digitalWrite(segG, SEGMENT_ON);
break;

case 3:
digitalWrite(segA, SEGMENT_ON);
digitalWrite(segB, SEGMENT_ON);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_ON);
digitalWrite(segE, SEGMENT_OFF);
digitalWrite(segF, SEGMENT_OFF);
digitalWrite(segG, SEGMENT_ON);
break;

case 4:
digitalWrite(segA, SEGMENT_OFF);
digitalWrite(segB, SEGMENT_ON);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_OFF);
digitalWrite(segE, SEGMENT_OFF);
digitalWrite(segF, SEGMENT_ON);
digitalWrite(segG, SEGMENT_ON);
break;

case 5:
digitalWrite(segA, SEGMENT_ON);
digitalWrite(segB, SEGMENT_OFF);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_ON);
digitalWrite(segE, SEGMENT_OFF);
digitalWrite(segF, SEGMENT_ON);
digitalWrite(segG, SEGMENT_ON);
break;

case 6:
digitalWrite(segA, SEGMENT_ON);
digitalWrite(segB, SEGMENT_OFF);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_ON);
digitalWrite(segE, SEGMENT_ON);
digitalWrite(segF, SEGMENT_ON);
digitalWrite(segG, SEGMENT_ON);
break;

case 7:
digitalWrite(segA, SEGMENT_ON);
digitalWrite(segB, SEGMENT_ON);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_OFF);
digitalWrite(segE, SEGMENT_OFF);
digitalWrite(segF, SEGMENT_OFF);
digitalWrite(segG, SEGMENT_OFF);
break;

case 8:
digitalWrite(segA, SEGMENT_ON);
digitalWrite(segB, SEGMENT_ON);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_ON);
digitalWrite(segE, SEGMENT_ON);
digitalWrite(segF, SEGMENT_ON);
digitalWrite(segG, SEGMENT_ON);
break;

case 9:
digitalWrite(segA, SEGMENT_ON);
digitalWrite(segB, SEGMENT_ON);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_ON);
digitalWrite(segE, SEGMENT_OFF);
digitalWrite(segF, SEGMENT_ON);
digitalWrite(segG, SEGMENT_ON);
break;

case 10: // Tutto spento
digitalWrite(segA, SEGMENT_OFF);
digitalWrite(segB, SEGMENT_OFF);
digitalWrite(segC, SEGMENT_OFF);
digitalWrite(segD, SEGMENT_OFF);
digitalWrite(segE, SEGMENT_OFF);
digitalWrite(segF, SEGMENT_OFF);
digitalWrite(segG, SEGMENT_OFF);
break;
}

// Piccolo ritardo
delayMicroseconds(DISPLAY_BRIGHTNESS);
digitalWrite(digit1, DIGIT_OFF);
digitalWrite(digit2, DIGIT_OFF);
digitalWrite(digit3, DIGIT_OFF);
digitalWrite(digit4, DIGIT_OFF);
}

Tanto per cominciare, essendo questo il tuo primo post, ti chiederei cortesemente di presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con attenzione il REGOLAMENTO ...

... poi, in conformità al suddetto regolamento, punto 7, devi editare il tuo post (in basso a destra del post, bottone More -> Modify) e racchiudere il codice all'interno dei tag CODE (... sono quelli che in edit inserisce il bottone fatto così: </>, tutto a sinistra).

Grazie.

Guglielmo