I2c LCD terdiri dari modul i2c dan LCD 16×2, jika kita koneksi Arduino dengan LCD 16×2 maka diperlukan setidaknya 12 kabel. Supaya kabel koneksi LCD ke Arduino lebih sedikit maka dibuat modul i2c. i2c adalah kepanjangan dari inter-IC (integrated circuit). Pin yang terhubung ke LCD sebanyak 16 pin sedangkan yang terhubung ke Arduino sebanyak 4 pin. Perhatikan gambar di bawah ini:

Gambar 1. Tampak belakang i2c LCD (sumber: bukalapak.com)
Koneksi i2c dengan Arduino dapat dilihat pada tabel di bawah ini:

Supaya lebih jelas, perhatikan pinout Arduino Uno berikut ini:

Gambar 2. Pinout Arduino Uno (sumber: theengineeringprojects.com)
Koneksi antara I2C LCD dengan Arduino dapat dilihat pada gambar di bawah ini:

Gambar 3. Koneksi I2C LDC dengan Arduino
Setelah dihubungkan I2C LCD 16×2 dengan Arduino selanjutnya koneksi Arduino dengan computer / laptop.
Melakukan scan alamat modul i2c
1. Gunakan sintaks di bawah ini:
[css]
//Youtube: Muhammad Pauzan
//Blog: pauzan.com
#include <Wire.h>
void setup()
{
Wire.begin();
Serial.begin(9600);
Serial.println("\nI2C Scanner");
}
void loop()
{
byte error, address;
int Devices;
Serial.println("Scanning...");
Devices = 0;
for(address = 1; address < 127; address++ )
{
Wire.beginTransmission(address);
error = Wire.endTransmission();
if (error == 0)
{
Serial.print("modul I2C ditemukan pada alamat 0x");
if (address < 16)
Serial.print("0");
Serial.print(address,HEX);
Serial.println(" !");
Devices++;
}
else if (error==4)
{
Serial.print("Error yang tidak diketahui pada alamat 0x");
if (address < 16)
Serial.print("0");
Serial.println(address,HEX);
}
}
if (Devices == 0)
Serial.println("modul I2C tidak ditemukan\n");
else
Serial.println("Selesai\n");
delay(5000);
}
[/css]
2. Jangan lupa sebelum diupload ke board Arduino terlebih dahulu dicek pada tools > Boards > pilih “Arduino Uno”.
3. Cek juga portnya, pilih tools > ports > lalu pilih port dimana Arduino terkoneksi
4. Lalu klik “upload”, jika sudah selesai buka serial monitor yang ada di sebelah kanan atas. Hasilnya dapat dilihat pada gambar di bawah ini:
Gambar 4. Alamat modul i2c LCD
5. Dicatat alamatnya (0x27), akan digunakan pada koding berikutnya.
Interface I2C LCD 16×2 dengan Arduino Uno
1. Setelah berhasil mencatat alamat modul I2C, selanjutnya download library I2C LCD 16×2 pada link di bawah ini:
Arduino-LiquidCrystal-I2C-library-master
2. Masukkan library tersebut dengan cara klik sketch > include library > add .ZIP library…
3. Pilih file .zip yang sudah didownload. Selesai.
4. Selanjutnya diupload kode program di bawah ini ke Arduino:
[css]
//Youtube: Muhammad Pauzan
//Blog: pauzan.com
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); //0x27 adalah alamat i2c yang sudah diperoleh sebelumnya
void setup()
{
lcd.begin();
lcd.backlight(); //supaya lampu backlightnya nyala
lcd.clear(); //layar lcd kosong
lcd.setCursor(3,0); //3 berarti kolom ke-3 (ada 16 kolom), 0 berarti baris paling atas
lcd.print("wELCOME TO");
lcd.setCursor (2,1);
lcd.print("pauzan.com");
}
void loop()
{
}
[/css]
5. Outputnya dapat dilihat pada gambar di bawah ini:

Gambar 5. Hasil interface arduino dengan i2c LCD
Berikut Videonya: