sensore temperatura 7 segmenti

Ciao a tutti, ho un problema nella visualizzazione della temperatura

//Pin di collegamento del piedino Vout del sensore di temperatura
#define pin_temp A0

//Indica ogni quanti cicli di loop aggiornare il valore della temperatura
#define ritardo 67

//Indica se il display è ad anodo comune
#define anodo_com false

//Contatore per il numero di loop
int cont = 0;

//Pin display {a, b, c, d, e, f, g}
const int pin_display[7] = {2, 3, 4, 5, 6, 7, 8};

#define pin_decina 10 //Pin di abilitazione del display delle decine
#define pin_unita 11 //Pin di abilitazione del display delle unità
#define pin_decimi 9 //Pin di abilitazione del display dei decimi

#define num_cifre 3 //Numero di cifre da visualizzare (decine, unità, decimi)

//Pin di abilitazione dei display {decine, unità, decimi}
const int pin_display_en[num_cifre] = {pin_decina, pin_unita, pin_decimi};

//Costruzione dei numeri ({a, b, c, d, e, f, g} del display)
const boolean numeri[10][7] = {
  {true, true, true, true, true, true, false},     //Numero 0
  {false, true, true, false, false, false, false}, //Numero 1
  {true, true, false, true, true, false, true},    //Numero 2
  {true, true, true, true, false, false, true},    //Numero 3
  {false, true, true, false, false, true, true},   //Numero 4
  {true, false, true, true, false, true, true},    //Numero 5
  {true, false, true, true, true, true, true},     //Numero 6
  {true, true, true, false, false, true, false},   //Numero 7
  {true, true, true, true, true, true, true},      //Numero 8
  {true, true, true, true, false, true, true},     //Numero 9
};

//In questa variabile verrà memorizzata la temperatura prelevata dal sensore di temperatura
float temp;

//La tempertura prelevata verrà suddivisa in decine, unità e decimi.
int decine, unita, decimi;

void setup() {

  //Imposto i pin come OUTPUT
  for (int i = 2; i < 12; i++) {
    pinMode(i, OUTPUT);
  }

  /*Imposto Vref dell'ADC a 1,1V
  (per una maggiore precisione nel calcolo della temperatura)
  -------------------------------
  IMPORTANTE: Se utilizzi Arduino Mega sostituisci INTERNAL con INTERNAL1V1 */
  analogReference(INTERNAL1V1);
}

void loop() {

  /*Aggiorno il valore della temperatura ogni 1s.
   Per ogni ciclo di loop sono previsti circa 15ms di ritardo (delay(5) * 3).
   Considerando che ritardo = 67; ottengo 15 * 67 = 1005ms = circa 1s.*/
  if (cont == ritardo) {

    //Resetto il contatore
    cont = 0;

    //Calcolo della temperatura
    //=====================================
    temp = 0;
    for (int i = 0; i < 5; i++) //Esegue l'istruzione successiva 5 volte
      temp += (analogRead(pin_temp)  / 9.31); //Calcola la temperatura e la somma alla variabile 'temp'

    temp = temp / 5; //Calcola la media matematica dei  valori di temperatura
    //=====================================

    //Calcolo le decine
    decine = int(temp / 10);

    //Calcolo le unità
    unita = (int(temp) - (decine * 10));

    //Calcolo la cifra decimale
    decimi = int(temp * 10) - (unita * 10) - (decine * 100);
  }

  //Incremento il contatore
  cont++;

  VisualizzaNumero(decine, pin_decina);
  delay(5);
  VisualizzaNumero(unita, pin_unita);
  delay(5);
  VisualizzaNumero(decimi, pin_decimi);
  delay(5);

}

/*Visualizza il numero passato come parametro (numero) nel display specificato (disp).
Per i valori di 'disp' ammessi, vedi: pin_display_en*/
void VisualizzaNumero(int numero, int disp) {

  int i; //Contatore

  //Abilito solo il display di mio interesse e disabilito gli altri
  for (i = 0; i < num_cifre; i++) {
    if (pin_display_en[i] == disp) {
      /*Se il display è ad anodo comune devo mandare il livello logico alto per attivarlo.
      Se è a catodo comune verrà mandato il livello logico basso per attivarlo.*/
      digitalWrite(pin_display_en[i], anodo_com);
    } else {
      digitalWrite(pin_display_en[i], !anodo_com);
    }
  }

  //Accendo o spengo i vari LED del display
  for (i = 0; i < 7; i++) {
    //Se il display è ad anodo comune, devo invertire tutti i valori della matrice 'numeri'
    digitalWrite(pin_display[i], (anodo_com ^ numeri[numero][i]));
  }
}

questo è il codice solo che non visulizzo correttamente la temperatura
questi sono i display http://www.farnell.com/datasheets/1864135.pdf

qualche tempo fa ero riuscito a visualizzare la temperatura, adesso invece non ne vuole sapere…
i display si accendono ma non leggo numeri… i collegamenti sono giusti :frowning:

//Indica se il display è ad anodo comune
#define anodo_com false

sicuro che questa sia corretta ?