#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x27
#define LCD_COLUMNS 16
#define LCD_LINES 2
#define SENSOR_PIN A0
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
void setup() {
Serial.begin(115200);
lcd.init();
lcd.backlight();
}
void loop() {
int adc = analogRead(SENSOR_PIN);
// Use 3.3V reference for STM32
int millivolts = (adc * 3300) / 1023; // Voltage in mV
int temperature = millivolts / 10; // LM35 → 10mV per °C
// Serial (no floats)
Serial.print("ADC: ");
Serial.print(adc);
Serial.print(" Temp: ");
Serial.print(temperature);
Serial.println(" C");
// LCD
lcd.setCursor(0, 0);
lcd.print("ADC: ");
lcd.print(adc);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print("Temp: ");
lcd.print(temperature);
lcd.print(" C ");
delay(500);
}