#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define SENSOR_PIN 34
LiquidCrystal_I2C lcd(0x27, 16, 2);
float filteredValue = 0;
float alpha = 0.1; // Filter strength
void setup() {
Serial.begin(115200);
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("ESP32 ADC SYS");
delay(2000);
lcd.clear();
}
void loop() {
int rawValue = analogRead(SENSOR_PIN);
// Low Pass Filter
filteredValue =
alpha * rawValue +
(1 - alpha) * filteredValue;
// LCD Display
lcd.setCursor(0,0);
lcd.print("Raw:");
lcd.print(rawValue);
lcd.print(" ");
lcd.setCursor(0,1);
lcd.print("Filt:");
lcd.print((int)filteredValue);
lcd.print(" ");
// Serial Monitor
Serial.print("Raw Value: ");
Serial.print(rawValue);
Serial.print(" Filtered: ");
Serial.println(filteredValue);
delay(200);
}