izmir escort

Arduino LCD Ekran Kullanımı ve LiquidCrystal Kütüphanesi

Merhaba arkadaşlar,
Mobilhanem.com için hazırladığımız Arduino derslerine LiquidCrystal Kütüphanesi ve bu kütüphaneyi kullanarak LCD kullanımı ile devam ediyoruz. Bu dersimizde anlatacağımız LiquidCrystal kütüphanesi Hitachi HD44780 sürücüsü ile uyumlu olan LCD ekranlar ile çalışabilmektedir. Bu nedenle Arduino LCD kullanımını göstermek için bu dersimiz boyunca Hitachi HD44780 ile uyumlu olan 16×2 bir LCD kullanarak örneklerimizi gerçekleştireceğiz.

Arduino LCD Kullanımı

Arduino LCD kullanımı için Arduino ile LCD ekranımızın bağlantılarını yaptıktan sonra Arduino kütüphanelerinden biri olan LiquidCrystal kütüphanesini kullanarak LCD ekranlarımızı kontrol edebiliriz. Bu kütüphane Arduino kartlarını kullanarak, Hitachi HD44780 sürücüsü ile uyumlu olan LCD’leri kolay bir şekilde kontrol edebilmemizi sağlamaktadır. Dolayısıyla HD44780  sürücüsünü destekleyen çeşitli boyutlardaki LCD ekranların kullanımı için Arduino LiquidCrystal kütüphanesini kullanabiliriz.

Arduino LCD Kullanımı İçin Gerekli Malzemeler

  • Arduino Kartı
  • LCD – Hitachi HD44780 sürücüsü ile uyumlu LCD ekran
  • 10 k ohm potansiyometre
  • 220 ohm direnç
  • Bağlantılar için breadboard ( ekmek tahtası ) ve kablolar

Arduino 16×2 LCD Bağlantıları

Bu dersimiz boyunca daha öncede belirtmiş olduğumuz gibi HD44780 sürücüsü ile uyumlu 16×2 LCD kullanacağız.

16x2 LCD
16×2 LCD

Kullanacağımız LCD’nin bağlantıları bağlantı pinlerinin numaraları ve adları yukarıdaki resimdeki gibidir. Bu bağlantı bacakları ile bilgiyi aşağıdaki tabloda bulabilirsiniz.

Pin NOPin AdıÖzelliği
1VSS-GNDToprak bağlantısı
2VDD-VCCGiriş gerilimi ( 5V )
3VEEPotansiyometre girişi – LCD’nin kontrast ayarını yapmak için
4RS( Register Select ) – Komut register’ı ve veri register’ı arasında geçiş yapmak için kullanılır. RS pini HIGH ( 1 ) olduğunda, veri register’ı seçilir ve D0-D7 bacaklarında bulunan sinyaller veri register’ına alınır. RS pini LOW ( 0 ) olduğunda, komut register’ı seçilir ve D0-D7 bacaklarındaki sinyaller komut register’ına alınır.
5R/WOkuma / Yazma modları arasında seçim yapmak için kullanılır.
6E( Enabla Pin ) Register’lara yazmayı sağlayan etkinleştirme pini.
7-14D0-D7 8 adet pinden oluşan veri yoludur. LCD’ye bu pinlerden veri ve komutlar gönderilir.
15LEDA-LED+Arka plan ışığının giriş gerilim ( 3.3 V)
16LEDK-LED-Arka plan ışığının toprak bağlantısı

Bu özelliklere sahip bir LCD ekran kullanırken Arduino – 16×2 LCD bağlantısını gerçekleştirmek için aşağıdaki örnek devre şemasını kullanabilirsiniz.

Arduino - LCD devre şeması
Arduino – LCD devre şeması

Arduino LiquidCrystal Kütüphanesi ve Fonksiyonları

Arduino LiquidCrystal kütüphanesi daha öncede belirttiğimiz gibi Hitachi HD44780 sürücüsü ile uyumlu LCD ekranları kullanımı imkanı sunmaktadır. 

Arduino LiquidCrystal Kütüphenesi Örnekleri
Arduino LiquidCrystal Kütüphenesi Örnekleri

Arduino IDE’de

Dosya -> Örnekler -> LiquidCrystal

