Arduino ile LCD Ekran Kullanımı
Merhaba Değerli Arkadaşlar,
Bu yazıda, Arduino ve LCD bağlantılarının nasıl kurulacağını adım adım anlatacağım ve ayrıca metin manipülasyonu konusunda size rehberlik ederek farklı programlama yöntemlerini sunacağım.
Metin yazdırma, kaydırma ve özel karakterler oluşturma gibi temel konuların yanı sıra, metin kırpma ve konumlandırma tekniklerini de öğreneceksiniz. Bu bilgiler, çeşitli projelerinizde kullanabileceğiniz interaktif ve ilgi çekici çıktılar elde etmenize yardımcı olacaktır.
Kullandığımız ekran, oldukça uygun bir fiyata temin edebileceğiniz 16x2 LCD ekranıdır. "16x2" terimi, bu LCD'nin 2 satıra sahip olduğunu ve her bir satırda 16 karakterin görüntülenebildiğini ifade eder. Yani toplamda 32 karakter aynı anda ekran üzerinde görüntülenebilir. Ek olarak, kaydırma özelliğini kullanarak 32 karakterden daha fazlasını da gösterebilirsiniz.
Bu makalede sunulan kodlar, standart Hitachi HD44780 sürücüsünü kullanan LCD ekranlar için tasarlanmıştır. Eğer LCD'niz 16 pinli bir yapıya sahipse, büyük olasılıkla Hitachi HD44780 sürücüsüne sahiptir. Bu sürücüye sahip ekranlar, aşağıdaki kodları kullanarak uyumlu bir şekilde çalışacaktır.
LCD ve Arduino Bağlantıları Hakkında Bilgilendirme
Kullandığımız LCD ekranın pin diyagramını aşağıda bulabilirsiniz. LCD ekranımız toplamda 16 pin içermektedir. Bu pinler, ekranın üst, alt veya her iki tarafında da yer alabilir. Nadir durumlarda, arka aydınlatma ışığı bulunmayan ekranlarda 14 pin kullanılır. 15 ve 16 numaralı pinler, arka aydınlatma bulunan ekranlarda ışığı kontrol etmek için kullanılır. Her bir pin, Arduino ile bağlantı kurmak için kullanılabilir; ancak LCD'nin tipine bağlı olarak pin düzenlemeleri farklılık gösterebilir. Bu nedenle, kullanılan LCD ekranın datasheet'ini inceleyerek doğru bağlantıları yapmanız önerilir.
LCD Ekranı ve Arduino Bağlantısı İçin Öneriler
LCD ekranınızı Arduino'ya bağlamadan önce, 16 pinlik bir başlık lehimlemeniz gerekebilir. Bu, daha sağlam bir bağlantı sağlayacak ve projenizin güvenilirliğini artıracaktır. LCD ekranını Arduino'ya doğru bir şekilde bağlamak için aşağıdaki şemayı takip edebilirsiniz:
(Arduino) (LCD Ekranı)
GND -------------------> GND
5V ----------------------> VCC
A4 -----------------------> SDA
A5 -----------------------> SCL
Bu bağlantı şeması, I2C (TWI) protokolünü kullanarak LCD ekranınızı Arduino'ya bağlamak için yaygın bir yöntemdir. Eğer farklı bir bağlantı yöntemi veya protokol kullanmayı düşünüyorsanız, lütfen bu konuda daha fazla ayrıntı sağlayın veya ilgili kılavuzları inceleyin.
Diyagramdaki Direnç ve Potansiyometre Kullanımı Hakkında Bilgilendirme
Yukarıdaki diyagramdaki direnç, LCD ekranın arka ışık parlaklığını ayarlamak için kullanılır. Bu direnç, genellikle 220 Ohm olarak tercih edilir, ancak farklı direnç değerleri de kullanılabilir. Daha düşük dirençler, arka ışığın daha parlak olmasını sağlar.
Ayrıca, potansiyometre ekran kontrastını ayarlamak için kullanılır. Tipik olarak 10K Ohm potansiyometreler kullanılır, ancak farklı değerler de işe yarayabilir.
Bu elemanlar, LCD ekranınızın görüntü ve parlaklık ayarlarını özelleştirmenize olanak tanır. Deney yaparak, projenizin gereksinimlerine en iyi şekilde uyacak olan değerleri bulabilirsiniz.
Arduino Programlama Hakkında Bilgilendirme
Arduino programlama konusunda size yardımcı olmaktan memnuniyet duyarım. Aşağıda verilen bilgilerle, LiquidCrystal kütüphanesi kullanılarak basit bir "hello, world!" örneği nasıl çalıştırılacağını anlatacağım.
-
İlk adım olarak, Arduino IDE'yi açın ve yeni bir boş proje oluşturun.
-
Ardından, "LiquidCrystal" kütüphanesini programa dahil etmek için şu satırı ilk koda ekleyin:
#include <LiquidCrystal.h>
1. Daha sonra, LCD ekranınızın bağlantılarına göre pinleri ayarlayın. Aşağıdaki gibi bir kod parçasını kullanabilirsiniz:
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // LCD pinleri: RS, E, D4, D5, D6, D7
Bu örnekte, RS pini 12, E pini 11 ve D4-D7 pinleri sırasıyla 5, 4, 3 ve 2 olarak ayarlanmıştır. Bu pin numaralarını, kullandığınız LCD ekranının bağlantılarına göre değiştirmelisiniz.
Şimdi setup() fonksiyonunda LCD'nin başlangıç konfigürasyonunu yapalım:
void setup() {
lcd.begin(16, 2); // 16x2 LCD ekran kullanılıyor
lcd.print("hello, world!");
}
Bu kod parçası, LCD ekranınızı başlatır ve "hello, world!" mesajını ilk satıra yazdırır.
Son olarak, loop() fonksiyonunda herhangi bir işlem yapmanıza gerek yoktur, çünkü mesajı sadece bir kez yazdıracağız:
void loop() {
// Boş bırakabilirsiniz
}
Arduino LCD Komutları ve İşlevleri Hakkında Bilgilendirme
Arduino'da LiquidCrystal kütüphanesi kullanarak LCD ekranını kontrol etmek için bir dizi işlev mevcuttur. Bu işlevler, yazının konumunu değiştirme, yazıyı kaydırma, ekranı temizleme ve görüntüyü kontrol etme gibi çeşitli görevleri yerine getirmenizi sağlar. Aşağıda, bu işlevlerin bazılarını kısaca açıklamış bulunmaktayım:
-
LiquidCrystal(): Bu işlev, LCD'nin bağlantı pinlerini ayarlar. LCD'yi kontrol etmek için Arduino'nun dijital pinlerinden herhangi birini kullanabilirsiniz. Örnek kullanım:
LiquidCrystal lcd(RS, E, D4, D5, D6, D7);
-
lcd.begin(): Bu işlev, LCD ekranının boyutlarını belirler. Örnek kullanım:
lcd.begin(sütunlar, satırlar);
16x2 LCD için:
lcd.begin(16, 2)
, 20x4 LCD için:
lcd.begin(20, 4)
-
lcd.clear(): Bu işlev, LCD ekranında görüntülenen mevcut içeriği temizler.
-
lcd.print(): Bu işlev, metin veya sayıları LCD ekranına basar. Örnek kullanım:
lcd.print("Merhaba, Dünya!");
-
lcd.setCursor(): Bu işlev, imlecin konumunu ayarlar. Örnek kullanım:
lcd.setCursor(sütun, satır);
-
lcd.scrollDisplayLeft(): Bu işlev, görüntüyü sola doğru kaydırır.
-
lcd.scrollDisplayRight(): Bu işlev, görüntüyü sağa doğru kaydırır.
-
lcd.autoscroll(): Bu işlev, metin ekranın sınırlarını aştığında otomatik olarak kaydırılmasını sağlar.
-
lcd.noAutoscroll(): Bu işlev, otomatik kaydırma özelliğini kapatır.
-
lcd.blink(): Bu işlev, imlecin yanıp sönmesini sağlar.
-
lcd.noBlink(): Bu işlev, imlecin yanıp sönme özelliğini kapatır.
-
lcd.cursor(): Bu işlev, imlecin görünmesini sağlar.
-
lcd.noCursor(): Bu işlev, imlecin görünme özelliğini kapatır.
lcd.clear ( )
#include <LiquidCrystal.h>
// LiquidCrystal kütüphanesini projeye dahil ediyoruz.
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
// LCD ekranınızın RS, E, D4, D5, D6 ve D7 pinlerini belirtiyoruz.
// Bu pinler Arduino'dan LCD ekranına veri iletimini sağlar.
void setup() {
lcd.begin(16, 2);
}
// Arduino başlatıldığında bir defaya mahsus çalışan setup() fonksiyonu.
// lcd.begin(16, 2) komutu ile LCD ekranın boyutlarını (16 sütun, 2 satır) ayarlıyoruz.
void loop() {
lcd.print("hello, world!");
delay(500);
lcd.clear();
delay(500);
}
// Arduino sürekli olarak tekrarlanan loop() fonksiyonu.
// lcd.print("hello, world!") ile "hello, world!" metnini LCD ekranına basıyoruz.
// delay(500) komutu ile 0.5 saniye bekliyoruz.
// lcd.clear() komutu ile LCD ekranındaki mevcut içeriği temizliyoruz.
// delay(500) komutu ile tekrar 0.5 saniye bekliyoruz.
Bu örnek kod, "hello, world!" metninin ilk üç harfini "XXX" ile değiştirir. "lcd.home()" işlevi kullanılmamıştır, ancak "lcd.clear()" işlevi ile ekran temizlenir ve yeni metin basılır. Ardından "delay()" fonksiyonları ile bekleme süreleri eklenir.
Bu sayede, "XXXlo, world!" metni ekranda belirir, ardından temizlenir ve sürekli olarak bu döngüde devam eder.
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2);
}
void loop() {
lcd.clear();
lcd.print("XXXlo, world!");
delay(500);
lcd.clear();
delay(500);
}
Bu örnek kod, LCD ekranına iki satırda "Merhaba," ve "Dunya!" yazılarını sırayla basar. "lcd.setCursor()" işlevi ile imleçin konumu ayarlanır ve ardından "lcd.print()" işlevi ile metin eklenir. "delay()" fonksiyonları ile bekleme süreleri eklenir.
Bu şekilde, "lcd.setCursor()" işlevini kullanarak imlecin konumunu istediğiniz gibi ayarlayabilir ve LCD ekranında metinleri belirli bir konumda görüntüleyebilirsiniz.
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2);
}
void loop() {
lcd.clear();
lcd.setCursor(0, 0); // İmleci 1. sütun, 1. satıra taşı
lcd.print("Merhaba,");
lcd.setCursor(0, 1); // İmleci 1. sütun, 2. satıra taşı
lcd.print("Dunya!");
delay(1000);
}
Bu örnek kod, LCD ekranına "Giris: A" yazısını basar. İmleçin konumu "lcd.setCursor()" işlevi ile belirlenir ve ardından "lcd.write()" işlevi ile belirli bir karakter yazdırılır.
"lcd.write()" işlevi ile ASCII karakterlerini veya özel karakterleri yazdırabilirsiniz. Örneğin, 'A' karakteri ASCII tablosundaki 65 numaralı karakteri temsil eder.
Bu şekilde, "lcd.write()" işlevini kullanarak belirli karakterleri veya özel karakterleri LCD ekranında görüntüleyebilirsiniz.
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2);
}
void loop() {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Giris: ");
char karakter = 'A'; // Yazdırılacak karakteri belirleyin
lcd.setCursor(0, 1);
lcd.write(karakter); // Belirtilen karakteri yazdırın
delay(1000);
}
Harf ve Sözcük Yazdırma:
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2);
}
void loop() {
lcd.clear();
lcd.print("Merhaba, Dunya!"); // Metni tırnak içine alarak yazdırma
delay(1000);
}
Bu örnek kod, LCD ekranına "Merhaba, Dunya!" yazısını basar. "lcd.print()" işlevi ile harf ve sözcükleri LCD ekranına yazdırabilirsiniz.
Sayı Yazdırma:
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2);
}
void loop() {
lcd.clear();
lcd.print(12345); // Sayıyı tırnak içine almadan yazdırma
delay(1000);
}
Bu örnek kod, LCD ekranına "12345" sayısını basar. Sayıları tırnak işareti olmadan doğrudan "lcd.print()" işlevi ile yazdırabilirsiniz.
Sayıları Farklı Sayı Sistemlerine Göre Yazdırma:
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2);
}
void loop() {
lcd.clear();
lcd.print(100, DEC); // Ondalık sayı sistemi
delay(1000);
lcd.clear();
lcd.print(100, BIN); // İkili sayı sistemi
delay(1000);
lcd.clear();
lcd.print(100, HEX); // Onaltılık sayı sistemi
delay(1000);
lcd.clear();
lcd.print(100, OCT); // Sekizlik sayı sistemi
delay(1000);
}
Bu örnek kod, sırasıyla ondalık, ikili, onaltılık ve sekizlik sayı sistemlerine göre "100" sayısını LCD ekranına basar.
"lcd.print()" işlevi, metinleri ve sayıları LCD ekranına yazdırmak için kullanılır. Sayılar için farklı sayı sistemleri belirtilebilir.
Bu makalede, Arduino ile LCD ekranların temel kullanımını öğrenerek etkileşimli projelerin kapılarını araladık. LiquidCrystal kütüphanesi sayesinde LCD ekranlarını bağlamak, metin ve sayıları görüntülemek, imleç konumunu ayarlamak ve farklı sayı sistemlerine göre yazıları okumak gibi önemli becerileri edindik. Artık hayal gücünüzün sınırlarını zorlayarak, LCD ekranlarınızı kullanarak yaratıcı ve ilgi çekici projeler geliştirebilirsiniz.
Arduino projeleriyle uğraşırken LCD ekranların sunduğu interaktif ve bilgilendirici özellikleri kullanarak, farklı alanlarda pek çok yenilikçi proje gerçekleştirebilirsiniz. Teknolojiye yaratıcı bir dokunuş katmak ve farklı sektörlerdeki ihtiyaçları karşılamak için Arduino ve LCD ekranları güçlü bir kombinasyon oluşturuyor.
Unutmayın ki, bu makalede öğrendiğiniz temel bilgiler, daha karmaşık projelere ilerlemek için sağlam bir temel oluşturuyor. Hayal gücünüzü ve yeteneklerinizi kullanarak daha büyük ve etkileyici projeler hayata geçirebilirsiniz. Başarılar dileriz ve yaratıcı yolculuğunuzun devamını sabırsızlıkla bekleriz!
Eğer projeniz sırasında herhangi bir hata ile karşılaşırsanız, Bize yorum Yazarak bunu belirte Bilirisiniz.
Berat KURTGÖZ (Yazar)
Tasarım ssnasıl göründüğü ya da nasıl hissettirdiği ile ilgili bir şey değildir. Tasarım nasıl çalıştığı ile ilgilidir
Makaleleri
45
Makale Okunması
20569
Yorumunuz Gönder