Menampilkan Karakter pada LCD dengan Arduino (bag-2)

Pada tulisan sebelumnya sudah dijabarkan fungsi pin-pin pada LCD, cara penyambungannya dengan arduino menggunakan mode komunikasi 4-bit, serta menampilkan kalimat pada layar LCD. Kali ini akan membahas bagaimana menampilkan karakter spesial pada library LiquidCrystal. Setiap sel pada LCD resolusinya 5×8 pixel, sehingga bukan hanya alfabet saja yang dapat ditampilkan melainkan berbagai karakter yang sesuai dengan keinginan, asalkan sesuai dengan resolusinya. Karakter dapat dibuat sendiri, misalkan tanda rumput, jantung, kotak, dan lain sebagainya. Sebelumnya, perhatikan gambar berikut.

Tiap sel terdiri dari 5×8 titik – sumber https://lastminuteengineers.com/arduino-1602-character-lcd-tutorial/

Jika dianalogikan dengan tabel, maka satu sel tersebut terdiri dari lima kolom delapan baris. Karena LCD ini aktif high, maka sel-sel yang aktif direpresentasikan dengan 1 dan sel-sel yang tidak aktif direpresentasikan dengan 0. Misal untuk membentuk karakter-karakter berikut ini.

Untuk menampilkan karakter-karakter diatas, perlu dibuatkan variabel array yang menyimpan konfigurasi biner sel yang membentuk karakter yang akan ditampilkan.

byte A[8]={B00000,B00000,B00001,B00010,B10100,B01000,B00000,B00000};
byte B[8]={B00000,B01010,B11111,B11111,B01110,B00100,B00000,B00000};
byte C[8]={B00100,B00100,B01110,B01110,B11111,B11111,B11111,B11111};
byte D[8]={B10001,B01010,B00100,B01110,B10101,B00100,B00100,B00100};

Array tersebut diubah menjadi karakter dengan menggunakan fungsi lcd.createChar(num,data). Sayangnya jumlah karakter spesial yang dapat ditampilkan terbatas sampai delapan karakter saja.

Berikut ini contoh kode program yang menampikan empat karakter di atas.

#include <LiquidCrystal.h> //menyertakan library LCD
/*mengatur sambungan pin-pin LCD dengan arduino
 * parameternya rs, enable, d4,d5,d6,d7
 */
LiquidCrystal lcd(7,6,2,3,4,5);
/*array untuk karakter*/
byte A[8]={B00000,B00000,B00001,B00010,B10100,B01000,B00000,B00000};
byte B[8]={B00000,B01010,B11111,B11111,B01110,B00100,B00000,B00000};
byte C[8]={B00100,B00100,B01110,B01110,B11111,B11111,B11111,B11111};
byte D[8]={B10001,B01010,B00100,B01110,B10101,B00100,B00100,B00100};

void setup() {
  lcd.begin(16,2);//menggunakan LCD 16x2
  //mengubah array menjadi karakter
  lcd.createChar(0,A);
  lcd.createChar(1,B);
  lcd.createChar(2,C);
  lcd.createChar(3,D);
 }

void loop() { 
  lcd.setCursor(0,0);             //set posisi pada baris pertama kolom pertama
  lcd.print(" LCD Characters");   //menampilkan kalimat "LCD Characters"
  lcd.setCursor(1,1);             //set posisi pada baris kedua kolom kedua
  lcd.write(byte(0));             //tampilkan karakter A
  lcd.setCursor(5,1);             //set posisi pada baris kedua kolom keenam
  lcd.write(byte(1));             //tampilkan karakter B
  lcd.setCursor(9,1);             //set posisi pada baris kedua kolom kesepuluh
  lcd.write(byte(2));             //tampilkan karakter C
  lcd.setCursor(14,1);            //set posisi pada baris kedua kolom kelimabelas
  lcd.write(byte(3));             //tampilkan karakter D
}

Jika dijalankan pada SimulIDE hasilnya seperti berikut ini.

Demikian, semoga bermanfaat.

Referensi:

  • https://www.arduino.cc/en/Reference/LiquidCrystalCreateChar

glh

Guru Teknik Elektro Audio Video SMK Negeri 3 Selong Lombok Timur, NTB

Mungkin Anda juga menyukai

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses.