Arduino Lcd Bağlantısı – 2×16 Ekran Kullanımı

Bu yazıda sizlere Arduino programlama kartı ile lcd ekranların nasıl kullanılacağı  ve kontrol edileceğinden bahsedeceğiz. Yazı yazma, yazıyı konumlandırma, yanıp sönen yazı yazma gibi pek çok farklı işlemin nasıl yapıldığını adımlar halinde inceleyeceğiz. Arduino Lcd bağlantısı yazımızda konu başlıkları şu şekilde olacak:

  • Malzeme Listesi
  • Arduino Lcd Bağlantısı
  • Lcd Ekran Yazılımı
  • Lcd Ekran Özelleştirme

bu başlıklar altında konuyu derinlemesine işleyeceğiz.

 

Malzeme Listesi

Arduino ile 2×16 Lcd ekran bağlantısı için gerekli olan malzemeler:

  • Arduino Uno (Başka model de olabilir)
  • Breadboard
  • 2×16 Lcd Ekran (Biz projemizde tercihen bunu kullanıyoruz.
  • 220 Ohm direnç
  • 10k Potansiyometre

 

Arduino Lcd Bağlantısı

2×16 lcd ekranımızı aşağıda yer alan bağlantı şemasındaki gibi yapacağız. Pinlerin şemadaki gibi bağlanması paylaşacağımız kodların çalışması açısından önemlidir.

arduino lcd ekran bağlantı şeması

 

Burada 220 ohm direnç ekran parlaklığını ayarlamak içindir. Daha düşük bir direnç değeri de kullanılabilir. Bu ekranın daha parlak olmasını sağlar. 10K Potansiyometre ise ekran kontrast ayarı içindir.

 

Lcd Ekran Yazılımı

Aşağıdaki kodun tümü, Arduino IDE ile önceden yüklenmiş olarak gelen LiquidCrystal kütüphanesini kullanır. Yani ekranımız bu kütüphane yardımıyla çalışır. Bir kütüphane, bir programa kısaltılmış formatta kolayca eklenebilen bir fonksiyon setidir.

Kütüphaneyi kullanmak için programa dahil etmekgerekir. Aşağıdaki koddaki 1. satır bunu #include <LiquidCrystal.h> komutuyla yapar. Bir programa bir kitaplık eklediğinizde, kitaplıktaki tüm kodlar programın koduyla birlikte Ardunio’ya yüklenir.

Programlamaya başlarken, neredeyse tüm programlamarın temel örneği olan Hello World! yani merhaba dünya ile başlayacağız. Ekran ile yapabileceğiniz en temel fonksiyon budur. Yani düz bir metin yazdırmak. Bu kodu Arduino IDE arayüz programınıza kopyala yapıştır yapın ve yükleyin.

 

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
lcd.begin(16, 2);
lcd.print(“hello, world!”);
}

void loop() {

}

 

Lcd Ekranınız aşağıdaki gibi  gözükmelidir:

arduinp lcd bağlantı

 

Arduino Lcd Ekran Kullanımı

LiquidCrystal kütüphanesinde kullanabileceğimiz 19 farklı fonksiyon vardır. Bu işlevler, metnin konumunu değiştirmek, metni ekran boyunca taşımak veya ekranı açmak veya kapatmak gibi şeyler yapar. Aşağıda, her bir işlevin kısa bir açıklaması ve bir programda nasıl kullanılacağı açıklanmaktadır.

 

LiquidCrystal Kütüphanesi

LiquidCrystal () fonksiyonu, Arduino’nun LCD’ye bağlanmak için kullandığı pinleri ayarlar. LCD’yi kontrol etmek için Arduino’nun dijital pinlerinden herhangi birini kullanabilirsiniz. Arduino pin numaralarını parantez içerisine şu sırayla koyun: LiquidCrystal (RS, E, D4, D5, D6, D7). Bu pinler lcd pinleridir.

