Program LCD dengan I2C dan Arduino IDE

Indradianto
3 min readMar 27, 2021

--

LCD yang saya maksud itu seperti gambar di bawah ini ya.

LCD 20x04

Ada beberapa ukuran yang tersedia di pasaran. Karena saya hanya punya yang ukuran 20x04, kita gunakan itu saja ya, hehe.

Yuk langsung mulai saja, yang perlu disiapkan adalah LCD 20x04, modul I2C, kabel jumper male-female 4 buah, dan Arduino. Di sini saya menggunakan Arduino Uno. Rangkaiannya adalah sebagai berikut:

Rangkaian LCD 20x04

Sebenarnya LCD bisa langsung dihubungkan dengan Arduino tanpa modul I2C, tapi membutuhkan lebih banyak kabel. Dengan adanya I2C, kita bisa menghemat penggunaan kabel. Ciri-ciri I2C adalah penggunaan pin SDA dan SCL. Pada Arduino Uno pin A4 merupakan SDA, sedangkan pin A5 merupakan SCL.

Oke lanjut ke program, kita buat yang sederhana saja, misal membuat tulisan seperti ilustrasi berikut:

Ilustrasi tampilan yang akan dibuat

Nah, maksud dari 20x04 tadi anggap saja seperti persegi panjang dengan panjang 20 karakter dan lebar 4 karakter. Jadi total karakter yang bisa ditampilkan pada LCD 20x04 adalah 80 karakter.

Untuk memulai membuat program, tambahkan library LiquidCrystal I2C terlebih dahulu jika belum ada. Kemudian buka examplenya melalui File -> Examples -> LiquidCrystal I2C -> HelloWorld. Tampilannya adalah sebagai berikut:

Program example LiquidCrystal I2C HelloWorld

Coba kita upload dulu untuk mengetes program bawaan dari example. Hasilnya adalah seperti ini jika berhasil:

Hasil program example LiquidCrystal I2C HelloWorld

Hmm ada yang rusak :(

Kini saatnya kita memodifikasi sedikit program agar tampilannya sesuai dengan ilustrasi tadi. Yang perlu kita utak-atik di sini adalah program bagian lcd.setCursor(x, y) dan lcd.print("tulisan"). Pada lcd.setCursor(x, y), x mewakili kolom dan y mewakili baris. Misal pada baris pertama kita menampilkan kata HALO yang dimulai dari kolom kesembilan, maka perintah yang digunakan adalah:

lcd.setCursor(8, 0);
lcd.print("HALO");

Untuk hitungan baris dan kolom dimulai dari 0 ya, jadi kolom kesembilan berarti 8 dan baris pertama berarti 0. Sekarang coba tebak, bagaimana program untuk tulisan INI ADALAH TULISAN dan SEMOGA BERMANFAAT :)?

Kalau jawabanmu seperti ini, selamat kamu benar.

lcd.setCursor(1, 1);
lcd.print("INI ADALAH TULISAN");
lcd.setCursor(0, 3);
lcd.print("SEMOGA BERMANFAAT :)");

Selain setCursor dan print, masih banyak perintah lain yang bisa digunakan. Kalau penasaran, buka saja file library LiquidCrystal I2C.

Sebagian isi LiquidCrystal_I2C.cpp

O iya, kalau tampilan LCD jadi kotak-kotak atau kosong, sepengalaman saya ada dua solusi yang bisa dicoba. Solusi pertama yaitu dengan memutar-mutar baut di modul I2C. Solusi kedua yaitu dengan mengganti program bagian LiquidCrystal_I2C lcd(0x27, 20, 4);. Maksud dari 20 dan 4 adalah mewakili ukuran LCD, sesuaikan bagian tersebut dengan ukuran LCD yang digunakan. Sedangkan 0x27 merupakan alamat I2C, biasanya 0x27 atau 0x3F. Cara mengecek alamat I2C bisa dengan menggunakan program yang tersedia di example yaitu File -> Examples -> Wire -> i2c_scanner.

Oke saya rasa cukup sekian ya, semoga bermanfaat :)

--

--

Indradianto
Indradianto

Written by Indradianto

Familiar knowledge for us can be new knowledge for others. So, let's sharing knowledge whatever it is, as long as it's useful :)

Responses (1)