Big Number On LCD 16×2
Bosan dengan tampilan LCD 16×2 yang itu-itu aja? Atau ingin menambahkan sedikit typography untuk display project Arduino kamu? Kali ini kita akan mencoba membuat tampilan angka yang besar. Jika biasanya setiap karakter pada LCD 16×2 itu menempati 1 baris dan 1 kolom, maka pada percobaan kita ini angka yang tampil akan berukuran 2 baris 3 kolom. Cukup besar, dan pastinya masih jelas terlihat untuk jarak 3-5 meter.
Menurut datasheet, LCD 16×2 yang terinstall chip Hitachi HD44780 sebagaimana yang Gerai Cerdas jual : LCD Module 16×2 Blue Backlight HD447 dan LCD Module 16×2 (I2C/TWI Connector) memiliki memory yang dapat menyimpan 8 slot design yang kita buat sendiri. Nah, dengan 8 slot design itulah kita dapat membuat karakter-karakter khusus. Adapun design karakter khusus yang akan kita buat adalah sebagai berikut :
Untuk mempraktekkan tulisan ini, kamu hanya memerlukan :
– Arduino UNO Simple Pack / DFRduino UNO V3.0
– LCD Module 16×2 (I2C/TWI Connector)
Rangkaiannya adalah sebagai berikut :
Jika kamu memiliki LCD 16×2 yang tanpa module I2C, maka rangkaiannya bisa merefer ke sini
Sekarang bagian programmingnya (untuk LCD 16×2 dengan I2C):
#include #include LiquidCrystal_I2C lcd(0x20,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display byte LT[8] = { B00111, B01111, B11111, B11111, B11111, B11111, B11111, B11111 }; byte UB[8] = { B11111, B11111, B11111, B00000, B00000, B00000, B00000, B00000 }; byte RT[8] = { B11100, B11110, B11111, B11111, B11111, B11111, B11111, B11111 }; byte LL[8] = { B11111, B11111, B11111, B11111, B11111, B11111, B01111, B00111 }; byte LB[8] = { B00000, B00000, B00000, B00000, B00000, B11111, B11111, B11111 }; byte LR[8] = { B11111, B11111, B11111, B11111, B11111, B11111, B11110, B11100 }; byte MB[8] = { B11111, B11111, B11111, B00000, B00000, B00000, B11111, B11111 }; byte block[8] = { B11111, B11111, B11111, B11111, B11111, B11111, B11111, B11111 }; // loop counter int count = 0; void setup() { lcd.init(); lcd.backlight(); // assignes each segment a write number lcd.createChar(0,LT); lcd.createChar(1,UB); lcd.createChar(2,RT); lcd.createChar(3,LL); lcd.createChar(4,LB); lcd.createChar(5,LR); lcd.createChar(6,MB); lcd.createChar(7,block); // sets the LCD's rows and colums: lcd.begin(16, 2); } void custom0() { // uses segments to build the number 0 lcd.setCursor(0,0); // set cursor to column 0, line 0 (first row) lcd.write(0); // call each segment to create lcd.write(1); // top half of the number lcd.write(2); lcd.setCursor(0, 1); // set cursor to colum 0, line 1 (second row) lcd.write(3); // call each segment to create lcd.write(4); // bottom half of the number lcd.write(5); } void custom1() { lcd.setCursor(0,0); lcd.write(1); lcd.write(2); lcd.setCursor(0,1); lcd.write(4); lcd.write(7); lcd.write(4); } void custom2() { lcd.setCursor(0,0); lcd.write(6); lcd.write(6); lcd.write(2); lcd.setCursor(0, 1); lcd.write(3); lcd.write(4); lcd.write(4); } void custom3() { lcd.setCursor(0,0); lcd.write(6); lcd.write(6); lcd.write(2); lcd.setCursor(0, 1); lcd.write(4); lcd.write(4); lcd.write(5); } void custom4() { lcd.setCursor(0,0); lcd.write(3); lcd.write(4); lcd.write(7); lcd.setCursor(2, 1); lcd.write(7); } void custom5() { lcd.setCursor(0,0); lcd.write(3); lcd.write(6); lcd.write(6); lcd.setCursor(0, 1); lcd.write(4); lcd.write(4); lcd.write(5); } void custom6() { lcd.setCursor(0,0); lcd.write(0); lcd.write(6); lcd.write(6); lcd.setCursor(0, 1); lcd.write(3); lcd.write(4); lcd.write(5); } void custom7() { lcd.setCursor(0,0); lcd.write(1); lcd.write(1); lcd.write(2); lcd.setCursor(2, 1); lcd.write(7); } void custom8() { lcd.setCursor(0,0); lcd.write(0); lcd.write(6); lcd.write(2); lcd.setCursor(0, 1); lcd.write(3); lcd.write(4); lcd.write(5); } void custom9() { lcd.setCursor(0,0); lcd.write(0); lcd.write(6); lcd.write(2); lcd.setCursor(2, 1); lcd.write(7); } void clearnumber() { // clears the area the custom number is displayed in lcd.setCursor(0,0); lcd.print(" "); lcd.setCursor(0,1); lcd.print(" "); } void loop() { lcd.setCursor(5,0); // puts cursor at columb 5, line 0 lcd.print("Loop Count:"); // displays the words on LCD lcd.setCursor(9,1); // sets cursor to column 9, line 1 lcd.print(count); // displays loop count on LCD clearnumber(); // clears the custom number custom0(); // displays custom 0 on the LCD delay(1000); // delay 1 second clearnumber(); custom1(); delay(1000); clearnumber(); custom2(); delay(1000); clearnumber(); custom3(); delay(1000); clearnumber(); custom4(); delay(1000); clearnumber(); custom5(); delay(1000); clearnumber(); custom6(); delay(1000); clearnumber(); custom7(); delay(1000); clearnumber(); custom8(); delay(1000); clearnumber(); custom9(); delay(1000); count++; // adds 1 to the loop count }
Kalau belum menginstall library LCD 16×2 dengan koneksi I2C maka bisa mendownload dulu di sini
Ok, selamat mencoba!
Sumber :
http://www.instructables.com/id/Custom-Large-Font-For-16×2-LCDs/?ALLSTEPS
Sayyidul Aulia
Apr 04, 2022 @ 06:41:58
mantap gan, ini yang saya cari cari, terima kasih banyak