#include <LiquidCrystal_I2C.h>
#include <Wire.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); // Endereço 0x27, display 16x2
#define SENSOR_TEMP 14
void lcd_apagarLinha(uint8_t linha) {
lcd.setCursor(0, linha);
lcd.print(" "); // Apaga a linha para evitar sobreposição
}
void setup() {
Wire.begin(23, 22); // Define os pinos SDA e SCL do ESP32
lcd.init(); // Inicializa o display LCD
lcd.backlight(); // Ativa a luz de fundo do LCD
lcd.setCursor(0, 0);
lcd.print("Temperatura:");
}
void loop() {
int valor = analogRead(SENSOR_TEMP); // Lê o valor analógico do sensor
float vout = valor * (5.5 / 4095.0); // Converte para tensão (ESP32 usa 3.3V e 12 bits de resolução)
float temp = vout * 100.0; // LM35: 10mV/°C -> 100x para conversão em graus Celsius
lcd_apagarLinha(1); // Apaga a linha para evitar sobreposição
lcd.setCursor(3, 1);
lcd.print(temp, 1); // Exibe a temperatura com 1 casa decimal
lcd.print((char)223); // Símbolo de grau
lcd.print("C");
delay(300); // Atraso para atualizar a leitura
}