#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Configurações do LCD
LiquidCrystal_I2C lcd(0x27, 16, 2); // Endereço I2C do display e dimensões
const int sensorPin = 34; // Pino ADC onde o sensor está conectado
const int ledPin = 25; // Pino onde o LED está conectado
void setup() {
// Inicializa o LCD
lcd.init(); // Inicializa o display
lcd.backlight(); // Liga a luz de fundo do LCD
lcd.print("Temp: "); // Exibe "Temp: " no LCD
pinMode(sensorPin, INPUT); // Configura o pino do sensor como entrada
pinMode(ledPin, OUTPUT); // Configura o pino do LED como saída
}
void loop() {
int sensorValue = analogRead(sensorPin); // Lê o valor analógico do sensor (ADC)
// Converte o valor lido em uma escala de temperatura (0 a 100°C)
float voltage = sensorValue * (3.3 / 4095.0); // Converte para tensão
float temperature = (voltage / 3.3) * 100.0; // Agora o valor vai de 0 a 100
// Exibe a temperatura no LCD
lcd.setCursor(6, 0); // Move o cursor para a posição da temperatura
lcd.print(temperature); // Exibe a temperatura
lcd.print(" C "); // Exibe a unidade "C"
// Mapeia a temperatura para a intensidade do LED (0 a 255)
int ledValue = (int)(temperature * 255.0 / 100.0); // Mapeia a temperatura de 0-100°C para 0-255
// Escreve o valor PWM no LED
analogWrite(ledPin, ledValue); // Controla a intensidade do LED
delay(1000); // Atualiza a cada 1 segundo
}