LCD Özel Karakter Oluşturma

0
293

LCD ekrana özel karakter yazdırmak için aşağıdaki online tasarım aracını kullanabilirsiniz.

LCD ekran standart karakter listesinde Türkçe’ye özgü 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. Veri dizisindeki sayılar binary (2 ‘lik sayı sistemi), decimal (10 ‘luk sayı sistemi) veya hex (16 ‘lık sayı sistemi) 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 tanımlanacak olursa;

byte  ozelChar1 [8] = {0x0A, 0x00, 0x0E, 0x11, 0x11, 0x11, 0x11, 0x0E};

şeklinde olur.

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()) komutu kullanılır.

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

}

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz