Anasayfa / ROBOTİK KODLAMA / Arduino ile LCD Ekran Kullanımı

Arduino ile LCD Ekran Kullanımı

Arduino ve ESP32 ile I2C LCD Ekran Kullanım Rehberi: Bağlantı, Kodlama ve Sorun Giderme

Elektronik projelerde kullanıcıya veri göstermenin en popüler yolu LCD ekranlardır. Ancak standart bir 16×2 LCD ekranı Arduino’ya bağlamak istediğinizde, dijital pinlerinizin yarısını feda etmeniz gerekir. İşte bu noktada I2C modülleri (PCF8574 tabanlı) devreye girer. Bu rehberde, sadece 4 kablo ile LCD ekranınızı nasıl çalıştıracağınızı, doğru kütüphane seçimini ve sık karşılaşılan “beyaz kare” sorununun çözümünü detaylarıyla inceleyeceğiz.

Neden I2C LCD Modülü Kullanmalısınız?

Standart bir HD44780 karakter LCD ekran, paralel iletişim modunda çalışır ve mikrodenetleyicinizde en az 6-7 GPIO pinini işgal eder. Bu durum, sensörler veya motorlar için pin kalmamasına neden olabilir. LCD ekranın arkasına lehimlenen I2C Serial Interface Adapter (Backpack) modülü sayesinde, ekranı kontrol etmek için sadece 2 adet veri pinine (SDA ve SCL) ve 2 adet güç pinine (VCC ve GND) ihtiyacınız vardır. Bu modül genellikle PCF8574 G/Ç genişletici çipini kullanır.

Donanım Bağlantıları: Arduino ve ESP32

I2C iletişimi, SDA (Veri) ve SCL (Saat) hatlarını kullanır. Kullandığınız karta göre bu pinlerin yerleri değişmektedir.

Arduino UNO için Bağlantı

GND: GND

VCC: 5V

SDA: A4 (veya SDA pini)

SCL: A5 (veya SCL pini).

Arduino Mega için Bağlantı

Mega kullanıcılarının en sık yaptığı hata, Uno alışkanlığıyla A4/A5 pinlerini kullanmalarıdır. Mega’da I2C pinleri farklıdır:

SDA: Pin 20

SCL: Pin 21.

ESP32 ve ESP8266 için Bağlantı

ESP32 ve ESP8266 3.3V mantığıyla çalışsa da, çoğu I2C LCD modülü 5V ile çalışacak şekilde tasarlanmıştır. Ekranın silik görünmemesi için LCD’yi genellikle 5V (VIN) pininden beslemeniz önerilir.

ESP32: SDA (GPIO 21), SCL (GPIO 22).

ESP8266 (NodeMCU): SDA (GPIO 4 / D2), SCL (GPIO 5 / D1).

Kritik Adım: I2C Adresini Doğru Belirlemek

Kodunuzu yüklediğinizde ekran çalışmıyorsa, ilk şüpheli I2C adresidir. I2C modülleri genellikle iki farklı çip varyasyonu ile gelir ve bu da varsayılan adresi değiştirir:

1. Texas Instruments PCF8574: Varsayılan adres genellikle 0x27‘dir.

2. NXP PCF8574A: Varsayılan adres genellikle 0x3F‘tir.

Eğer modül üzerindeki A0, A1, A2 lehim pedlerini birleştirirseniz adres değişecektir. Adresinizden emin değilseniz, “I2C Scanner” (Tarayıcı) kodu kullanarak seri monitörden cihazınızın gerçek adresini öğrenebilirsiniz.

Yazılım: Hangi Kütüphaneyi Kullanmalısınız?

İnternette “LiquidCrystal_I2C” adında onlarca farklı kütüphane dolaşmaktadır ve bunların çoğu birbiriyle uyumsuzdur. Bu durum, yeni başlayanlar için büyük bir kafa karışıklığı yaratır.

Önerilen Kütüphane: hd44780 (Bill Perry)

Arduino Forumundaki uzmanlar ve geliştiriciler, manuel konfigürasyonla uğraşmamak için Bill Perry tarafından geliştirilen hd44780 kütüphanesini önermektedir. Neden bu kütüphane?

• I2C adresini ve pin eşleşmesini otomatik algılar.

• Arduino IDE Kütüphane Yöneticisi üzerinden kolayca kurulabilir.

• Daha hızlıdır ve diğer kütüphanelerle çakışmaz.

Kurulum: Arduino IDE > Sketch > Include Library > Manage Libraries yolunu izleyin ve “hd44780” aratarak kurulumu yapın. Kodunuzda hd44780_I2Cexp.h sınıfını kullanarak, adresi bilmeseniz bile ekranı çalıştırabilirsiniz.

Eğer klasik LiquidCrystal_I2C kütüphanesini (Frank de Brabander versiyonu gibi) kullanacaksanız, nesneyi tanımlarken doğru adresi girdiğinizden emin olmalısınız: LiquidCrystal_I2C lcd(0x27, 16, 2);.

Sık Karşılaşılan Sorunlar ve Çözümleri

LCD ekranınız çalışmıyorsa, panik yapmadan önce aşağıdaki adımları kontrol edin. Sorunların %90’ı bu üç maddeden kaynaklanır:

1. Ekranda Sadece Beyaz Kareler/Kutucuklar Var (White Squares)

Bu, ekranın elektrik aldığını ancak başlatılamadığını (init) gösterir.

Çözüm: I2C adresi kodunuzda yanlış girilmiş olabilir. I2C Scanner ile adresi doğrulayın. SDA ve SCL kablolarının ters takılmadığından emin olun.

2. Ekran Işığı Yanıyor Ama Yazı Yok (Veya Çok Silik)

Bu genellikle bir yazılım hatası değil, kontrast sorunudur.

Çözüm: I2C modülünün arkasındaki mavi potansiyometreyi (trimpot) küçük bir tornavida ile yavaşça çevirin. Karakterler netleşene kadar ayar yapın. Birçok kullanıcı ekranın bozuk olduğunu sanar, oysa sadece kontrast ayarı yapılmamıştır.

3. Ekran Yanıp Sönüyor veya Karakterler Bozuk

Bu durum yetersiz güç kaynağından veya kötü lehimlemeden kaynaklanabilir.

Çözüm: Eğer I2C modülünü LCD’ye kendiniz lehimlediyseniz, lehimlerin soğuk lehim olmadığından ve pinlerin birbirine temas etmediğinden emin olun. Ayrıca loop döngüsü içinde sürekli lcd.clear() kullanmak ekranın titremesine (flicker) neden olur; bunun yerine sadece değişen veriyi güncelleyin.

İleri Seviye Özellikler: Özel Karakter Oluşturma

LCD ekranlar sadece harf ve rakamlarla sınırlı değildir. 5×8 piksellik matrisleri kullanarak kendi simgelerinizi (kalp, gülen yüz, batarya durumu vb.) oluşturabilirsiniz.

Bunun için bir byte dizisi oluşturmanız ve createChar fonksiyonunu kullanmanız gerekir. LCD belleği (CGRAM) aynı anda en fazla 8 özel karakter saklayabilir.

Örnek Kalp İkonu Kodu:

byte kalp[34] = {
  0b00000,
  0b01010,
  0b11111,
  0b11111,
  0b11111,
  0b01110,
  0b00100,
  0b00000
};
lcd.createChar(0, kalp); // 0. hafıza slotuna kaydet
lcd.write(0); // Ekrana yazdır

Sonuç

I2C LCD ekranlar, az pin kullanımı ve kolay programlanabilirliği ile Arduino ve ESP32 projelerinin vazgeçilmezidir. Doğru kütüphaneyi seçmek (hd44780 önerilir), I2C adresini doğrulamak ve kontrast ayarını yapmak, karşılaşacağınız sorunların çoğunu çözecektir. Projelerinizde başarılar dileriz!

Etiketlendi:

Cevap bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir