Pertemuan 4: Antarmuka I2C dan LCD 16×2

Mata Kuliah: MKK.10.01.005 — Kecerdasan Buatan & Internet of Things (TW1). Durasi: 120 menit (Tatap Muka). Penyusun: Irfan Yusin Syahrullah.

Tujuan Pembelajaran

  • Memahami cara kerja komunikasi serial I2C (SCL dan SDA)
  • Menginstal library LiquidCrystal_I2C pada Arduino IDE
  • Mencari alamat I2C perangkat dengan program scanner
  • Menampilkan teks dinamis dari variabel dan sensor pada LCD

Capaian Pembelajaran

Mahasiswa mampu menghubungkan LCD 16×2 via modul I2C ke ESP32 serta menampilkan teks statis dan dinamis.

Konsep Materi

I2C adalah protokol komunikasi serial sinkron menggunakan dua jalur: SCL (clock) dan SDA (data). Banyak perangkat dapat berbagi jalur yang sama karena setiap perangkat memiliki alamat unik (7 bit). Pada ESP32, pin I2C umumnya SDA di GPIO 21 dan SCL di GPIO 22.

Modul I2C untuk LCD mengubah banyak pin kendali LCD menjadi hanya empat perangkat (VCC, GND, SDA, SCL), sehingga sangat menghemat penggunaan GPIO. Di belakangnya, chip PCF8574 menerjemahkan data I2C menjadi sinyal kendali LCD, menghemat ruang dan kabel.

Ada banyak alamat I2C (biasanya 0x27 atau 0x3F) tergantung produsen modul. Karena itu langkah pertama wajib adalah memindai alamat menggunakan program scanner sebelum inisialisasi layar.

Library yang dipakai adalah LiquidCrystal_I2C. Setelah inisialisasi dengan alamat dan ukuran kolom-baris (16,2), LCD dapat diberi teks dengan lcd.print(). Untuk pembaruan dinamis kita perlu lcd.setCursor dan lcd.clear atau penimpaan.

Menampilkan nilai sensor pada LCD sangat penting pada IoT, karena memberikan umpan balik lokal sebelum data dikirim ke cloud. Pada contoh berikut kita menampilkan counter sederhana.

Langkah Praktik

  1. Hubungkan modul I2C LCD ke ESP32: VCC ke 3V3 (atau VIN), GND ke GND, SDA ke GPIO 21, SCL ke GPIO 22.
  2. Instal library ‘LiquidCrystal I2C’ milik Frank de Brabander melalui Library Manager.
  3. Unggah program scanner I2C untuk menemukan alamat modul Anda (0x27 atau 0x3F).
  4. Ganti alamat pada program dan tulis kode menampilkan teks ‘HELLO’ dan ‘PalComTech’.
  5. Tambahkan counter di loop dan tampilkan nilainya yang terus bertambah setiap detik.

Kode Contoh

#include 
#include 

LiquidCrystal_I2C lcd(0x27, 16, 2);   // sesuaikan alamat hasil scan

int counter = 0;

void setup() {
  lcd.init();
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("HELLO PalComTech");
}

void loop() {
  counter++;
  lcd.setCursor(0, 1);
  lcd.print("Nilai: ");
  lcd.print(counter);
  delay(1000);
}

Latihan / Proyek

  • Modifikasi program agar menampilkan hasil pengukuran dari sensor LDR atau potensiometer pada baris kedua.
  • Buat tampilan dua baris yang berisi teks statis di baris atas dan nilai dinamis di baris bawah.
  • Coba gunakan lcd.scrollDisplayLeft untuk teks berjalan dan jelaskan fungsinya.

Rekap & Tindak Lanjut

Mahasiswa memahami komunikasi I2C dan mampu menampilkan informasi pada LCD. Keahlian menampilkan data kecil namun vital, menjadi dasar umpan balik visual pada proyek sensor di pertemuan berikutnya.

No Comment! Be the first one.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *