LCD Ekran Nedir?

LCD terimi, Liquid Crystal Display kelimelerinin baş harflerinden oluşmaktadır. Türkçe ifadesi ile sıvı kristal görüntü dür. Bu kristal görüntülerin her birine piksel denir. Bu piksellerin birleştirilmesi ile de gerçek bir görüntü elde edilir. Yani Sıvı kristal yöntemi ile görüntü veren ekrana verilen ada LCD denilmektedir.
LCD Ekran Çeşitleri
LCD ekranlar, elektronik uygulamalar da kullanılması için iki farklı çeşitte üretilir.
Alfanümerik LCD Ekranlar
Bu ekran üzerinde sadece harf ve rakam yazdırılabilir. Genellikle basit elektronik devrelerde kullanılırlar. Ölçülen bir değeri yada herhangi bir hesaplamayı göstermek için kullanılabilecek en basit ekran modelleridir.
Kullanım Alanları
Motor kontrol devrelerinde
Anlık değer alınan bazı robot uygulamalarında
Basit elektronik devrelerde
Grafik LCD Ekranlar
Bu tür ekranlar ile grafik tarzı görüntüler alınabilir. Yani kısacası alanına uygun olarak istediğiniz her türlü görüntüyü bu ekrana taşıyabilirsiniz. TV ekranları, telefon ekranları yada CNC ekranları Grafik LCD ekranlara örnek verilebilir.
Her türlü yüksek kalite de ekran görüntüsü alınması gereken yerlerde kullanılır. Alfanümerik LCD ekranlara göre görüntü almak daha zor fiyat olarak daha pahalıdır.
Alfanümarik LCD Ekran Kullanımı
Alfanümarik LCD modelleri karakter ve satır sayısına göre ifade edilirler. Piyasada pek çok model alfanümarik LCD ekran bulunur.
Bunlar Karakter SayısıXSatır Sayısı olarak şöyledir.
16×1, 16×2, 32×2, 20×2, 40×2, 128×64, 240×128
Aşağıdaki resimde bir alfanümarik lcd ekranın bacakları ve ne amaçla kullanıldığı gösterilmektedir.


LCD Panel Bacakları ve Bağlantı Şekilleri
|
LCD Pinleri
|
Fonksiyonları
|
| 1) Vss | Toprak (Ground) |
| 2) Vcc | +5 V |
| 3) VEE | Kontrast |
| 4) RS | Register Select |
| 5) RW | Read / Write |
| 6) E | Enable |
| 7 – 14) D0 – D7 | Data girişleri |
| 15) BL+ | Arka panel ışığı pozitif ucu |
| 16) BL – | Arka panel ışığı negatif ucu |
VSS: LCD panelin şase ucudur. şase bağlantısı Vss ucu ile yapılır.
VDD: LCD panelin besleme ucudur. Besleme gerilimi (+5V) Vdd bacağından verilir.
VEE veya V0: LCD panelin kontrast ayarının yapıldığı ucudur. Bu kısma bir potansiyometre bağlanır. Bu sayede ekranın ışık ayarı yapılır.
RS: Regester Select ifadesinin kısaltılmış halidir. Bu data ucu ile denetleyici den gönderilen bilgilerin hangi port ile göndereceği belirtilir.
RW: Gönderilen bilgilerin yazıldığı data ucudur. Bu bacak bağlantısı yardımı ile LCD panele yazılacak karakterler gönderilir.
E: Denetleyici ile LCD panel arasında bir veri alış verişi gerçekleştirileceği zamanda denetleyici Enable bacağının bağlı olduğu portu aktif konuma getirerek veri transferini sağlar.
Bu örnek ile LCD uygulamasını nasıl yapabileceğinizi göreceksiniz. Bu örnekte LCD panelin bacak bağlantılarını ve Proton ide programı ile yazdığım basit bir örnek uygulama mevcut. Bu uygulama LCD için başlangıç uygulaması olacak ve sonrasında daha farklı örnekler ile LCD uygulamaları paylaşacağım.Alfanümarik LCD Panel İçin Basit Örnek
LCD Panelin PIC ile Bağlantısı

Yukarıdaki resim de pic 16f877 ile 16×2 lcd ekran bağlantısı görülmektedir. Bu data uçları bağlandıktan sonra tek yapılması gereken şey program derleyicisi üzerinde bağlı portları birbirleri ile eşleştirmektedir. Bu eşleştirme ise aşağıda gösterilmektedir.
LCD_DTPin: Veri uçlarının belirtildiği kısımdır. Burada ilk bacağı belirtmek yeterlidir. Sonrasını sırası ile devam edecektir.
LCD_ENPin: Enable ucunun belertildiği kod satırıdır.
LCD_RSPin: Register Select ucunun belirtildiği kod satırıdır.
LCD_Interface: Veri gönderiminin kaç bit olacağını belirtir. 4 yada 8 olarak seçilebilir.
LCD_Lines: LCD panelin kaç satırdan oluştuğunu belirtildiği kod satırıdır.
Arduino ile LCD Kullanımı

LCD’yi kullanırken LiquidCrystal kütüphanesini kullanacağız
LiquidCrystal Kütüphanesi Fonksiyonları
|
1 |
#include < LiquidCrystal.h> // LiquidCrystal kütüphanesinin eklenmesi |
LiquidCrystal Kütüphanesini ekledikten sonra içerisindeki fonksiyonları kullanabiliriz.
LiquidCrystal()
Kütüphanenin ayarlayıcı fonksiyonudur. LCD’nin Arduino’ya bağlanması için gerekli pinlerin ayarlandığı fonksiyondur.
Kullanım Şekli ; LiquidCrystal(RS,E,D4,D5,D6,D7) parantez içerisindeki pinler LCD’nin pinleridir. Bu pinleri Arduino da istediğiniz dijital pinlere takabilirsiniz.
Devremizdeki pinlere göre içerisine şu şekilde yazacağız; LiquidCrystal lcd(2,3,4,5,6,7);
lcd.begin()
Üzerinde çalışacağımız LCD’nin boyutlarını ayarlar. Bu fonksiyon programın void setup() bölümünde kullanılır.
lcd.begin(sütun sayısı,sütun sayısı), biz 16×2 LCD kullanacağımız için lcd.begin(16,2) yazacağız.
lcd.print()
LCD’ye veri yazdırmak için kullanılır.
lcd.print(veri); //Veri char,byte,string,int gibi herhangi bir türde olabilir.
lcd.print(veri,taban) ; //Verinin hangi tabanda ekrana yazılmasını belirtir. İkilik taban için BIN, onluk taban için DEC, sekizlik taban için OCT, on altılık taban için HEX yazılır.
lcd.setCursor()
Bu fonksiyon imlecin ayarlanmasını sağlar.
lcd.setCursor(sütunNumarası,satırNumarası); // Belirtilen sütun ve satır numarasına imleci yerleştirir.
Kullandığımız LCD 2 satır (0.Satır – 1.Satır) , 16 sütundan (0.Sütun – 15.Sütun) oluşmaktadır.
|
1 2 3 4 5 6 7 8 9 10 11 |
#include void setup() { } void loop() { } |

lcd.clear()
Bu fonksiyon LCD’de bulunan veriyi siler ve imleci (0,0) pozisyonuna getirir.
print() ve clear() kullanarak yanıp sönen bir metin oluşturabiliriz.
lcd.cursor() – lcd.noCursor()
Bu fonksiyonlar imleci görünür hale getirir veya gizler. İmleç LCD üzerinde ‘_’ şeklinde gösterilir.
lcd.home()
Bu fonksiyon imleci 0.Sütun ve 0.Satır pozisyonuna getirir.
lcd.write()
Bu fonksiyon LCD’de tek bir karakter yazdırmak için kullanılır. LCD’ye birden fazla karakter yazdırmak için lcd.print() fonksiyonunu kullanırız.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#include char data[] = {'-','L','C','D',' ','A','R','D','U','I','N','O','-'}; void setup() { } void loop() { for(int i = 0 ; i < 16 ; i++){ delay(100); } delay(500); } |
lcd.blink() – lcd.noBlink()
blink() fonksiyonu cursor() fonksiyonuna benzerdir. blink() fonksiyonu imlecin bulunduğu konumda yanıp sönmesini sağlar. noBlink() ise bu yanıp sönme işlevini kapatır.
lcd.display() – lcd.noDisplay()
Bu fonksiyon LCD’ye yazdırılmış veriyi görünür hale getirir veya gizler. Bu iki fonksiyonla lcd.clear() örneğinde yaptığımız gibi yanıp sönen bir metin elde edebiliriz.
lcd.scrollDisplayLeft() – lcd. scrollDisplayRight()
Bu fonksiyonlar ile LCD üzerindeki verileri sağa ve sola kaydırabiliriz. delay() komutu ile loop() bölümünde kullanmalıyız.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#include void setup() { } void loop() { lcd.scrollDisplayLeft(); //lcd.scrollDisplayRight(); yaparsak metin tam tersi şekilde hareket edecektir. delay(100); } |
lcd.leftToRight () – lcd.rightToLeft ()
Bu fonksiyonlar LCD’ye yazdırılan verinin yazdırma yönünü belirler. LCD üzerinde varsayılan mod leftToRight() yani soldan sağa doğrudur. Bazı uygulamalarda veriyi sağdan sola doğru yazdırmamız gerekebilir.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
lcd.autoscroll() – lcd.noAutoscroll()
Bu fonksiyonlarda lcd.scrollDisplay() işlevleri gibi LCD’deki verilerin kaydırılması için kullanılır.
Bu fonksiyon LCD de bulunan verinin karakter sayısının artışıyla sağdan sola doğru kaydırır. lcd.noAutoscroll() fonksiyonu ise bu fonksiyonu kapatır.
Örneğin 2 karakterli bir verimiz varsa her adımda veriyi 2 adım sola kaydırır.
lcd.createChar()
Bu fonksiyon LCD’de bulunmayan özel karakterleri oluşturmamızı sağlar. 16×2 LCD ekranımızda her bir karakterin 5×8 piksel özelliğindedir. Kendi karakterlerimizi tasarlamak için internet üzerinde farklı karakter tasarlayıcılar vardır. Biz bu linkte bulunanı kullandık.
Aşağıdaki kod ‘♥’ şeklini oluşturur.