Ainda no programa da tampa automática do aquario

Adicionei um LCD para mostrar a temperatura, não sei se a biblioteca interfere no código, mas a parte da luminária não funciona certo, ela não está apagando sozinha depois de um tempo, tem que desligar no botão, se puderem me ajudar...

//*********************************************************************
#include <Thermistor.h>
#include <LiquidCrystal.h>
#define pinBotao 7
#define pinLED 6
#define cooler 8
boolean estadoBotao = true;
Thermistor temp(0); //VARIÁVEL DO TIPO THERMISTOR, INDICANDO O PINO ANALÓGICO (A0) EM QUE O TERMISTOR ESTÁ CONECTADO
unsigned long delay1 = 0;
unsigned long tempo = 1000;
//-----------------------------------------------------------------
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
//-----------------------------------------------------------------
void setup() {
  pinMode(pinBotao, INPUT_PULLUP);
  pinMode(pinLED, OUTPUT);
  lcd.begin(16, 2);
  lcd.print("Temperatura:");
}
//-----------------------------------------------------------------
void loop() {
  if (digitalRead(pinBotao) == LOW)           //  Se botao foi pressionado
  {
    while (digitalRead(pinBotao) == LOW) {}   // Enquanto botao pressionado
    estadoBotao = !estadoBotao;               // Inverte status do botão
    delay1 = millis();                        // Atualiza delay1
  }
  if (estadoBotao)                            // Se status do botao for true
  {
    digitalWrite( pinLED, HIGH);              // Liga LED
    if ((delay1 + tempo) < millis())          // Fica ligado por tempo mseg
    {
      estadoBotao = false;                    // Depois de tempo mseg status LED false
    }
  }
  else                                        // Se status botao for false
  {
    digitalWrite( pinLED, LOW);               // Desliga LED
  }
  int temperature = temp.getTemp(); //VARIÁVEL DO TIPO INTEIRO QUE RECEBE O VALOR DE TEMPERATURA CALCULADO PELA BIBLIOTECA
    
  lcd.setCursor(0, 1);
  lcd.print(temperature);
  
  if (temperature >= 28)
  {
    digitalWrite(cooler, HIGH);
  }
  else
  {
    digitalWrite(cooler, LOW);
  }

}

Oi @brenobozolla ,
por favor faça um teste aí.
Mude no seu código o valor da variável "estadoBotao de true para false, no inicio.
Mudando de boolean estadoBotao = true; para boolean estadoBotao = false;
Carregue o código, teste e conta o resultado pra gente.

RV mineirin

Testei o seu código aqui sem alterar nada e funcionou corretamente.

RV mineirin