İçeriğe geç

Menü

Berk Akademi
Yorumlar Google yorumları Özel Ders Başvuru Ücretsiz ön görüşme Ana Sayfa

arduino i2c lcd kullanımı: Ekrana Yazı Yazdırma, Bağlantı ve Kod

arduino-i2c-lcd-ekrana-yazi-yazdirma-baglanti-ve-kod
Bu yazıda neler var?
  1. I2C modülü neden dört kabloyla bağlantı sağlar?
  2. Arduino Uno'da I2C LCD bağlantısı nasıl yapılır?
  3. Kütüphane nasıl kurulur ve I2C adresi nasıl bulunur?
  4. setCursor ve print ile iki satıra yazı nasıl yazılır?
  5. Ekran açıkken yazı görünmüyorsa ne kontrol edilir?
  6. Sık Sorulan Sorular

Arduino I2C LCD kullanımı için ekranı Arduino Uno'ya dört kabloyla bağlayabilir, modülün I2C adresini belirledikten sonra uygun kodla ekrana yazı gönderebilirsin. Bu bağlantıda GND ve VCC besleme için, SDA ve SCL ise Arduino ile LCD modülü arasındaki iletişim için kullanılır.

Bağlantıların doğru olması, ekranın doğru I2C adresiyle seçilmesi ve kullanılan kütüphanenin modülle uyumlu olması gerekir. Önce kablo düzenini anlayarak başlamak, daha sonra kod tarafındaki sorunları ayıklamayı kolaylaştırır.

I2C modülü neden dört kabloyla bağlantı sağlar?

I2C modülü, LCD ekranın normalde ihtiyaç duyduğu çok sayıdaki paralel kontrol hattını daha az kabloyla yönetmeye yardımcı olan küçük bir devredir. I2C, cihazlar arasında iletişim kurmak için iki hat kullanır: SDA veri hattıdır, SCL ise veri alışverişinin zamanlamasını düzenleyen saat hattıdır. Arduino'nun I2C açıklamasında da bu iki hat, veri ve seri saat iletişiminin temel bağlantıları olarak tanımlanır.

Diğer iki kablo olan GND ve VCC, iletişimin gerçekleşmesi için gereken elektriksel temel bağlantıyı sağlar. GND ortak referans noktasıdır. VCC ise I2C modülüne ve bağlı LCD devresine besleme verir. Böylece Arduino Uno ile temel bağlantı dört kablo üzerinden kurulabilir.

Basit bir benzetmeyle SDA'yı gönderilen mesajların taşındığı veri yolu, SCL'yi bu mesajların hangi sırayla ve ne zaman okunacağını belirleyen bir metronom gibi düşünebilirsin. I2C adresi ise aynı iletişim hattında bulunan cihazların birbirinden ayırt edilmesini sağlayan sınıf numarası gibidir. Arduino, yazı göndereceği LCD modülünü bu adres üzerinden seçer.

LCD I2C modüllerinde 0x27 ve 0x3F sık karşılaşılan adres örnekleridir. Ancak bunlar her modül için kesin adres değildir. Kullanılan dönüştürücü devreye göre adres değişebileceği için doğru adresi I2C tarayıcı koduyla bulmak gerekir.

Arduino Uno'da I2C LCD bağlantısı nasıl yapılır?

Arduino Uno'da I2C LCD bağlantısı nasıl yapılır?

Arduino Uno ile LCD I2C modülü arasındaki bağlantı GND, VCC, SDA ve SCL pinleri eşleştirilerek yapılır. Uno kartında SDA hattı A4 pinine, SCL hattı ise A5 pinine karşılık gelir; Arduino'nun Uno teknik belgelerinde bu pinler sırasıyla I2C veri ve saat hatları olarak gösterilir.

LCD I2C modülü Arduino Uno Görevi
GND GND Arduino ve LCD arasında ortak elektriksel referans oluşturur.
VCC 5V LCD I2C modülüne besleme sağlar.
SDA A4 LCD ile Arduino arasındaki veriyi taşır.
SCL A5 I2C iletişiminin zamanlamasını taşır.

