//Library
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Set alamat LCD ke 0x27 untuk 16 kolom dan 2 baris
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Definisi PIN ADC (Gunakan GPIO 34 karena aman dan stabil)
constexpr byte pinSensor = 34;
void setup() {
Serial.begin(115200);
// Inisialisasi LCD
lcd.init(); //ganti dengan lcd.begin() pada arduino ide
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print(" ADC MASTER ");
lcd.setCursor(0, 1);
lcd.print(" BELAJAR 4.0 ");
delay(2000);
lcd.clear();
}
void loop() {
// 1. Baca nilai mentah (Raw) dari ADC (0 - 4095)
int rawValue = analogRead(pinSensor);
// 2. Konversi ke Persentase 0-100% (Universal)
// map(nilai, min_lama, max_lama, min_baru, max_baru)
int percent = map(rawValue, 0, 4095, 0, 100);
// 3. Tampilkan ke Serial Monitor (untuk Debugging)
Serial.print("Raw: "); Serial.print(rawValue);
Serial.print(" | Persen: "); Serial.println(percent);
// 4. Update Tampilan LCD
lcd.setCursor(0, 0);
lcd.print("Sensor ADC: ");
lcd.print(rawValue);
lcd.print(" "); // Spasi untuk hapus sisa angka lama
lcd.setCursor(0, 1);
lcd.print("Status : ");
lcd.print(percent);
lcd.print("% ");
delay(300); // Jeda biar LCD gak kedip terlalu cepat
}