LCD Özel Karakter Oluşturma

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.

özel karakter kodlama

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() {

}
Erdoğan Demirtaş
Erdoğan Demirtaş
Cumhuriyet Üniversitesi, Sivas Meslek Yüksekokulu, Endüstriyel Elektronik bölümü mezunudur. Endüstriyel kart/cihaz bakım onarım teknikeri olarak çalışmaktadır. Elektronik dışında az biraz wordpress, çat pat İngilizce bilmektedir.
ilgili yazılar

son eklenenler