GND ile GND: GND kablosu Arduino ile LCD modülünün ortak referansını oluşturur. Bu bağlantı yapılmazsa modül enerji alsa bile iletişim düzgün çalışmayabilir.

VCC ile 5V: VCC kablosu modülün besleme girişine bağlanır. VCC bağlantısı kopuksa ekranın arka aydınlatması yanmayabilir veya LCD hiç tepki vermeyebilir.

SDA ile A4: SDA veri hattıdır. Bu kablo yanlış pine takılırsa Arduino, LCD modülüne gönderdiği veriyi doğru hatta iletemez.

SCL ile A5: SCL iletişimin zamanlamasını taşır. SDA ve SCL kabloları ters bağlandığında ekran aydınlansa bile Arduino ile LCD arasında veri iletişimi kurulamayabilir.

Arduino Uno dışındaki kartlarda SDA ve SCL pinleri farklı konumlarda bulunabilir. Bu nedenle başka bir kart kullanırken kartın üzerindeki pin etiketlerini veya resmî pin düzenini kontrol etmelisin. Kablo değişikliği yapmadan önce USB bağlantısı ve harici besleme dâhil olmak üzere devrenin enerjisini kesmek, kısa devre ve hatalı bağlantı riskini azaltır.

  • LCD I2C modülünün VCC ve GND pinleri doğru bağlandı mı?
  • Modül LCD ekranın arkasındaki bağlantı noktalarına düzgün takıldı mı?
  • SDA kablosu A4, SCL kablosu A5 pinine gidiyor mu?
  • Kablolar yuvalara tam oturdu mu ve gevşek görünmüyor mu?
  • Devreye enerji vermeden önce bağlantılar bir kez daha kontrol edildi mi?

Kütüphane nasıl kurulur ve I2C adresi nasıl bulunur?

Kütüphane nasıl kurulur ve I2C adresi nasıl bulunur?

Kütüphane, Arduino IDE’ye hazır sınıf ve fonksiyonlar ekleyen kod paketidir. Arduino IDE’de Kütüphane Yöneticisi’ni açıp LiquidCrystal_I2C adını arat. Aynı ada sahip birden fazla paket görünürse seçtiğin paketin belgelerinde yer alan kullanım biçimini izlemelisin. Bu örnekte kullanılan arayüzde <LiquidCrystal_I2C.h> satırı, adres ve ekran boyutunu alan LiquidCrystal_I2C lcd(0x27, 16, 2); tanımı ve init(), backlight(), setCursor(), print(), clear() fonksiyonları bulunur.

LCD modülünün I2C adresini bilmiyorsan LCD kütüphanesine ihtiyaç duymadan çalışan kısa bir tarayıcı kullanabilirsin. Wire.h, Arduino’nun I2C cihazlarıyla haberleşmesini sağlayan kütüphanedir. Kod, 0 ile 127 arasındaki adresleri dener ve cevap veren adresi seri ekrana onaltılık biçimde yazar.

#include <Wire.h>

void setup() {
  Wire.begin();
  Serial.begin(9600);

  bool bulundu = false;
  Serial.println("I2C taramasi");

  for (byte address = 0; address <= 127; address++) {
    Wire.beginTransmission(address);
    byte hata = Wire.endTransmission();

    if (hata == 0) {
      bulundu = true;
      Serial.print("Adres: 0x");

      if (address < 16) {
        Serial.print("0");
      }

      Serial.println(address, HEX);
    }
  }

  if (!bulundu) {
    Serial.println("Adres bulunamadi");
  }
}

void loop() {
}

Programı yükledikten sonra Seri Monitör’ü 9600 baud hızında aç. Örnek sonuç 0x27 veya 0x3F olabilir. Bu değerler yalnızca örnektir, LCD’nin kesin adresi tarama sonucunda görünen adrestir. Bulduğun adresi ana LCD kodundaki 0x27 bölümünün yerine yazmalısın.

