utilizando Millis no display 16,02

pessoal estou utilizando a funcion Delay para mudar de tela mas está atrapalhando outras funcion.
como posso utilizar a funcio Millis?
alguem poderia me ajudar?
Grato
seque o Sketch :

// CONTROLE DE TEMPO COM BOTAO DE START

// LCD I2C FUNCIONANDO

// temp e humidade com LCD FUNCIONANDO
// sensor DHT 22 FUNCIONANDO
// FUNCIONANDO IF AND ELSE
// EDSON SANTINI
// 29-08-2018
// led vermelho funciona pelo botao de impulso
// led amarelo pelo contador
// temp e humidade com LCD FUNCIONANDO
// sensor DHT 22 FUNCIONANDO
// FUNCIONANDO IF AND ELSE

// LIGACOES
// LCD 2 LINHAS 16 COLUNAS
// PINOS LCD // PINOS RDUINO
// 1 VSS - GND
// 2 VDD + 5V
// 3 VO POT 10K - CENTRO
// 4 RS - DIGITAL 9
// 5 RW - DIGITTAL - GND
// 6 E - D8
// 7 DO - N/U
// 8 D1 - N/U
// 9 D2 - N/U
// 10 D3 - N/U
// 11 - D4 - DIGITAL 5
// 12 - D5 - DIGITAL 4
// 13 - D6 - DIGITAL 3
// 14 - D7 - DIGITAL 2
// 15 - A (ANODO) - CENTRO DO POT (2) (RECEBE +)
// 15 - k (KATODO) - GND

// PINOS 24 E 26 SAIDA PARA RELE - TEMPERATURA
// LED VERMELHO FUNCIONA PELO BOTAO DE IMPULO
// LED AMARELO PELO TIMER

// TIMER ---- PARA CHOCADEIRA LIGAÇÕES

// BOTAO LIGA LED VERMELHO

// BIBLIOTECAS

#include <TimerOne.h>
#include <Arduino.h>
#include <Wire.h>
#include "DHT.h" //Biblioteca do DHT
#include <LiquidCrystal.h> //Biblioteca do LCD
//LiquidCrystal lcd(9, 8, 5, 4, 3, 2); // configurações do LCD sem I2C
#include <LiquidCrystal_I2C.h>

// Set the LCD address to 0x3F for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x3F, 16, 2);

#define PINODHT A1 //Pino para comunicação com DHT
#define TIPODHT DHT22 //DHT22(AM2302/ AM2321)

DHT dht(PINODHT, TIPODHT); //Configuraçãoes do DHT

// DECLARANDO PINOS DE SAIDA TEMPO

int Botao = 33 ; // LIGA CONTROLE DO TEMPO

int LedVerde = 36; // LED 1 // SAIDA CONTROLE RELE MOTOR GIRO
int LedVermelho = 38; // LED 2 // LIGA QUANDO BOTAO DE TEMPO DE GIRO LIGAR

boolean estadoBotao = true;
boolean estAntBotao = true;
boolean estadoPisca = false;
unsigned long tempo1 = 0;
unsigned long tempo2 = 0;

// DECLARANDO PINOS DE SAIDA TEMPERATURA

int azul = 22; // SAIDA SENSOR TEMPERATURA
int amarelo = 24; // SAIDA SENSOR TEMPERATURA LIGA RELE TEMPERATURA
int vermelho = 26; // SAIDA SENSOR TEMPERATURA

int tempPin = A1; // ENTRADA SENSOR DE TEMPERATURA
int valorSensorTemp = 0;
int valorTemp;
float temperatura; // armazena temperatura

