#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Inisialisasi LCD I2C dengan alamat 0x27 dan ukuran 16x2
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Pin potentiometer terhubung ke ADC ESP32 (misal GPIO 34)
const int potentiometerPin = 34;
// Rentang nilai ADC dari 0 hingga 4095 (ESP32 dengan resolusi 12-bit)
const int adcMaxValue = 4095;
// Rentang pH (biasanya pH air 0-14)
const float pHMin = 0.0;
const float pHMax = 14.0;
void setup() {
// Mulai komunikasi serial dan LCD
Serial.begin(115200);
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("pH Sensor");
delay(2000);
}
void loop() {
// Baca nilai dari potentiometer (simulasi sensor pH)
int potValue = analogRead(potentiometerPin);
// Konversi nilai ADC ke rentang pH (0-14)
float pHValue = (potValue / (float)adcMaxValue) * (pHMax - pHMin) + pHMin;
// Tampilkan nilai pH di Serial Monitor
Serial.print("Nilai ADC: ");
Serial.print(potValue);
Serial.print(" - pH: ");
Serial.println(pHValue);
// Tampilkan nilai pH di LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("pH: ");
lcd.setCursor(4, 0);
lcd.print(pHValue, 2); // Menampilkan dengan 2 desimal
// Delay agar tidak terlalu cepat
delay(500);
}