Hiç adres bulunmuyorsa önce VCC ve GND kablolarını, ardından SDA ile SCL bağlantılarını kontrol et. SDA ve SCL’nin ters bağlanması, gevşek kablo veya LCD’nin besleme alamaması tarama sonucunu etkileyebilir.

setCursor ve print ile iki satıra yazı nasıl yazılır?

setCursor(sütun, satır) yazının başlayacağı konumu seçer ve sayım sıfırdan başlar. Bu nedenle setCursor(0, 0) ilk satırın, setCursor(0, 1) ikinci satırın başlangıcını gösterir. print() metin ya da sayı gönderir, clear() ise ekrandaki karakterleri temizler.

Aşağıdaki örnekte adres olarak 0x27 kullanıldı. Tarayıcı başka bir adres bulduysa yalnızca bu değeri, örneğin 0x3F olarak değiştir.

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {
  lcd.init();
  lcd.backlight();
  lcd.clear();
}

void loop() {
  lcd.setCursor(0, 0);
  lcd.print("Merhaba");

  lcd.setCursor(0, 1);
  lcd.print("Saniye: ");
  lcd.print(millis() / 1000);
  lcd.print("     ");

  delay(1000);
}

millis() programın çalışmasından beri geçen milisaniyeyi verir. Değeri 1000’e bölünce geçen saniyeyi yaklaşık olarak gösterir. Ekranda ilk satırda Merhaba, ikinci satırda ise Saniye: ifadesi ve artan sayı görünür. Sayı kısaldığında eski karakterlerin kalmaması için satırın sonunda boşluk yazdırılır.

Ekran açıkken yazı görünmüyorsa ne kontrol edilir?

Arka ışık yanıyor ancak karakterler görünmüyorsa ilk olarak LCD modülündeki küçük kontrast potansiyometresini yavaşça çevir. Kontrast ayarı uygun değilse ekran çalıştığı hâlde yazılar seçilemez ve modül bozuk sanılabilir.

Kontrastı ayarladıktan sonra I2C adresini kontrol et. Kodda kullanılan adres, tarama sonucunda bulunan adresle aynı olmalıdır. 0x27 ve 0x3F sık kullanılan örneklerdir, ancak her modülde aynı adres bulunmayabilir.

SDA ve SCL kablolarının yer değiştirmediğinden emin ol. Bu iki hat ters bağlandığında Arduino, LCD modülüyle doğru iletişim kuramaz. GND bağlantısı da önemlidir; Arduino ile LCD modülünün ortak bir GND hattı bulunmalıdır. Kablo değişikliği yaparken enerjiyi kesmek, hem bağlantı hatalarını azaltır hem de devreyi korumaya yardımcı olur.

Ekran boyutunun kodda doğru tanımlandığını da incele. 16x2 LCD kullanıyorsan seçtiğin kütüphanenin kurucu fonksiyonunda sütun ve satır bilgilerinin 16 ve 2 olarak ayarlandığından emin ol. Farklı boyut bilgisi, yazının yanlış konumda görünmesine veya ekranın beklenmedik davranmasına yol açabilir.

Arduino IDE kütüphaneyi tanımıyorsa kütüphanenin kurulu ve seçilen paketle uyumlu olup olmadığını, ayrıca kodda kullanılan #include satırının bu paketin dosya adıyla eşleştiğini kontrol et.

Teşhis için şu sırayı izleyebilirsin:

  1. Enerjiyi kes.
  2. GND, VCC, SDA ve SCL kablolarını doğrula.
  3. Kontrast potansiyometresini yavaşça ayarla.
  4. I2C taraması yaparak modülün adresini bul.
  5. Bulduğun adresi LCD koduna aktar.
  6. Kullandığın kütüphanenin kurucu fonksiyonunu ve diğer API adlarını kontrol et.

Sık Sorulan Sorular

Arduino Uno'da I2C LCD için SDA ve SCL hangi pinlere bağlanır?

Arduino Uno'da SDA hattı A4 pinine, SCL hattı ise A5 pinine bağlanır. LCD modülünün VCC ve GND bağlantıları da Uno'nun uygun güç pinlerine yapılmalıdır. Uno dışındaki kartlarda SDA ve SCL pinleri farklı konumlarda bulunabilir.

