#include <LiquidCrystal_I2C.h> // Library untuk komunikasi dengan LCD melalui I2C
LiquidCrystal_I2C lcd(0x27, 16, 2); // Membuat objek LCD dengan alamat I2C 0x27, 16 kolom, dan 2 baris
// Deklarasi variabel untuk menyimpan nilai hasil pembacaan analog
int pot;
void setup() {
// Mengatur pin 33 sebagai input untuk membaca nilai analog
pinMode(33, INPUT);
// Inisialisasi LCD
lcd.init(); // Memulai komunikasi dengan LCD
lcd.backlight(); // Menyalakan lampu latar pada LCD
// Memulai komunikasi Serial dengan baud rate 9600
Serial.begin(9600);
}
void loop() {
// Membaca nilai analog dari pin 33 dan menyimpan hasilnya ke variabel 'pot'
pot = analogRead(33);
// Menampilkan nilai potensiometer di baris pertama LCD
lcd.setCursor(0, 0); // Mengatur kursor ke kolom 0, baris 0
lcd.print("pot: "); // Membersihkan baris sebelumnya dengan menimpa spasi
lcd.setCursor(0, 0); // Kembali ke posisi awal untuk menampilkan teks baru
lcd.print("pot: ");
lcd.print(pot); // Menampilkan nilai potensiometer
// Mengirim nilai potensiometer ke Serial Monitor untuk debugging
Serial.println(pot);
// Memberikan jeda selama 1 detik sebelum pembacaan berikutnya
delay(1000);
}
/*
Penjelasan Program:
1. Library `LiquidCrystal_I2C` digunakan untuk memudahkan komunikasi dengan LCD menggunakan protokol I2C.
2. Variabel `pot` digunakan untuk menyimpan nilai pembacaan analog dari pin GPIO 33.
3. Fungsi `lcd.setCursor` digunakan untuk mengatur posisi kursor di layar LCD.
4. Fungsi `analogRead` membaca nilai analog dari pin GPIO, dengan rentang nilai 0 hingga 4095 (resolusi 12-bit).
5. Fungsi `Serial.println` digunakan untuk menampilkan data di Serial Monitor sebagai alat debugging.
6. `delay(1000)` memberikan jeda waktu 1 detik antara setiap pembacaan analog.
Pengembangan Lebih Lanjut:
1. Tambahkan pembacaan dari pin lain atau komponen tambahan jika diperlukan.
2. Gunakan `map()` untuk mengkonversi nilai potensiometer ke skala yang lebih spesifik, seperti 0-100% atau 0-5V.
3. Gunakan `millis()` untuk membuat program lebih responsif, menggantikan fungsi `delay()`.
*/