#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Inisialisasi LCD I2C
LiquidCrystal_I2C lcd(0x27, 16, 2); // 0x27 adalah alamat I2C, 16 kolom, 2 baris
// Karakter khusus pertama (custom character 1)
byte customChar[8] = {
0b00000,
0b00001,
0b00011,
0b00011,
0b00111,
0b01111,
0b01111,
0b11111
};
// Karakter khusus kedua (custom character 2)
byte customChar2[8] = {
0b00010,
0b10010,
0b11010,
0b11010,
0b11110,
0b11110,
0b11110,
0b11111
};
byte customChar3[8] = {
0b11111,
0b11111,
0b11100,
0b11100,
0b11100,
0b11100,
0b11100,
0b11100,
};
byte customChar4[8] = {
0b11111,
0b11111,
0b11111,
0b10001,
0b10001,
0b10001,
0b11111,
0b11111,
};
void setup() {
// Inisialisasi I2C dan LCD
Wire.begin();
lcd.init(); // Menginisialisasi LCD
lcd.backlight(); // Menyalakan backlight LCD
// Membuat karakter khusus
lcd.createChar(0, customChar); // Menyimpan customChar di slot 0
lcd.createChar(2, customChar2); // Menyimpan customChar2 di slot 1
lcd.createChar(3, customChar3); // Menyimpan customChar2 di slot 1
lcd.createChar(4, customChar4); // Menyimpan customChar2 di slot 1
// Menampilkan karakter khusus pertama
lcd.setCursor(0, 0); // Menempatkan kursor pada posisi kolom 0, baris 0
lcd.write(0); // Menampilkan customChar (karakter 0)
// Menampilkan karakter khusus kedua pada posisi tertentu
lcd.setCursor(1, 0); // Menempatkan kursor pada kolom 8, baris 0
lcd.write(2); // Menampilkan customChar2 (karakter 1)
lcd.setCursor(0, 1); // Menempatkan kursor pada posisi kolom 0, baris 0
lcd.write(3); // Menampilkan customChar (karakter 0)
// Menampilkan karakter khusus kedua pada posisi tertentu
lcd.setCursor(1,1); // Menempatkan kursor pada kolom 8, baris 0
lcd.write(4); // Menampilkan customChar2 (karakter 1)
// Menampilkan teks
lcd.setCursor(3, 0); // Menempatkan kursor pada posisi kolom 2, baris 0
lcd.print("Rumahku");
lcd.setCursor(3, 1); // Menempatkan kursor pada posisi kolom 2, baris 1
lcd.print("Istanaku");
}
void loop() {
// Program utama
}