Problema con DHt11 y 7 segmentos

Hola como estan, querido foro les escribo brevemente mi problema, quizas exista alguna solucion que no he podido encontrar, pero paso a comentarles. He programado el sensor DHT11 a mi arduino y a su vez un led de 7 segmentos max7219 8 digitos, resulta que cuando imprimo los comandos en el led de 7 segmentos, imprime al principio los datos correspondientes, pero cuando hace un segundo cheque luego de la funcion millis o delay, ya que prove ambas, como que los digitos se van superponiendo y empiezan aparecer en el resto de los segmentos mas cosas y termina o apagandose o sigue hasta que se pone todo en digitos raros, cual sera la solucion???

#include "LedControl.h"
LedControl Lc = LedControl(10, 8, 9, 1);

// Incluimos librería
#include <DHT.h>

// Definimos el pin digital donde se conecta el sensor
#define DHTPIN 2
// Dependiendo del tipo de sensor
#define DHTTYPE DHT11

// Inicializamos el sensor DHT11
DHT dht(DHTPIN, DHTTYPE);

long tiempoUltimaLectura = 0;

void setup() {
  // Inicializamos comunicación serie
  Serial.begin(9600);

  // Comenzamos el sensor DHT
  dht.begin();

  //inicializamos 7 digitos

  Lc.shutdown(0, false);

  Lc.setIntensity(0, 8);

  Lc.clearDisplay(0);

}


void loop() {
 //funcion millis para trabajar con otros programas
 
  if (millis() - tiempoUltimaLectura > 5000) {

    const byte C  = 0b01001110;
    Lc.setRow(0, 4, C);

    // Leemos la humedad relativa
    float h = dht.readHumidity();
    // Leemos la temperatura en grados centígrados (por defecto)

    // Comprobamos si ha habido algún error en la lectura
    //  if (isnan(h) || isnan(t)) {
    //    Serial.println("Error obteniendo los datos del sensor DHT11");
    //    return;
    //  }


    float t = dht.readTemperature ();
    int temp = dht.readTemperature();
    int unit = temp % 10;
    int tens = temp / 10;
    float rem = t - temp;
    int temp1 = rem * 100;
    int tens1 = temp1 / 10;
    int unit1 = temp1 % 10;


    Lc.setDigit(0, 3,  tens , false);
    Lc.setDigit(0, 2,  unit , true);
    Lc.setDigit(0, 1,  tens1 , false);
    Lc.setDigit(0, 0,  unit1 , false);
    //
    //    temp1 = rem * 100;
    //    tens1 = temp1 / 10;
    //    unit1 = temp1 % 10;
    //
    //    Lc.setDigit(0, 3,  tens , false);
    //    Lc.setDigit(0, 2,  unit , true);
    //    Lc.setDigit(0, 1,  tens1 , false);
    //    Lc.setDigit(0, 0,  unit1 , true);

    //Serial.print("Humedad: ");
    // Serial.print(h);
    //Serial.println(" %");
    //Serial.print("Temperatura: ");
    Serial.println(t);
    // Serial.println(" *C ");



    tiempoUltimaLectura = millis();
  }
}

Te aconsejo que comentes todo lo que que involucra el DHT y prueba a ver como funciona todo.
Seguro que lo hará bien.

Si es asi luego te digo que hacer pero basicamente el DHT involucra casi 2 segundos para leer sus datos.