Filho

Fala turma. Me chamo Filho e…
Eu preciso de ajuda!
Estou fazendo um projeto para ligar um sensor de temperatura com LCD 16x2 (utilizo o i2c).funciona assim:

quando eu apertar o botão do controle remoto ligo um ventilador (pinoledvermelho) e quando eu aperto o mesmo botão, desligo. Ao ligar o ventilador o lcd informa a temperatura ambiente e…
… Ao desligar eu quero que que o Backlight apague e não seja informado nada no lcd.

segue o código:

Por que não funciona? Ajudem! kkkkk

 #include <IRremote.h>  
 #include <Wire.h>
 #include <LiquidCrystal_I2C.h>
// Inicializa a biblioteca com os números dos pinos de interface
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Cria um objeto lcd e atribui os pinos
byte maxC=0, minC=100, maxF=0, minF=212;
boolean scale = 1;
unsigned char buttonPin=8;
unsigned char RECV_PIN = 11;  
float armazenavalor;  
unsigned char pinoledvermelho = 5;  
unsigned char pinoledverde = 7;
IRrecv irrecv(RECV_PIN);  
decode_results results;  
 
void setup()  
{ 
 lcd.begin(16, 2); // Define o display com 16 colunas e 2 linhas
 analogReference(INTERNAL);
 pinMode(buttonPin, INPUT);
 lcd.clear(); 
 lcd.backlight();//activas a backlight
 pinMode(pinoledvermelho, OUTPUT); 
 pinMode(pinoledverde, OUTPUT);
 Serial.begin(9600);  
 irrecv.enableIRIn(); // Inicializa o receptor IR  
}     
void loop()  
{  
 if (irrecv.decode(&results))  
 {  
   Serial.print("Valor lido : ");  
   Serial.println(results.value, HEX);  
   armazenavalor = (results.value);
   if (armazenavalor == 0xFD30CF) //Verifica se a tecla 1 foi acionada  
   {    
    digitalWrite (pinoledvermelho,!digitalRead(pinoledvermelho));
    }
    if (digitalRead (pinoledvermelho),HIGH)
     {    
   changeLCD();
    }
    else
  {    
     changeoffLCD;();
    } 
 irrecv.resume(); //Le o próximo valor  
  }  
}  
int changeLCD() {
lcd.setCursor(0,0); // Define o cursor na posição de início
int sensor = analogRead(0); // Lê a temperatura do sensor
int buttonState = digitalRead(buttonPin); // Verifica se o botão foi pressionado
switch (buttonState) { // Altera o estado da escala, caso tenha sido pressionado
case HIGH:
scale=-scale; // Inverte a escala
lcd.clear();
}
delay(250);
switch (scale) { // Decide por escala em Celsius ou Fahrenheit
case 1:
celsius(sensor);
break;
case -1:
fahrenheit(sensor);
}
}
void celsius(int sensor) {
lcd.setCursor(0,0);
int temp = sensor * 0.0927734375; // Converte para Celsius
lcd.print(temp);
lcd.write(B11011111); // Símbolo de grau
lcd.print("C ");
if (temp>maxC) {maxC=temp;}
if (temp<minC) {minC=temp;}
lcd.setCursor(0,1);
lcd.print("H=");
lcd.print(maxC);
lcd.write(B11011111);
lcd.print("C L=");
lcd.print(minC);
lcd.write(B11011111);
lcd.print("C ");
}
void fahrenheit(int sensor) {
lcd.setCursor(0,0);
float temp = ((sensor * 0.09765625) * 1.8)+32; // Converte para Fahrenheit
lcd.print(int(temp));
lcd.write(B11011111); // Imprime o símbolo de grau
lcd.print("F ");
if (temp>maxF) {maxF=temp;}
if (temp<minF) {minF=temp;}
lcd.setCursor(0,1);
lcd.print("H=");
lcd.print(maxF);
lcd.write(B11011111);
lcd.print("F L=");
lcd.print(minF);
lcd.write(B11011111);
lcd.print("F ");
}

int changeoffLCD()
{
 lcd.setCursor(0,0);
 lcd.clear();
 lcd.setCursor(0,1);
 lcd.clear();
 lcd.setBacklight(LOW);
}

Moderator edit:
</mark> <mark>[code]</mark> <mark>

</mark> <mark>[/code]</mark> <mark>
tags added.

Qual é o sensor de temperatura?

O que é que não está a fazer... tu não descreveste qual é o teu problema.