yolunu takip ederek LiquidCrystal kütüphanesi ile ilgili olan bir çok hazır örneğe ulaşabilirsiniz. Yukarıda bulunan devre şeması, bu örnekleri gerçekleştirmek istediğinizde kurmuş olduğunuz devrede değişiklik yapmadan aynı devre üzerinde kolayca kullanabilmeniz için örneklerde de kullanılan bağlantılara uygun bir şekilde oluşturuldu. Dolayısıyla dersimizde bulunan örnekleri gerçekleştirirken veya hazır örnekleri kullanmak istediğinizde kullanacağınız devrede değişiklik yapmanıza gerek yoktur.

Dersimizin geri kalan kısmında bu örnekler hazırlanırken kullanılan fonksiyonları ve LiquidCrystal kütüphanesinin diğer fonksiyonlarını detaylı bir şekilde incelemeye çalışacağız.

LiquidCrystal Kütüphanesi Fonksiyonları

LiquidCrystal kütüphanesini kullanabilmemiz için yukarıdaki kod satırında olduğu gibi kütüphaneyi projemize eklememiz gerekmektedir. Kütüphanemizi ekledikten sonra aşağıdaki fonksiyonları kullanabiliriz.

 

LiquidCrystal()begin()print()
setCursor()cursor()noCursor()
clear()home()write()
blink()noBlink()display()
noDisplay()scrollDisplayLeft()scrollDisplayRight()
leftToRight()rightToLeft()autoScroll()
noAutoScroll()createChar()

LiquidCrystal ()

Kütüphanemizin yapıcı fonksiyondur. Bu fonksiyon aracılığıyla bir LiquidCrystal nesne oluşturabilir ve bu nesnenin özelliklerine kullanarak bağlantılarını yaptığımız LCD ekranımızın kontrol edebiliriz. Bu yapıcı fonksiyonun 4 farklı kullanım şekli bulunmaktadır.

Kullanım Şekli:

  1. LiquidCrystal(RS, E, D4, D5, D6, D7) 
  2. LiquidCrystal(RS, RW, E, D4, D5, D6, D7) 
  3. LiquidCrystal(RS, E, D0, D1, D2, D3, D4, D5, D6, D7) 
  4. LiquidCrystal(RS, RW, E, D0, D1, D2, D3, D4, D5, D6, D7)

LiquidCrystal kütüphanesi kullanırken Register Select, Enable ve en az 4’lü data bağlantılarını kullanmak zorunlu bir durumdur. Kullanım şekline göre Read / Write ve 8’li data bağlantıları kullanılabilir.

Bu dersimizde Arduino’nun hazır LiquidCrystal örneklerinde de olduğu gibi 6 parametre alan Register Select, Enable ve 4’lü data bağlantılarını kullanan yapıcı fonksiyonu kullanacağız. Aşağıdaki kod satırı ‘lcd’ adında 6 bağlantılı bir LiquidCrystal nesnesi oluşturmamızı sağlar.

İhtiyacınıza göre her hangi bir yapıcı fonksiyonu kullanarak çalışabilirsiniz.

begin ()

Arduino LCD kullanımında, LiquidCrystal () yapıcı fonksiyonu ile nesnemizi oluşturduktan hemen sonra kullanılması gerekir. Üzerinde çalışacağımız LCD ekranın boyutlarını belirtmek için kullanılır. İki parametre almaktadır. Bu parametreler aracılığı ile LCD ekranımızın kaç satır ve kaç sütun olduğunu belirtiriz.

Kullanım Şekli:

  • begin(sutunSayısı, satırSayısı)

print ()

LCD ekrana veri yazdırmak için kullanılır. print fonksiyonuna parametre olarak verilen veriyi ekran imlecinin bulunduğu yerden başlayarak LCD ekran üzerinde gösterilmesini sağlar. Ekran imlecinin kullanımı için setCursor () fonksiyonunu inceleyebilirsiniz.

Kullanım Şekli:

  1. print(veri)
  2. print(veri, taban)

1. Kullanım şeklinde parametre olarak verilen veri olduğu şekilde ekrana yazılır. Bu veri char, byte, int, long veya string gibi her hangi bir türde olabilir. 2.Kullanım şeklinde ise BASE parametresi ile parametre olarak verilen verinin hangi tabanda ekrana yazılması istenildiği belirtilir. taban parametresi ikilik taban için BIN, onluk taban için DEC, sekizlik taban için OCT ve on altılık taban için HEX değerleri ile kullanılır.

LCD print () fonksiyonu örneği
LCD print () fonksiyonu örneği

setCursor ()

Bu fonksiyon ekran imlecinin pozisyonunu ayarlamak için kullanılır.

