Project ini menampilkan teks di layar LCD 16×2 menggunakan modul I2C, yang menyederhanakan pengkabelan dari 16 pin jadi cuma 4 pin. Cocok untuk menampilkan status, pesan, atau hasil bacaan sensor secara visual tanpa perlu Serial Monitor.


| Komponen | Pin Arduino | Fungsi |
|---|---|---|
| VCC LCD I2C | 5V Arduino | Sumber daya modul |
| GND LCD I2C | GND Arduino | Ground modul |
| SDA LCD I2C | Pin A4 | Jalur data komunikasi I2C |
| SCL LCD I2C | Pin A5 | Jalur clock komunikasi I2C |
Modul LCD I2C punya 4 pin: VCC, GND, SDA, SCL. Hubungkan sesuai tabel di atas — tidak perlu resistor tambahan karena modul I2C sudah punya rangkaiannya sendiri.
Buka Arduino IDE, masuk ke menu Sketch → Include Library → Manage Libraries. Ketik “LiquidCrystal I2C” di kolom pencarian, cari yang dibuat oleh Frank de Brabander, klik Install.
⬇ Download Library LiquidCrystal_I2C
Pada Wokwi lihat gambar berikut ini :

Kode ini menggunakan alamat 0x27, yang merupakan alamat paling umum untuk modul LCD I2C. Jika layar tidak menyala sama sekali setelah upload, kemungkinan alamat modulmu berbeda (misalnya 0x3F) — coba ganti angka itu di kode, atau cari tutorial “I2C Scanner” untuk mengecek alamat yang tepat.
Salin kode di bawah ini ke Arduino IDE, klik tombol Upload, dan tunggu sampai muncul tulisan “Done uploading”.
//Created by Irham Azhari Aulia
#include <LiquidCrystal_I2C.h>
// Mengatur ukuran LCD (alamat 0x27, 16 kolom, 2 baris)
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
// 1. Menyalakan mesin LCD
lcd.init();
// 2. Menyalakan lampu latar (backlight) biar teksnya kelihatan
lcd.backlight();
// 3. Menulis teks statis di baris PERTAMA (atas)
lcd.setCursor(0, 0); // (Mulai dari kolom 0, baris 0)
lcd.print(" Al Azhar Syifa Budi Cibinong ");
}
void loop() {
// 4. Menulis teks bergantian di baris KEDUA (bawah)
lcd.setCursor(0, 1); // (Mulai dari kolom 0, baris 1)
lcd.print(" STATUS: AMAN ");
delay(1500); // Tahan tulisan selama 1,5 detik
lcd.setCursor(0, 1);
lcd.print(" LCD BISA BACA! ");
delay(1500); // Tahan tulisan selama 1,5 detik
}
Fungsi setCursor(kolom, baris) menentukan posisi mulai menulis di layar — layar 16×2 punya 16 kolom (0-15) dan 2 baris (0-1). Baris pertama ditulis sekali saja di setup() karena isinya tidak berubah, sementara baris kedua ditulis berulang di loop() dengan teks bergantian setiap 1,5 detik.
Jika layar menyala tapi teksnya tidak terlihat sama sekali (hanya kotak-kotak putih), biasanya ada trimpot kecil di belakang modul I2C untuk mengatur kontras — putar pelan-pelan dengan obeng kecil sampai teks muncul.
🔒 Simulasi ini dikunci. Minta passcode ke gurumu untuk membuka.