void setup() { //............. TEMPO SETUP

pinMode (Botao, INPUT_PULLUP); // ENTRADA 33 liga led verm direto
pinMode (LedVerde, OUTPUT); // saida para rele 38
pinMode (LedVermelho, OUTPUT); // SAIDA 38 INDICA TEMPO LIGADO
digitalWrite (LedVerde, HIGH);
digitalWrite (LedVermelho, HIGH);

// TEMPERATURA
{

lcd.begin();
lcd.backlight();
Serial.begin(9600); //tempo de leitura

lcd.setCursor(0, 0);
lcd.print("Testando o sen-"); // ESCREVE TESTANDO
lcd.setCursor(0, 1);
lcd.print("sor de tempera-"); // SENSOR DE TEMPERATURA

//colocar tempo para leitura ??????????????
{
lcd.clear(); // LIMPA
lcd.setCursor(0, 0);
lcd.print("tura e umidade"); // ESCREVE HUMIDADE
lcd.setCursor(0,1);
lcd.print("DHT22!");

//colocar tempo para leitura ??????????????
{
lcd.clear();
dht.begin(); //Inicializa o DHT

}
pinMode (azul, OUTPUT); // PINO 22
pinMode (amarelo, OUTPUT); // PINO 24
pinMode (vermelho, OUTPUT); // PINO 26

pinMode (LedVerde, OUTPUT);
pinMode (LedVermelho, OUTPUT);
digitalWrite (LedVerde, HIGH);
digitalWrite (LedVermelho, LOW);}

}}

void loop() // LOOP CONTROE DO TEMPO
{

estadoBotao = digitalRead(Botao);
if(!estadoBotao && estAntBotao)
{estadoPisca = !estadoPisca;
}
estAntBotao = estadoBotao;

if (estadoPisca) {
digitalWrite (LedVermelho, HIGH ); // se estiver contando tempo led ligado
}
else {
digitalWrite (LedVermelho, LOW); // se não estiver contando tempo led apagado
}

if (estadoPisca) {

if((millis() - tempo1) >=7500){ // TEMPO GIRO DO MOTOR CONTANDO DESLIGADO CONTANDO 2HS
digitalWrite (LedVerde, LOW); // LED LIGADO (VALOR NEGADO)

}
if ((millis() - tempo1) <=2500) { // TEMPO DO GIRO DO MOTOR LIGADO
digitalWrite (LedVerde, HIGH); // LED DESLIGADO

}
if((millis() - tempo1) >= 10000) // IMPORTANTE SOMAR OS TEMPOS DESLIGADO
tempo1 = millis(); // + LIGADO PARA ZERAR O CONTADOR

}else{ digitalWrite(LedVerde, HIGH);}
delay (1);

// LOOP TEMPERATURA
//Ler a temperatura ou humidade leva cerca de 250 milisegundos!

{
float h = dht.readHumidity(); //Lê a temperatura em Celsius (padrão)
float t = dht.readTemperature(); // Checando se qualquer leitura falhou.
if (isnan(h) || isnan(t)) {
lcd.setCursor(0, 1);
lcd.print("Falha ao ler");
return;
float temperature, lim;
lim = 37; // coloque a temp desejada ???
}
lcd.setCursor(0,0);
lcd.print("Umid: ");
lcd.setCursor(6,0);
lcd.print(h);
lcd.setCursor(12,0);
lcd.print("%U ");
lcd.setCursor(0,1);
lcd.print("Temp: ");
lcd.setCursor(6,1);
lcd.print(t );
lcd.setCursor(12, 1);
lcd.print("*C ");

//delay (2000);

// lcd.clear();
// lcd.setCursor (1,0);
// lcd.print(" teste");
// lcd.setCursor (0,1);

lcd.setCursor (4,0);
lcd.print ("do cursor ");
delay(1000);
lcd.setCursor (5,1);
lcd.print (" segunda " );
delay(1000);
lcd.clear();
lcd.setCursor (1,0);
lcd.print (" linha ");
lcd.setCursor (0,1);
lcd.print (" teste 2 ");
delay (3000);
lcd.setCursor (1,0);
lcd.print(" ver como ");
lcd.setCursor (2,1);
lcd.print ("funciona ");
delay (1000);

// declaracao do time apos voide loop

if (t <37.5) // MINIMA TEMPERATURA DESEJADA
{
digitalWrite (vermelho, LOW); // LIGAR RELE ON
digitalWrite (amarelo, LOW); // SAIDA RESERVA
}
else if (t > 37.9) // MAXIMA TEMPERATURA DESEJADA
{
digitalWrite (vermelho, HIGH); // RELE OFF
digitalWrite (amarelo, HIGH); // SAIDA RESERVA OFF
} }} : smiley-confuse: : smiley-confuse: : smiley-confuse:

When posting code, please use code tags.

O teu código tem millis() já lá dentro... não funciona?