16x2 Lcd Türkçe Karakter Sorunu Çözüldü! Arduino LCD ekrana yazı yazma - Arduino 16x2 Lcd ekran kullanımı

 LiquidCrystalTUR kütüphanesi nihayetinde hazır, biraz uğraştırdığını söyleyebilirim ancak neticeye de ulaşmış bulunmaktayım. Arduino 'nun ide yüklemesiyle birlikte gelen LiquidCrystal kütüphanesi, print fonksiyonuyla ne yazık ki türkçe karakterleri yazamıyor, bunun yerine custom karakterler tasarlayıp her biri için ayrı birer fonksiyon kullarak çağırmak gerekiyor.

lcd.print türkçe

 Normal şartlarda bu kütüphaneyi kullanarak print fonksiyonuyla lcd.print("Türkçe Yazı"); yazdığınızda karşılaştığınız manzara sol taraftaki gibi olacaktır, ayrıca bu kütüphaneyle ilgili benim gördüğüm bir iki eksiklik daha var, örneğin noDisplay fonksiyonuyla ekranın kapanmasını sağlayabiliyorsunuz, ancak kütüphanenin içinde ve Arduino 'nun resmi sitesindeki referanslarındaki bağlantı şemasını kullandığınızı düşünürsek, sadece ekrandaki görüntü gidiyor ve ışıklar yanmaya devam ediyor. İkincisi de kontrast problemi, kontrastı mutlaka bağladığınız pot üzerinden ayarlamak durumundasınız, peki ya bunu kod tarafında ayarlanabilir yapsaydık? yani eski LCD telefonların olduğu dönemlerden hatırlarsınız: bir kontrast ayarı olurdu ve kullanıcı oradan kontrast seviyesini ayarlayabilirdi, hatta ekran ışığı seviyesi de ayarlanabilirdi. İşte bu iki özellik de düzenlendiğimiz kütüphanenin içinde geliyor, ayarlanabilir kontrast ve arkaplan ışığı seviyesi.



    ve tabii ki kütüphaneyi düzenlemedeki asıl amacımız direkt olarak türkçe karakterlerin yazılabiliyor olması lcd.print("Türkçe Yazı"); fonksiyonuyla sağ taraftaki sonuca ulaşmanız mümkün. Tabii bunun için biz de ekranın custom karakter hafızasını kullandık, ama meraklanmayın 2 adet daha boş yeriniz kaldı hepsini doldurmadık :) 6 ve 7. bloklar boş, 0 ~ 5 arasında 5 dahil custom karakter ekleminize kütüphane türkçe karakterlerin kullanımını engellememek için müsade etmiyor.

    Söz konusu kütüphane 16x2 HD44780 chip kullanan ve A00 Rom a sahip ekranların 4 bit Mode sürülmesi için geçerli, elinizde A02 rom lu bir ekran varsa zaten türkçe karakterleri kullanabiliyor olacaksınız? Acaba öyle mi bundan emin olamadım? ama denemesi bedava : lcd.write(246); yazdığınızda ö harfi görüyorsanız rom kodunuz A02 demektir, hayır toplam işareti (sum) => Σ görüyorsanız, bu kütüphaneyi kullanabilirsiniz, normal şartlarda LiquidCrystal kütüphanesini kullandığınız bir projede sadece LiquidCrytalTUR kütüphanesini indirip (indirme linki yazının sonunda) projenize include ettiğinizde Türkça karakter özelliğini kullanabiliyor olacaksınız. Zira ayarlanabilir kontrast ve arkaplan ışığını da kullanmak isterseniz bağlantınızda ve kodunuzda ufak değişiklikler yapmanız gerekecek

const int bl = 10, cr = 9, rs = 12, en = 11,d4 = 5, d5 = 4, d6 = 3, d7 = 2;

LiquidCrystal lcd(rs, en, bl, cr, d4, d5, d6, d7);

bl değişkeni backligh için seçilmiş, cr değişkeni kontrast için seçilmiş, BL Arduino'nun 10. pinine Cr, de 9. pinine bağlanıyor olacak, tabii ki bunları değiştirebilirsiniz, ancak her ikisi için de PWM pinlerinden birini seçtiğinizden emin olun. Ekran ışığı için ekstra direnç kullanmanıza gerek yoktur.


lcd.setBacklight(20);  fonksiyonuyla ekran ışığı seviyesini 0 ile 30 seviyesi arasında

lcd.contrastLevel(91); fonksiyonuyla kontrast seviyesini ayarlayabilirsiniz 0 ile 255 arasında ayarlayabilirsiniz benim ekranımda 91 gayet düzgün çalıştı, bu ekrandan ekrana değişkenlik gösterebilir, dolayısıyla deneyerek optimum seviyeyi belirleyebilirsiniz.

Kütüphane en başından bu seviyeye gelene kadar yapılan tüm güncellemeler youtube kanalımda mevzut yanılmıyorsam 7 bölümlük bir seri oldu, izlerseniz size çok şey katacağına eminim. Linkleri ve nasıl kullanıldığına dair videomu aşağıya bırakıyorum. Konuyla alakalı sorunuz/öneriniz olursa yorumlara yazabilirsiniz.

-Herkese kolay gelsin.

indirme linki LiquidCrystalTUR



Hiç yorum yok:

Yorum Gönder

Türksat Saat Kanalı ve IRIG-B Time Code

Türksat Saat Kanalından Saat Bilgisi Nasıl Alınır? Uyduda kanalları dolaşırken, şu Türksat Saat kanalı hep dikkatimi çekmiştir. Özellikle  S...