Kullanım Şekli:

  • setCursor(sutunNumarası, satırNumarası)

setCursor fonksiyonu parametre olarak aldığı satır ve sütun numarasını temsil eden LCD ekran hücresine imleci konumlandırır. Bu işlemden sonra print() veya  write() fonksiyonu ile ekrana gönderilen veri imlecin bulunduğu hücreden başlayarak ekrana yazdırılır.

LCD setCursor () fonksiyonu örneği
LCD setCursor () fonksiyonu örneği

cursor () – noCursor()

cursor () fonksiyonu LCD imlecinin bulunduğu pozisyonun gösterilmesini sağlar. Bunu bir sonraki yazma işleminde başlangıç olarak kullanılacak olan hücreyi ” _ ” işareti ile LCD ekran üzerinde gösterilmesini sağlayarak gerçekleştirir.

noCursor ()  fonksiyonu ise cursor () fonksiyonu ile aktifleştirilen  ” _ ” işaretinin görünürlüğünü kaldırır.

Bu iki fonksiyonun kullanımına anlamak için setCursor () fonksiyonu için kullandığımız örneğimizi tekrar düzenleyebiliriz. lcd.print(“*”) komutu ile ekrana yazdırdığımız ” * ” işaretinin yerine cursor () fonksiyonunu kullanarak “_” işaretinin gösterilmesini sağlayabiliriz.

LCD cursor () - noCursor () örnek
LCD cursor () – noCursor () örnek

cursor() fonksiyonu ile aktifleştirilen imleç işaretinin, noCursor() fonksiyonunu kullandığınız bir andan sonra görünürlüğünün kaybolduğunu test ederek görebilirsiniz.

clear ()

Bu fonksiyon ekranda gösterilen tüm verilen silinmesini sağlar. Ayrıca ekran imlecinin 0. satır ve 0. sütuna getirilmesini sağlar.

Bu fonksiyonun kullanımını setCursor (), cursor () – noCursor () gibi fonksiyonları anlattığımız örneklerimizde veya diğer örneklerimizde bulabilirsiniz.

home ()

Bu fonksiyon ekran imlecinin 0. satır ve 0. sütuna yani ekranın sol üst köşesine getirilmesini sağlar.

LCD home () fonksiyonu örneği
LCD home () fonksiyonu örneği

write ()

Bu fonksiyon Arduino LCD kullanımında ekrana tek bir karakter yazdırmak için kullanılır. Ekrana birden fazla karakter yazdırmak için print () fonksiyonunun kullanımını göstermiştik.

LCD write () fonksiyonu örneği
LCD write () fonksiyonu örneği

blink () fonksiyonu cursor () fonksiyonuna benzer bir işleve sahiptir. cursor () fonksiyonu ile ekran imlecinin bulunduğu pozisyon ‘ _ ‘ işareti ile belirginleştirilir iken blink () fonksiyonu kullanıldığı imlecin bulunduğu hücre yanıp sönme işlemi ile belirginleştirilir.

noBlink ()  fonksiyonu ise noCursor () fonksiyonun da olduğu gibi belirginleştirme işlemini devre dışı bırakır.

LCD blink () fonksiyonu örneği
LCD blink () fonksiyonu örneği

display () – noDisplay ()

noDisplay () fonksiyonu LCD’ye gönderilen verilerin silmeden görünürlüğünü kaldırmak için kullanılır. display () fonksiyonu ise LCD üzerinde noDisplay () fonksiyonu kullanılarak görünürlüğü kaldırılan verilerin tekrar görünür olmasını sağlar.

LCD display () fonksiyonu örneği
LCD display () fonksiyonu örneği

scrollDisplayLeft () – scrollDisplayRigt ()

scrollDisyplayLeft ve scrollDisplayRigth fonksiyonları LCD ekran üzerindeki veriyi sağa ve sola kaydırabilme imkanını sağlamaktadır. Arduino’nun hazır örnekleri arasında bu iki fonksiyonun kullanımını gösteren scroll örneği bulunmaktadır. Bu örneği ve LiquidCrystal kütüphanesinin diğer örneklerini incelemenizi tavsiye ederiz.

Adlarından da anlaşılacağı üzere scrollDisyplayLeft fonksiyonu ekranda bulunan verileri sola kaydırmak için, scrollDisplayRigth fonksiyonu ise ekranda bulunan verileri sağa kaydırmak için kullanılır. Bu fonksiyonların her çağrıldıklarında ekranda bulundan verilerin tümünün birer hücre kaydırılmasını sağlarlar. Bu fonksiyonları kullanarak Arduino LCD kayan yazı örnekleri gerçekleştirebilirsiniz.