Siz hangi pinlere karşılık olarak bağlantı yaptıysanız, bu değerleri oralara yazmanız gerekir. Örneğin, LCD ekranın D7 pinini Arduino’nun 12 numaralı pin’ine taktıysanız D7 yerine 12 yazmanız gerekir. Yani bu şekilde:  LiquidCrystal (RS, E, D4, D5, D6, 12).

 

lcd.begin()

Bu fonksiyon LCD’nin boyutlarını ayarlar. Programın void setup () bölümünde, herhangi bir LiquidCrystal fonksiyonundan önce yerleştirilmesi gerekir. Satır ve sütunların sayısı lcd.begin (sütunlar, satırlar) olarak belirtilir. 16 × 2 LCD için, lcd.begin (16, 2) ve 20 × 4 LCD için lcd.begin (20, 4) kullanırsınız.

 

lcd.clear ()

Bu işlev, LCD’de zaten görüntülenen tüm metni veya verileri temizler. Lcd.clear () işlevini lcd.print () ve void () bölümündeki delay () işleviyle kullanırsanız, yanıp sönen basit bir metin programı yapabilirsiniz:

 

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
lcd.begin(16, 2);
}

void loop() {
lcd.print(“hello, world!”);
delay(500);
lcd.clear();
delay(500);
}

 

lcd.home ()

Bu işlev imleci ekranın sol üst köşesine yerleştirir ve sonraki metni o konumdan yazdırır.

 

lcd.setCursor ()

lcd home ile benzerdir, ancak bu fonksiyondan daha kullanışlıdır. Bu işlev imleci (ve yazdırılan herhangi bir metni) ekranın herhangi bir yerine yerleştirir. Programınızın boş setup () veya boş döngü () bölümünde kullanılabilir.

İmleç konumu, lcd.setCursor (sütun, satır) ile tanımlanır. Sütun ve satır koordinatları sıfırdan başlar (sırasıyla 0-15 ve 0-1). Örneğin, yukarıdaki “merhaba, dünya!” Programının void setup () bölümünde lcd.setCursor (2, 1) kullanılması, “merhaba, dünya!” ‘Yı alt satıra yazdırır ve sağ iki boşluğa kaydırır:

 

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
lcd.begin(16, 2);
lcd.setCursor(2, 1);
lcd.print(“hello, world!”);
}

void loop() {

}

 

bu kodun ardından ekranınız aşağıdaki gibi gözükmelidir.

hello world yazdırma

 

lcd.write ()

Bu fonksiyon, sensörlerden alınan verileri veya GPS modülünden alınan koordinatlar benzeri çıktıları yazıdrmak için kullanılır. Ayrıca bu fonksiyon ile kendi oluşturduğunuz özel karakterleri de yazdırabilirsiniz. okumak veya bir GPS modülünden alınan koordinatlar gibi LCD’ye farklı türde verileri yazmak için kullanabilirsiniz. Programınızın void setup () veya void loop () bölümünde lcd.write () kullanılır.

 

lcd.print ()

Bu işlev, metni LCD’ye yazdırmak için kullanılır. Programın boşluk ayarları () bölümünde veya boşluk döngüsü () bölümünde kullanılabilir.

Harfleri ve kelimeleri yazdırmak için, metnin çevresine tırnak işaretleri (”“) yerleştirin. Örneğin, merhaba dünyayı basmak için, lcd.print kullanın (“merhaba dünya!”).

Numaraları yazdırmak için tırnak işareti gerekmez. Örneğin, 123456789 yazdırmak için lcd.print (123456789) yazabilirsiniz.

lcd.Cursor ()

Bu işlev görünür bir imleç oluşturur. İmleç, LCD’ye yazdırılacak bir sonraki karakterin altına yerleştirilen yatay bir çizgidir.

Lcd.noCursor () işlevi imleci kapatır. lcd.cursor () ve lcd.noCursor (), birçok metin giriş alanında gördüğünüze benzer şekilde yanıp sönen bir imleç oluşturmak için void loop () bölümünde birlikte kullanılabilir:

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
lcd.begin(16, 2);
lcd.print(“hello, world!”);
}

