2 LCD I2C Arduino
Eh ketemu lagi sama mumunnya Ardutech .. Kesempatan yang baik ini, kita lanjutkan bikin aplikasi Arduino : bagaimana menampilkan 2 LCD display dengan 1 buah Arduino UNO. Aplikasi ini sebenarnya lanjutan dari proyek yang pernah kita buat : “LCD I2C Arduino”. Masih dengan modul backpack I2C LCD dan LCD Display (text) kita tambahkan 1 LCD lagi sehingga total nanti ada 2 LCD I2C Arduino . Mengenai modul I2C LCD silakan cek ya di artikel sebelumnya.
Perlu diperhatikan lagi mengenai modul I2C LCD adalah tentang addressing atau pengalamatan. Pada modul I2C LCD terdapat jumper A2, A1 dan A0 yang dapat dibuat menjadi sebuah alamat. Pada kondisi default (A0, A1, A2 tidak ter-jumper) maka alamatnya adalah 0x27. Konfigurasi bit A2, A1, A0 akan dapat membuat 8 alamat LCD. Jika A0, A1, A2 tidak di-jumper maka logikanya adalah “1” sehingga konfigurasi bit-nya dalam biner = 0010 0111. Berikut table konfigurasi A0, A1, A2.
Selanjutnya langsung saja kita buat aplikasinya : 2 LCD I2C Arduino. Siapkan kebutuhan kompoenennya :
- Arduino UNO (2)
- LCD Display 16×2 (2)
- Backpack I2C module LCD (2)
- Breadboard
- Kabel konektor
Satu modul LCD I2C biarkan saja apa adanya, berarti alamatnya 0x27. Satu lagi kita buat dengan alamat 0x21, berarti A2 = 0, A1 = 0, A0 =1. Logika “0” berarti di-jumper alias disambung antara titik A2 ke titik diatasnya (disambung).
Pasang konektor 16 pin di masing – masing modul I2C ke pin LCD Display kemudian solder, jika sudah koneksikan dengan Arduino UNO seperti pada rangkaian berikut ini :
Pin SDA dan SCL di Arduino silakan cek label-nya di balik (bagian bawah) Arduino. Bisa juga koneksi ke pin A4 untuk SDA dan pin A5 untuk SCL. Cara menyambung 2 LCD I2C dengan Arduino cukup jadikan 1 antara masing – masing pin. Pin SDA modul 1 terhubung dengan pin SDA modul 2 kemudian dihubungkan dengan pin SDA Arduino (A4), demikian juga untuk pin SCL, Gnd dan VCC.
Pemrograman 2 LCD I2C dengan Arduino.
Jika hardware sudah siap, berikutnya kita buat programnya. Sebelumnya siapkan library LiquidCrystal_I2C.h yang dapat sahabat sedot disini. Masukkan library tersebut ke folder libraries diman anda menyimpan aplikasi Arduino IDE atau dari menu Sketch -> Include Library -> Add .ZIP. Sekarang kita tulis programnya di Arduino IDE.
/************************************************** * menampilkan 2 LCD I2C dengan Arduino * display : 2 backpack I2C LCD module + 2 LCD 16x2 * I2C LCD -- Arduino UNO * Gnd -- GND * Vcc -- 5V * SDA -- A4 * SCL -- A5 * www.ardutech.com *************************************************/ #include <Wire.h> #include <LiquidCrystal_I2C.h> //LCD 1 alamat 0x27, default dari modul I2C LCD //jenis LCD 16x2 LiquidCrystal_I2C lcd1(0x27, 16, 2); //LCD 1 alamat 0x21, default dari modul I2C LCD //A2+A1 dijumper, A0 dibiarkan saja. //jenis LCD 16x2 LiquidCrystal_I2C lcd2(0x21, 16, 2); void setup() {//inisialisasi LCD 1 dan LCD 2 lcd1.init(); lcd2.init(); //aktifkan backlight LCD 1 dan LCD 2 lcd1.backlight(); lcd2.backlight(); //hapus tampilan LCD 1 lcd1.clear(); //tulis di LCD 1 baris ke-1 lcd1.print("LCD I2C ke-1"); //set cursor LCD 1 ke baris 2 lcd1.setCursor(0, 1); //tulis di LCD 1 baris ke-2 lcd1.print("www.ardutech.com"); //hapus tampilan LCD 2 lcd2.clear(); //tulis di LCD 2 baris ke-1 lcd2.print("LCD I2C ke-2"); //set cursor LCD 2 ke baris 2 lcd2.setCursor(0, 1); //tulis di LCD 2 baris ke-2 lcd2.print("=Jogjakarta="); } void loop() { }
Setelah selesai, simpan (Save) kemudian Upload ke Arduino UNO. Hasilnya langsung tampak di 2 LCD dengan tampilan yang berbeda.
Kita lihat programnya. Awal program berupa pemakaian library I2C LCD.
#include <Wire.h> #include <LiquidCrystal_I2C.h>
Dilanjutkan dengan pendefinisian LCD 1 dengan address 0x27 dan tipe LCD 16×2.
//LCD 1 alamat 0x27, default dari modul I2C LCD //jenis LCD 16x2 LiquidCrystal_I2C lcd1(0x27, 16, 2);
Pendefinisian LCD 2 dengan address 0x21 dan tipe LCD 16×2.
//LCD 1 alamat 0x21, default dari modul I2C LCD //A2+A1 dijumper, A0 dibiarkan saja. //jenis LCD 16x2 LiquidCrystal_I2C lcd2(0x21, 16, 2);
Pada fungsi setup() , yang pertama inisialisasi LCD 1 dan LCD 2 serta pengaktifan backlight pada masing – masing LCD.
{//inisialisasi LCD 1 dan LCD 2 lcd1.init(); lcd2.init(); //aktifkan backlight LCD 1 dan LCD 2 lcd1.backlight(); lcd2.backlight();
Berikutnya pengolahan tampilan pada LCD 1. Pertmana hapus tampilan (clear screen) kemudian menulis di baris pertama dilanjutkan penempatan cursor untuk menulis di baris ke-2.
//hapus tampilan LCD 1 lcd1.clear(); //tulis di LCD 1 baris ke-1 lcd1.print("LCD I2C ke-1"); //set cursor LCD 1 ke baris 2 lcd1.setCursor(0, 1); //tulis di LCD 1 baris ke-2 lcd1.print("www.ardutech.com");
Perintah akses LCD 1 dan akses LCD 2 cukup dengan memberi indeks setelah syntax “lcd”. Sebagai contoh untuk menghapus tulisan LCD 1 : “lcd1.clear()” dan menghapus LCD 2 :”lcd2.clear()”.
Terakhir perintah untuk mengolah di LCD 2 dengan mekanisme sama dengan LCD 1 hanya berbeda tulisannya saja.
//hapus tampilan LCD 2 lcd2.clear(); //tulis di LCD 2 baris ke-1 lcd2.print("LCD I2C ke-2"); //set cursor LCD 2 ke baris 2 lcd2.setCursor(0, 1); //tulis di LCD 2 baris ke-2 lcd2.print("=Jogjakarta=");
Silakan teman – teman menambahkan LCD lagi sehingga jadi 3 atau 4 LCD. Prinsipnya pada pengalamatan modul I2C LCD, tinggal tentukan alamatnya kemudian jumper A0, A1, A2. Semoga bermanfaat.