I2C LCD adresi 0x27 veya 0x3F değilse ne yapılır?

LCD adresi bu iki yaygın örnekten farklıysa I2C tarayıcı kodunun gösterdiği adresi LCD kodunda kullanmalısın. Modülün adresi, üzerindeki I2C dönüştürücü karta göre değişebilir.

LCD'nin arka ışığı yanıyor ama yazılar görünmüyorsa sorun nasıl bulunur?

Önce kontrast potansiyometresini yavaşça ayarla, ardından adresi, SDA ve SCL bağlantılarını, ortak GND hattını ve ekran boyutu tanımını kontrol et. Bu adımlar sorunun güç bağlantısından mı, iletişimden mi yoksa görüntü ayarından mı kaynaklandığını ayırmaya yardımcı olur.

Arduino IDE LCD kütüphanesini tanımıyorsa hangi kontroller yapılmalıdır?

Kütüphanenin Arduino IDE'ye kurulu olduğunu, kodda doğru paket için uygun #include satırının kullanıldığını ve kurucu fonksiyonla diğer API adlarının seçilen kütüphaneye ait olduğunu kontrol et.

I2C LCD sorunlarını çözerken bağlantıları, adresi, kontrastı ve kütüphane kullanımını aynı sırayla incelemek, rastgele değişiklik yapmadan ilerlemeni sağlar.

Bu içerik aradığın cevabı verdi mi?
Yanıtın, hangi yazıları geliştirmemiz gerektiğini anlamamıza yardımcı olur.
Bu içeriğin üretilmesinde yapay zeka araçlarından destek alınmıştır.

Bu konudan sonra ne okuyabilirsin?

Tüm yazılar

İlgili Eğitimler

Berk Keskin, yazılım geliştirici ve eğitmen
Yazar

Berk Keskin Kimdir?

Yazılıma 12 yaşında başladı; İzmir Ekonomi Üniversitesi'ni bölüm birincisi ve yüksek şeref öğrencisi olarak tamamladı. Bugün yalnızca eğitim vermekle kalmıyor, sektörde aktif olarak yazılım projeleri geliştiriyor ve gerçek dünya deneyimini birebir derslerine taşıyor. Ezberden uzak, mühendislik zihniyetini merkeze alan sürdürülebilir öğrenme sistemleri tasarlayarak sorgulayan, üreten ve problem çözebilen yeni nesil yazılımcılar yetiştiriyor.

Sektörel Deneyim & Projeler

  • Ticarify Entegrasyon Yazılım logosu CEO Ticarify Entegrasyon YazılımPazaryerleri ve e-ticaret sitelerine otomatik e-fatura kesimi, sipariş ve kargo takibi hizmetleri sunan e-Dönüşüm platformunun API mimarisini ve yazılım ekibini yönetmektedir.
  • Benim Düğünüm logosu CEO Benim DüğünümDijital etkinlik ve anı paylaşım platformu.
  • Siberdizayn logosu Yazılım Ekibi Lideri SiberdizaynYüksek anlık oyuncu trafiğine sahip oyun kontrol panelleri ve sunucu altyapıları geliştiren yazılım ekibine liderlik etmektedir.
  • MEDYOGRAFYA 360° Dijital Çözümler logosu Dijital Strateji Lideri MEDYOGRAFYA 360° Dijital ÇözümlerŞirketlerin dijital çözümlerde uzun vadede nasıl ilerlemesi gerektiği ve dijital dönüşüm süreçlerinin yönetilmesine destek olmaktadır.
  • İzmir Ekonomi Üniversitesi logosu Danışma Kurulu Üyesi İzmir Ekonomi ÜniversitesiMezun olduğu üniversitesinde, Bilgisayar Programcılığı bölümünün akademik müfredatını güncel sektör ihtiyaçlarına göre şekillendirmek adına Danışma Kurulu'nda görev almaktadır.
WhatsApp Hemen Ara