İçindekiler
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
| Malzeme | Adet | Açıklama |
|---|---|---|
| Arduino UNO | 1 | Kontrol kartı |
| 16×2 LCD Ekran | 1 | Karakter ekran |
| I2C LCD Modülü | 1 | (Tercihen) Bağlantıyı kolaylaştırır |
| Breadboard | 1 | Bağlantı platformu |
| Jumper kablolar | 6–8 | Bağlantı için |
Bağlantı Şeması
I2C LCD için bağlantı:
| LCD Pin | Arduino Pin |
|---|---|
| GND | GND |
| VCC | 5V |
| SDA | A4 |
| SCL | A5 |
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:
- Akıllı Ev Sistemleri: Sensör verilerini ekrana yazdırmak (sıcaklık, nem vb.)
- Robotik Projeler: Robot durum bilgisi, mesafe, batarya seviyesi
- Tarım Teknolojileri: Toprak nem sensörü, su seviyesi göstergesi
- Endüstriyel Sistemler: Uyarı ekranı, üretim sayacı
- 3D Yazıcı ve CNC makineleri: Menü arayüzü ve sistem durumu
- 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.
