Program LCD dengan I2C dan Arduino IDE
LCD yang saya maksud itu seperti gambar di bawah ini ya.
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:
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:
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:
Coba kita upload dulu untuk mengetes program bawaan dari example. Hasilnya adalah seperti ini jika berhasil:
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.
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 :)