void loop() {
lcd.cursor();
delay(500);
lcd.noCursor();
delay(500);
}

 

lcd.blink ()

Bu işlev, döngü başına yaklaşık 500 milisaniyede yanıp sönen bir blok stili imleci oluşturur. Boş döngü () bölümünde kullanın. Lcd.noBlink () işlevi yanıp sönen blok imlecini devre dışı bırakır.

Lcd.display ()

Bu işlev, LCD ekrana yazdırılan herhangi bir metni veya imleci açar. Lcd.noDisplay () işlevi, LCD’nin belleğinden silmeden, LCD’ye yazdırılan metni veya imleçleri kapatır.

Bu iki işlev, yanıp sönen bir metin efekti oluşturmak için boş döngü () bölümünde birlikte kullanılabilir. Bu kod “merhaba dünya!” Metninin yanıp sönmesini sağlar:

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
lcd.begin(16, 2);
lcd.print(“hello, world!”);
}

void loop() {
lcd.display();
delay(500);
lcd.noDisplay();
delay(500);
}

 

Arduino Lcd Ekran Kayan Yazı Yazma

Aşağıda belirteceğimiz fonksiyon türleri Lcd ekranımızda kayan yazılar yazdırmamızı sağlayan çeşitli fonksiyonlardır.

 

lcd.scrollDisplayLeft ()

Bu işlev LCD’ye yazdırılan her şeyi alır ve sola taşır. Void loop () bölümünde, takip eden bir gecikme komutu ile kullanılmalıdır. İşlev, ilk karaktere geri dönmeden önce metni 40 boşluk sola hareket ettirir. Bu kod “merhaba, dünya!” Metnini karakter başına bir saniye hızında sola taşır:

 

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
lcd.begin(16, 2);
lcd.print(“hello, world!”);
}

void loop() {
lcd.scrollDisplayLeft();
delay(1000);
}

 

lcd.scrollDisplayRight ()

Bu işlev lcd.scrollDisplayLeft () gibi davranır, ancak metni sağa taşır.

 

lcd.autoscroll ()

Bu işlev bir metin dizisi alır ve dizenin karakter sayısının artışlarıyla onu sağdan sola kaydırır. Örneğin, 3 karakter uzunluğunda bir metin dizeniz varsa, her adımda metni 3 boşluk sola kaydırır:

 

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
lcd.begin(16, 2);
}

void loop() {
lcd.setCursor(0, 0);
lcd.autoscroll();
lcd.print(“ABC”);
delay(500);
}

 

lcd.noAutoscroll ()

lcd.noAutoscroll (), lcd.autoscroll () işlevini kapatır. Kayan metin veya animasyon dizileri oluşturmak için void loop () bölümündeki lcd.autoscroll () işlevinden önce veya sonra bu işlevi kullanın.

lcd.rightToLeft ()

Bu işlev, metnin ekrana yazdırılacağı yönü ayarlar. Varsayılan mod, lcd.leftToRight () komutunu kullanarak soldan sağadır, ancak metni ters yönde çıkarmanın yararlı olabileceği bazı durumları bulabilirsiniz.

 

lcd.createChar ()

Bu komut kendi özel karakterlerinizi yaratmanıza izin verir. 16 × 2 LCD’nin her karakteri 5 piksel genişliğe ve 8 piksel yüksekliğe sahiptir. Tek bir programda en fazla 8 farklı özel karakter tanımlanabilir. Kendi karakterlerinizi tasarlamak için, bir LCD karakter oluşturucusundan özel karakterinizin ikili bir matrisini yapmanız veya kendiniz eşlemeniz gerekir. Bu kod bir derece sembolü oluşturur (°).

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
byte customChar[8] = {
0b00110,
0b01001,
0b01001,
0b00110,
0b00000,
0b00000,
0b00000,
0b00000
};

void setup()
{
lcd.createChar(0, customChar);
lcd.begin(16, 2);
lcd.write((uint8_t)0);
}

void loop() {
}