Intercambio de informacion a travez de Display I2C2004

Hola, quisiera obtener ayuda en la configuración del display, a grandes rasgos, lo que estoy construyendo es una especie de termohigrostato para control de ambientes, o temperatura y humedad en los ambientes, el caso es que quiero sacarle el máximo provecho a mi display, pero el problema ocurre cuando intento cambiar la información que me muestra el display. Lo intente con delay(), pero la lectura del sensor se detenía, y pese a que hacia lo que le pedía no era como lo quería.

El caso es que (para acortar y tratar de plantear la duda lo mas rápido y conciso posible), pongo el siguiente ejemplo:
Voy a usar dos "sensores" o módulos, dht22 (temperatura) y el rtc (hora y fecha). El caso es que quiero que el programa haga lo siguiente: Durante la lectura del sensor dht22 muestre los datos durante un tiempo determinado, y que luego limpie la pantalla (lcd.clear), y muestre la hora y fecha de el modulo rtc, y así sucesivamente. Todo esto en tiempo real, osea sin interrupciones de ningún tipo en el display.

Como dije lo intente con la función delay(), pero al volver a iniciarse el loop la lectura del sensor quedaba pasmada en la pantalla, osea no recibía los nuevos datos, o si lo hacia no se veían en el display.

Espero que me hayan entendido y ojala alguien sepa con exactitud lo que quiero y me ayude con este temita.

Muchas gracias por su atención.

Mira el ejemplo BlinkWithoutDelay.ino que esta en el IDE.
El ejemplo usa millis() que es la solución a tu problema.

Hay cientos de ejemplos que lo usan y te permitirán un flujo constante del código y actualización de los sensores sin pausas debido a los delays.

Busca arriba derecha solo : millis().