Bu hesaplama aracı; LCD ekrana özel karakter yazdırmanızı sağlar.
LCD ekran standart karakter listesinde Türkçe harfler (İ, ö, ğ, ü, ş, ç) bulunmaz. Bu harfler ve oluşturulan özel sembollerin lcd ekrana yazımı için createChar () fonksiyonundan yararlanılır.
Özel karakter oluşturma
LCD ekranda her karakter, 5 (sütün) x 8 (satır) toplam 40 noktadan oluşur. Her satırı 5 basamaklı bir binary sayı temsil eder. Satırı temsil eden binary sayıda açık nokta (yanan) 1, kapalı nokta (sönük) 0 ‘dır.
LCD ekranda özel karakter; 8 satır için 8 sayıdan oluşan bir veri dizisi ile tanımlanır. Bu veri dizisi binary, decimal veya hex formunda olabilir. Veri dizisindeki ilk sayı en üst satırı, son sayı en alt satırı temsil eder.
Üst resimdeki özel karakter için veri dizisi şu şekilde tanımlanır;
byte ozelChar1 [8] = {0x0A, 0x00, 0x0E, 0x11, 0x11, 0x11, 0x11, 0x0E};
createChar() kullanımı
Veri dizisi olarak tanımlanan özel karakter createChar() fonksiyonu ile ekran hafızasına alınır. Bu fonksiyonun kullanımı;
lcd.createChar(num,data)
num; hafıza konumu
data; karakter veri dizisi adı
şeklindedir.
LCD ozel karakter toplam hafızası 8 ile sınırlıdır. Hafıza konumları 0,1,2 … 6,7 şeklindedir.
lcd.createChar(0, data1); // Özel karakteri 0 hafıza konumuna kaydet
lcd.createChar(1, data2); // Özel karakteri 1 hafıza konumuna kaydet
// ...........
lcd.createChar(7, data7); // Özel karakteri 7 hafıza konumuna kaydet
Ekrana yazdırma işlemi
Özel karakteri ekrana yazdırmak için lcd.write(byte()) komutunu kullanın.
lcd.write(byte(0)); // 0 hafıza konumundaki özel karakteri ekrana yaz
lcd.write(byte(1)); // 1 hafıza konumundaki özel karakteri ekrana yaz
// ..........
lcd.write(byte(7)); // 7 hafıza konumundaki özel karakteri ekrana yaz
Örnek kodlama
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
byte ozelChar1[8] = {B01010, B00000, B01110, B10001, B10001, B10001, B10001, B01110}; // ö harfi (Binary)
byte ozelChar2[8] = {0x00, 0x11, 0x00, 0x11, 0x11, 0x11, 0x11, 0x0E}; // ü harfi (Hex)
void setup() {
lcd.begin(16, 2);
lcd.createChar(0, ozelChar1); // ö harfi karakter oluştur.
lcd.createChar(1, ozelChar2); // ü harfi için karakter oluştur.
lcd.setCursor(0,1); // Yazdırılacak konumu şeç (satır, sütün)
lcd.write(byte(0)); // ö harfini ekrana yaz.
lcd.setCursor(0,3); // Yazdırılacak konumu şeç (satır, sütün)
lcd.write(byte(1)); // ü harfini ekrana yaz.
}
void loop() {
}