🤖
ROBOT KODLA
Öğrenmeye Başla →
⚡ Arduino Projeleri 📅 16 Ekim 2026

Arduino ile LCD Ekrana Yazı Yazdırma

Arduino ile 16x2 I2C LCD ekrana yazı yazdırma rehberi! Devre bağlantı şeması, I2C adres bulma, kütüphane kurulumu ve örnek C++ kodları.

Arduino ile LCD Ekrana Yazı Yazdırma

Robotik projeler geliştirirken sensörlerden okunan sıcaklık, mesafe, nem gibi verileri veya cihazın çalışma durumunu görmek için bilgisayara ve Seri Port Ekranına bağımlı kalmak projelerin taşınabilirliğini kısıtlar. Projenizi bağımsız bir son kullanıcı ürününe dönüştürmenin en estetik ve profesyonel yolu devreye bir 16x2 Karakter LCD Ekran eklemektir.

Peki 16x2 LCD ekran nedir? Klasik 16 kablolu bağlantı çilesinden bizi kurtaran I2C Modülü nasıl çalışır? Ekranın I2C adresi nasıl bulunur ve ekrana Türkçe karakter destekli metinler nasıl yazdırılır? Bu kapsamlı rehberde tüm detayları inceliyoruz.

1. 16x2 Karakter LCD Ekran Nedir?

16x2 LCD ekran; her biri 5x8 pikselden oluşan karakter kutucukları sayesinde 2 satırda toplam 32 karakter (her satırda 16 harf/rakam) gösterebilen sıvı kristal bir ekrandır.

Geçmişte bu ekranları Arduino'ya bağlamak için en az 10-12 adet jumper kabloyu tek tek bağlamak ve kontrast ayarı için bir potansiyometre lehimlemek gerekiyordu.

Günümüzde ise ekranın arkasına fabrikasyon olarak lehimlenen PCF8574 I2C Dönüştürücü Kartı sayesinde ekran bağlantısı sadece 4 adet kabloya inmiştir!

2. I2C Modüllü LCD Ekran Pinout ve Bağlantı Şeması

LCD I2C PiniArduino Uno PiniGörevi
GNDGNDToprak bağlantısı
VCC5VBesleme gerilimi
SDAA4Veri iletim hattı (Serial Data)
SCLA5Saat senkronizasyonu (Serial Clock)

3. Ekranın I2C Adresini Bulma (I2C Scanner)

Çoğu 16x2 LCD ekran fabrikasyon olarak `0x27` veya `0x3F` hex adresine sahiptir. Yanlış adres tanımlanırsa ekrana elektrik gelse bile yazılar görünmez.

#include <Wire.h> void setup() { Wire.begin(); Serial.begin(9600); Serial.println("
I2C Cihazlari Taraniyor..."); for (byte address = 1; address < 127; address++) { Wire.beginTransmission(address); if (Wire.endTransmission() == 0) { Serial.print("Buldum! I2C Cihaz Adresi: 0x"); if (address < 16) Serial.print("0"); Serial.println(address, HEX); } }
}
void loop() {}

4. Gerekli Kütüphanenin Kurulması

Arduino IDE menüsünden:

  • Araçlar > Kütüphaneleri Yönet sekmesini açın.
  • Arama kutusuna `LiquidCrystal I2C` yazın.
  • Frank de Brabander veya Marco Schwartz tarafından geliştirilen kütüphaneyi bulup "Yükle" butonuna basın.
  • 5. Tam ve Çalışan Arduino C++ Kodları

    /* * RobotKodla.com - LCD Ekran Dersi * Proje: 16x2 I2C LCD Ekrana Yazı Yazdırma */ #include <Wire.h>
    #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16, 2); int sayac = 0; void setup() { lcd.init(); lcd.backlight(); lcd.setCursor(0, 0); lcd.print("RobotKodla.com"); lcd.setCursor(0, 1); lcd.print("Hos Geldiniz!"); delay(2000); lcd.clear();
    } void loop() { lcd.setCursor(0, 0); lcd.print("Calisma Suresi:"); lcd.setCursor(0, 1); lcd.print("Saniye: "); lcd.print(sayac); sayac++; delay(1000);
    }

    6. Sık Yaşanan Sorun: "Yazılar Görünmüyor, Sadece Beyaz Kareler Var!"

    Ekranın arkasındaki mavi I2C modülünün üzerinde küçük mavi bir kutu ve ortasında pirinç renkli bir vida (kontrast trimpotu) bulunur. Düz uçlu küçük bir tornavidayla bu vidayı sağa-sola yavaşça çevirerek kontrastı ayarlayın. Yazıların anında netleştiğini göreceksiniz!

    7. LCD Ekranda Özel Karakter ve Türkçe Harf Oluşturma

    Arduino, ekranın CGRAM hafızasına 8 adet özel piksel deseni yüklemenize izin verir:

    byte kalp[8] = { 0b00000, 0b01010, 0b11111, 0b11111, 0b01110, 0b00100, 0b00000, 0b00000
    }; // setup içinde: lcd.createChar(0, kalp);
    // loop içinde: lcd.write(0);

    8. LCD Ekranın Ömrünü Uzatma ve Enerji Tasarrufu

  • İhtiyaç duyulmadığında `lcd.noBacklight();` komutuyla ışığı kapatabilir, buton basıldığında `lcd.backlight();` ile açabilirsiniz.
  • Ekranı sürekli temizlemek (`lcd.clear()`) kırpışmaya yol açar. Yalnızca değişen koordinata gidip (`setCursor`) üzerine yeni veriyi yazdırmak çok daha akıcı bir görüntü sağlar.
  • 9. LCD Ekranlarda Karşılaşılan Donanımsal Sorunlar ve Çözüm Tablosu

    Sorun BelirtisiOlası Donanımsal NedenPratik Çözüm Adımı
    Ekranda sadece üst satırda beyaz kareler varKontrast ayarsız veya I2C adresi yanlışTrimpotu çevirin, I2C scanner ile adresi doğrulayın.
    Arka ışık yanmıyorI2C modülündeki LED jumper takılı değilModülün arkasındaki iki iğneli siyah jumper başlığını takın.
    Ekranda garip karakterler çıkıyorGevşek SDA/SCL kablolarıKabloları yenileyin, motor hatlarını ekrandan ayırın.

    10. LCD Ekranda Özel Karakter ve Türkçe Harf Oluşturma Sanatı

    16x2 LCD ekranların dahili karakter tablosunda (ROM) İngilizce alfabe ve semboller bulunur. Bu nedenle doğrudan "Ş, İ, Ğ, Ç, Ö, Ü" yazdırmaya çalıştığınızda ekranda anlamsız semboller veya boşluklar görünür.

    Arduino, ekranın CGRAM (Character Generator RAM) hafızasına 8 adet özel piksel deseni tanımlamanıza olanak tanır:

  • Her karakter 5 sütun ve 8 satırdan oluşan bir piksel matrisidir.
  • Örneğin Türkçe 'kalp', 'derece (°C)' veya 'ç' harfi oluşturmak için pikseller bayt dizisi olarak tanımlanır:
  • byte kalp[8] = { 0b00000, 0b01010, 0b11111, 0b11111, 0b01110, 0b00100, 0b00000, 0b00000
    }; // setup içinde tanımla:
    lcd.createChar(0, kalp); // loop içinde ekrana bas:
    lcd.write(0);

    11. LCD Ekran Sorun Giderme Tablosu

    Sorun BelirtisiOlası Donanımsal NedenKesin Çözüm Adımı
    Ekranda sadece üst satırda beyaz kareler varKontrast trimpotu ayarsız veya I2C adresi yanlışTrimpotu tornavidayla çevirin, I2C scanner ile adresi (0x27 / 0x3F) doğrulayın.
    Arka ışık hiç yanmıyorI2C modülündeki LED jumper başlığı takılı değilModülün arkasındaki iki iğneli siyah jumper başlığının takılı olduğunu kontrol edin.
    Ekranda garip yabancı karakterler çıkıyorGevşek SDA/SCL kabloları veya sinyal gürültüsüKabloları yenileyin, motorların güç hattını LCD hattından ayırın.
    Yazılar silik ve titrek görünüyorYetersiz 5V beslemesiArduino'ya harici adaptör takın veya USB portunu değiştirin.

    12. Kapsamlı Sıkça Sorulan Sorular (SSS)

    LCD ekranda I2C modülü olmadan bağlantı yapılabilir mi?

    Evet, yapılabilir. Ancak bu durumda Arduino'nun RS, E, D4, D5, D6, D7 olmak üzere en az 6 adet dijital pini harcanır ve breadboard üzerinde 16 adet jumper kablo bağlamak gerekir. Bu sebeple günümüzde neredeyse tüm projelerde 4 pinli I2C modülleri tercih edilmektedir.

    LCD ekranın arkasındaki potansiyometre ne işe yarar?

    O mavi küçük trimpot, sıvı kristal piksellerin voltaj referansını (kontrastını) ayarlar. Trimpot yanlış ayarlanmışsa ekranda ya hiçbir şey görünmez ya da her yer siyah kutu olur.

    Ekrandaki yazıyı kayan yazı (marquee efekti) yapabilir miyim?

    Evet! `LiquidCrystal_I2C` kütüphanesinin dahili `lcd.scrollDisplayLeft();` ve `lcd.scrollDisplayRight();` fonksiyonlarını bir `for` döngüsü içinde kullanarak haber bülteni alt yazısı gibi kayan metinler tasarlayabilirsiniz.

    Sonuç

    16x2 I2C LCD ekran, Arduino projelerinize profesyonel bir arayüz kazandırır. Sıcaklık ve nem değerlerini, mesafe ölçümlerini veya şifreli kapı kilitlerinin durum mesajlarını bu ekranda göstererek harika ürünler geliştirebilirsiniz. Sitemizdeki uygulamalı [Dersler](/dersler) ile LCD ekranlı ileri seviye projeleri keşfetmeye devam edin!

    💡

    Arduino ile LCD Ekrana Yazı Yazdırma Hakkında Sıkça Sorulan Sorular

    Bu yazıyla ilgili en çok merak edilen noktalar ve uzman yanıtları

    Bu rehber yazıda anlatılan yöntemleri uygulamak için neler gereklidir?▼
    İçerikte belirtilen açık kaynaklı yazılım araçlarını ve temel donanım bileşenlerini temin etmeniz yeterlidir. Tüm adımlar pratik uygulamalarla desteklenmiştir.
    Bu uygulamada devre bağlantısı yaparken en çok yapılan hata nedir?▼
    Ortak toprak (GND) hattının bağlanmaması, LED ve sensör bacaklarının ters kutupla takılması ya da pin numaralarının koddaki dijital/analog tanımlarla uyuşmaması en sık karşılaşılan durumlardır. Şemadaki pin numaralarını iki kez kontrol etmek sorunu çözer.
    Arduino ile LCD Ekrana Yazı Yazdırma çalışmasını tamamladıktan sonra nasıl daha ileri bir seviyeye taşıyabilirim?▼
    Bu çalışmaya ek sensörler (kablosuz Bluetooth/Wi-Fi modülü, OLED ekran veya sesli buzzer uyarısı) entegre edebilir; verileri internet ortamına aktararak Nesnelerin İnterneti (IoT) tabanlı akıllı bir sisteme dönüştürebilirsiniz.