LCD scrollDisplayLeft () – scrollDisplayRigt () fonksiyonları örneği
LCD scrollDisplayLeft () – scrollDisplayRigt () fonksiyonları örneği

leftToRight () – rightToLeft ()

Bu fonksiyonlar LCD ekran üzerinde metin yazım yönünü belirlemek için kullanılırlar. Akışın soldan sağa olmasını leftToRight fonksiyonu ile, sağdan sola olmasını rightToLeft fonksiyonu ile sağlayabiliriz. Metin akış yönü varsayılan olarak leftToRight fonksiyonun işlevinde olduğu gibi soldan sağa gerçekleştirilir.

LCD leftToRight () – rightToLeft () fonksiyonları örneği
LCD leftToRight () – rightToLeft () fonksiyonları örneği

autoscroll () – noAutoscroll ()

autoscroll fonksiyonu kullanmış olduğumuz LCD ekran scrollDisyplayLeft () ve scrollDisplayRigth () fonksiyonlarında olduğu gibi ekranda gösterilen verilerin kaydırılması için kullanılır. leftToRight() ve rightToLeft () fonksiyonlarını kullanarak ayarlayabileceğimiz metin akış yönünde kaydırma işlemini gerçekleştirir. Kaydırma işlemi autoscroll fonksiyonu çağrıldıktan sonra metin akış yönünde ve LCD ekran üzerine yazılacak olan her bir veri için bir basamak olacak şekilde gerçekleştirilir. Bu fonksiyonları kullanarak Arduino LCD kayan yazı örnekleri gerçekleştirebilirsiniz.

noAutoscroll fonksiyonu ise  autoscroll fonksiyonu ile aktifleştirilen otomatik kayma işlemini iptal eder.

Arduino’nun hazır örnekleri arasında bu iki fonksiyonun kullanımını gösteren Autoscroll örneği incelemenizi de tavsiye ederiz.

LCD autoscroll () fonksiyonları örneği
LCD autoscroll () fonksiyonları örneği

createChar ()

Bu fonksiyon ile hali hazırda bulunmayan, kendi düzenlediğimiz karakterler oluşturabilir ve LCD ekranda gösterilmesini sağlayabiliriz. LCD ekranımızda 5×8 boyutlarında yani 5 piksel genişlikte ve 8 piksel uzunlukta karakterler gösterilmektedir. Dolayısıyla oluşturacağımız yeni karakterlerde bu kullanım şekli ile uyumlu olmalıdır. Bunun Arduino’nun kendi sitesinde güzel bir örnek bulunmaktadır.

Yukarıdaki kod parçacığında olduğu gibi byte bir dizi kullanarak yeni bir karakter oluşturulabilir. Bu yöntem ve createChar fonksiyonu kullanılarak 8 taneye kadar karakter oluşturmak mümkündür. Oluşturulan bu karakterleri createChar fonksiyonunu ile kullanılabilir hale getirebiliriz.

Kullanım Şekli:

  • createChar(num, data)

num parametresi 8 taneye kadar oluşturulabilen karakterimizin kaydı içindir. 0-7 aralığında değer alır. data parametresi ise oluşturduğumuz dizidir. Bu yöntem ile oluşturulan karakterler write() fonksiyonu ile birlikte kullanılırlar. write fonksiyonundan oluşturulan karaktere ulaşmak içinde byte(num)  fonksiyonu karakterin createChar fonksiyonu ile kaydedildiği num değeri ile çağrılır. Bu kullanım şekli için yukarıda bahsettiğimiz örneği inceleyebilirsiniz.

 

 

Bu dersimizde Arduino LCD kullanımını detaylı bir şekilde göstermeye çalıştık. Arduino LiquidCrystal kütüphanesinin nasıl kullanılabileceğini, fonksiyonlarının neler ve hangi işlevlere sahip olduklarını anlatmaya çalıştık. Konuyla ilgili yorumlarınızı konu altından yapabilir, sorularınızı Mobilhanem Soru&Cevap bölümünden sorabilirsiniz. Bir sonraki içeriğimizde Mobilhanem.com‘da görüşmek üzere.

Tüm Arduino Dersleri için tıklayınız..

 

Muhammed Enes Ateş

1 Yorum

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?