Arduino ile LCD Kullanımı

Arduino ile LCD Kullanımı Giriş

Arduino ile LCD Kullanımı. Arduino tabanlı projelerde bilgileri kullanıcıya aktarmanın en etkili yollarından biri LCD ekranlar kullanmaktır. Özellikle 16×2 karakter LCD ekranlar, düşük maliyetleri, uygun güç tüketimleri ve kolay entegrasyonları sayesinde eğitimden endüstriyel uygulamalara kadar çok geniş bir alanda tercih edilir.


LCD Nedir? Nasıl Çalışır?

Arduino ile en sık kullanılan LCD ekran tipi 16×2 karakter LCD’dir. Bu ekranlar 16 sütun ve 2 satırdan oluşur.
Temel özellikleri:

  • HD44780 uyumlu kontrolcü
  • 5V ile çalışır
  • I2C arayüzlü veya paralel bağlantı seçenekli
  • Karakter tabanlı bilgi gösterimi
  • Düşük güç tüketimi

LCD ekranlar aslında bir mikrodenetleyiciye sahiptir ve kendilerine gönderilen karakter kodlarını ekrana yazdırır.


Donanım Gereksinimleri

LCD ekranlar iki farklı şekilde kullanılabilir:

1. I2C Modüllü LCD (önerilir)

Avantajları:

  • Sadece 4 pin kullanır (GND, VCC, SDA, SCL)
  • Daha az kablo karmaşası
  • Kolay programlama

2. Paralel Bağlantılı LCD

Avantajları:

  • I2C modülü gerektirmez
  • Tüm kontrol ekranı Arduino üzerinden yönetilir
    Dezavantaj:
  • 8–12 pin kullanımına ihtiyaç duyar
  • Kabla karmaşası yüksek

Gerekli Malzeme Listesi

MalzemeAdetAçıklama
Arduino UNO1Kontrol kartı
16×2 LCD Ekran1Karakter ekran
I2C LCD Modülü1(Tercihen) Bağlantıyı kolaylaştırır
Breadboard1Bağlantı platformu
Jumper kablolar6–8Bağlantı için

Bağlantı Şeması

I2C LCD için bağlantı:

LCD PinArduino Pin
GNDGND
VCC5V
SDAA4
SCLA5

Not: UNO için SDA = A4, SCL = A5;
MEGA için SDA = 20, SCL = 21’dir.


Paralel LCD için bağlantı:

  • RS → Arduino 12
  • E → Arduino 11
  • D4 → Arduino 5
  • D5 → Arduino 4
  • D6 → Arduino 3
  • D7 → Arduino 2
  • VSS → GND
  • VDD → 5V
  • RW → GND
  • Kontrast ayarı için 10K potansiyometre bağlanır.

LCD Kullanımı için Kod Bloğu

I2C LCD Kod Örneği

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2); // LCD adresi ve boyut

void setup() {
  lcd.init(); 
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("Facadium STEM");
  lcd.setCursor(0, 1);
  lcd.print("LCD Test OK");
}

void loop() {

}

Paralel LCD Kod Örneği

#include <LiquidCrystal.h>

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

void setup() {
  lcd.begin(16, 2);
  lcd.print("Arduino LCD Test");
}

void loop() {
}

LCD’nin Teknik Çalışma Mantığı

LCD ekranlar, karakterleri hafızasında saklı tutan bir kontrol entegresiyle (HD44780) çalışır.
Arduino’dan gelen veri:

  • RS pini ile komut/veri ayrıştırılır
  • E pini ile işlenir
  • D4–D7 pinleri üzerinden veri 4-bit modda aktarılır
    I2C kullanımında tüm bu işlemleri I2C modülü devralır, Arduino sadece iki kablo üzerinden veri gönderir.

Gündelik Hayatta LCD Kullanım Alanları

LCD ekranlar çok geniş bir alanda kullanılır:

  1. Akıllı Ev Sistemleri: Sensör verilerini ekrana yazdırmak (sıcaklık, nem vb.)
  2. Robotik Projeler: Robot durum bilgisi, mesafe, batarya seviyesi
  3. Tarım Teknolojileri: Toprak nem sensörü, su seviyesi göstergesi
  4. Endüstriyel Sistemler: Uyarı ekranı, üretim sayacı
  5. 3D Yazıcı ve CNC makineleri: Menü arayüzü ve sistem durumu
  6. Eğitim Amaçlı Projeler: Veri izleme ve anlık geri bildirim

En Çok Aranan Sorular ve Cevapları

1. LCD neden yazı göstermiyor?

Olası nedenler:

  • I2C adresi yanlış (0x27 yerine 0x3F olabilir)
  • Kontrast ayarı yapılmamış
  • SDA/SCL bağlantıları ters
  • Kütüphane yüklenmemiş

2. LCD’nin I2C adresi nasıl bulunur?

Aşağıdaki “I2C Scanner” kodu kullanılabilir:

#include <Wire.h>

void setup() {
  Wire.begin();
  Serial.begin(9600);
  Serial.println("I2C taranıyor...");
}

void loop() {
  for (byte i = 0; i < 128; i++) {
    Wire.beginTransmission(i);
    if (Wire.endTransmission() == 0) {
      Serial.print("Adres bulundu: 0x");
      Serial.println(i, HEX);
    }
  }
  delay(1000);
}

3. LCD’de özel karakter oluşturabilir miyim?

Evet. lcd.createChar() fonksiyonu ile Türkçe karakterler veya özel ikonlar oluşturulabilir.


4. LCD arka ışığı nasıl kapatılır?

lcd.noBacklight();

Şeklinde kapatılır.

5. LCD yerine OLED ekran kullanılabilir mi?

Evet, OLED ekranlar daha modern ve yüksek çözünürlüklüdür.
Ancak daha fazla kütüphane bilgisi gerektirir.


6. LCD ekran neden titriyor?

Genellikle yanlış güç beslemesi nedeniyle olur.
USB yerine harici güç kaynağı kullanmak önerilir.


7. LCD’ye uzun metin nasıl kaydırılır?

lcd.scrollDisplayLeft() veya lcd.scrollDisplayRight() fonksiyonları kullanılır.


8. LCD menü sistemi yapabilir miyim?

Evet. Butonlar veya rotary encoder ile çok sayfalı menüler yapılabilir.


Geliştirilebilir Proje Fikirleri

  • Sıcaklık ve nem ölçer ekranı (DHT11 + LCD)
  • Toprak nem ölçer tarım projesi
  • Mini hava istasyonu
  • LCD menülü servo kontrol paneli
  • Bluetooth üzerinden mesaj görüntüleme
  • Saat-tarih ekranı (RTC modülü ile)

Eğitimlerimize katılarak bu ve diğer projeleri uygulamalı olarak öğrenebilirsiniz. Eğitimlerimize ve diğer bilgilere buradaki linkten (https://www.facadium.com.tr/) ulaşabilirsiniz. Ürünlerimize STEM Kits üzerinden ulaşabilirsiniz. STEM Kits (https://www.stemkits.com.tr/) Lütfen bizlere iletişim kanallarından ulaşınız.