All for Joomla All for Webmasters
Yapabilecekleriniz hayal gücünüz kadar geniştir.
STM32
ARDUINO
ONUR KÖSE
Kişisel Blog

Arduino 2×16 Karakter LCD Özel Karakter Uygulaması

Merhaba arkadaşlar bu yazımda 2×16 karakter LCD üzerinde istediğimiz şekil, karakter nasıl oluşturulur ve nasıl LCD ye aktarılır bunlardan bahsedeceğim. Önceki yazılarımda Arduino ile karakter LCD nasıl kullanılır bahsetmiştim. LCD hafızasında ASCII karakterler tanımlı olduğu için Türkçe karakterler bu listede bulunmamaktadır. Türkçe karakter yazdırmaya çalışırsanız yanlış şekiller ekrana gelir. Bizde bu Türkçe karakterleri özel olarak ayrılmış LCD cgram’e kaydedip, gerektiğinde oradan çekeceğiz. Ancak üzülerek şunu belirtmeliyim ki özel karakter hafızası 8 karakter ile sınırlıdır. 9. karakteri kaydetmeye çalışırsanız 1. karakterin üzerine yazacaktır.

Devremiz de sadece LCD ve Arduino bulunmaktadır. Arduino modeli farketmez ben örnek olarak UNO kullanacağım.

***ISIS’de sanal olarak tasarladığım için sadece veri pinlerini çizdim, vcc ve gnd pinlerini es geçtim.

LCD’de özel karakterleri binary kodlayarak oluşturabilirsiniz veya bu kodlamanın program haline çevrilmiş şekli mevcuttur. Bu programı indirerekte kolayca özel karakterler oluşturabilirsiniz.

LCD özel karakter programı LCD Karaktermatik

LCD de her karakterin yerleşebileceği 5×8 birimlik toplam 40 adet nokta vardır. Resmi inceleyecek olursak “i” harfinin yerleşmesi için hangi noktaların açık, hangi noktaların kapalı olduğu belirtilmiştir. Bizde program ile bu noktaları işaretleyeceğiz, program bize işaretlenen noktaların satır olarak 16’lık tabanda çıktı verecek, bu sayıları dizi halinde LCD hafızasına göndereceğiz.

LCD Karaktermatik programının kullanımı;

Programda açıldığı anda resimdeki gibi bir ekran gelecektir. Sol kısımda tek bir LCD karakteri için tasarlanmış noktalar, sağ kısımda daha önceden hazırlanmış özel karakterler ve alt kısımda aktif edilen noktaların satır olarak 10’luk ve 16’lık tabanda ki karşılıkları verilmiştir.

Basit bir harf çizecek olursa “ç” karakteri ASCII tabloda olmadığı için LCD hafızasında yer almamaktadır. Bizde bu harfi programımızda çizelim.

“ç” harfini oluşturmak için gerekli noktaları işaretledik. Program bize alt kısımda Hex: adlı bölümde işaretlenen noktaların 16’lık tabandaki karşılığını verdi.

***Çizilen karakterin sayı tabanında ki karşılığını 16’lık sistemde almak zorunda değilsiniz. 2’lik, 8’lik, 10’luk, 16’lık tabanda tüm sayıları dizi içerisine yazabilirsiniz. Ben genelde 16’lık sayı sistemi kullandığım için bu sistemden örnek verdim.

“ç” harfi için 16’lık taban değerleri; “0x0,0xE,0x11,0x10,0x11,0xE,0x4,0x0”

Kullanacağımız komutlar;

byte komutumuz ile karakter adında tek değer için 0 – 255 aralığında değerleri alabilen ve toplam 8 farklı değer alabilen bir dizi tanımlanmıştır. Bu komut bizim bir karakterimiz için satır bilgilerini tutacaktır. Daha önceden aldığımız “ç” harfi için kodları diziye aktaracak olursak;

Şimdi tanımlanan bu diziyi LCD özel hafızasına atmak için;

Bu komutumuz belirlediğiniz hafıza adresine gönderdiğiniz karakter dizisini yükler. hafıza_no 0’dan başlayıp 7’ye kadar gider. Konu başında dediğimiz gibi hafıza 8 karakter ile sınırlıdır. Oluşturduğumuz “ç” harfini hafızaya atmak için;

0. adrese karakter dizisini yani “ç” harfini atamış olduk. Şimdi bunu ekranda göstermek için;

lcd.write komutumuz ile o an imleç nerede bulunuyor ise o konuma gönderdiğiniz hafıza_no’da ki özel karakteri ekrana yazdırır.

Komutumumu bu şekilde yazıp çalıştırdığımız anda ekranda “ç” harfi gözükecektir.

Ekranda “ç” harfi gösteren yazılıma genel olarak bakacak olursak;

İlk satırda standart LCD kütüphanemiz tanımlanmıştır. Tanımlanan LCDnin pin numaraları sırayla belirlitmiştir, bu pinler değişebilir size kalmış. Karakter adında “ç” harfini barındıran dizimiz tanımlanmıştır. lcd 16 sütün, 2 satır olarak başlatılmıştır. 0. LCD adresine “ç” karakteri yüklenmiştir. Karakterin gözükmesi için mutlaka LCD’yi clear() komutu ile temizleyin. Son olarak da write komutu ile 0. adresdeki karakter ekrana yazdırılmıştır.

Birden fazla karakterin ekranda gösterilmesi için örnek verecek olursak;

About the author

2 Responses
  1. Tara Binnie

    I like the valuable info you provide for your articles. I’ll bookmark your weblog and
    check again right here frequently. I am
    slightly sure I will be told many new stuff proper right here!
    Good luck for the following!

  2. Nila Estrella

    Your style is so unique in comparison to other folks I’ve read stuff from.
    Thanks for posting when you have the opportunity, Guess I’ll
    just bookmark this blog.

Leave a Reply

Merhaba

Bloguma Hoşgeldiniz.

Kategoriler

Çevrimiçi Kişiler

1 misafir, 1 Bot
%d blogcu bunu beğendi: