Arkadaşlar merhaba, bu yazımızda 16×2 LCD Ekran ve I2C Modülü kullanımı, kütüphane kurulumu ve örnek uygulamalarından bahsedeceğiz.

[embedyt] https://www.youtube.com/watch?v=U8F2GTGwHxg[/embedyt]

LCD Ekran Nedir?

LCD (Liquid Crystal Display), sıvı kristal ekran elektrikle kutuplanan sıvının ışığı tek fazlı geçirmesi ve önüne eklenen bir kutuplanma filtresi ile gözle görülebilmesi ilkesine dayanan bir görüntü teknolojisidir. LCD ekranlar düşük enerji tüketimleri ve küçük boyutları sayesinde eski tüplü ekranların yerini almıştır. LCD ekranların keşfinden sonra ekran teknolojisinde bir çağ açılmıştır.

I2C Modülü Faydaları

LCD Ekranların arduino vb. kartlarla bağlantılarını yapmak için çok fazla kabloya ve pine ihtiyaç duyulmakta. Bu modül sayesinde bu ihtiyaç 4 pin ile çözülmekte.Ayrıca modül üzerinde bulunan ekran parlaklık ayarı ve kontrast ayarı sayesinde ekranınızın ayarlarını kontrol etmek için fazladan bir devre yapmanıza gerek kalmaz.

Malzemeler

I2C Modül Bağlantı

sda scl baglanti
I2C Modülünün Arduino Modelleri ile Bağlantıları

I2C Modülü üzerinde 4 adet pin bulunmakta.

  • GND = Arduino GND pinine
  • VCC = Arduino 5V
  • SDA = Klon Arduino SDA Pinine ( Orjinal Arduino A4)
  • SCL = Klon Arduino SCL Pinine (Orjinal Arduino A5)

Arduino ile I2C Modülü sayesinde ekran arasındaki bağlantıları bu şekilde gerçekleştirdikten sonra artık kodlama kısmına geçilebilir.

Öncelikle arduino için LCD Ekran kütüphanesini indirmemiz gerekmekte.( Turuncu yazıya tıklayarak indirebilirsiniz.)

Kütüphaneyi indirdikten sonra IDE programını açıyoruz ve aşağıdaki adımları takip ederek kütüphane kurulumunu yapıyoruz.

Taslak > library ekle(kütüphane ekle) > .ZIP Kitaplığı ekle (İndirdiğiniz zip dosyasını seçiyorsunuz)

Kütüphane kurulumu başarıyla gerçekleşmiş oluyor. Artık uygulamalara geçebilirsiniz.

16×2 Ekran Uygulamaları

1) Bu uygulamada ekranın 2 satırına da tek bir yazı yazdırılacaktır.

#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); // Bu kodu kullanırken ekranda yazı çıkmaz ise 0x27 yerine 0x3f yazınız !!
void setup() {
lcd.begin();
}
void loop() {
lcd.setCursor(0,0); // İlk satırın başlangıç noktası
lcd.print("Robolink");
lcd.setCursor(0,1); // İkinci satırın başlangıç noktası
lcd.print("Abone Ol");
delay(2000);
lcd.clear();
}

2) Bu uygulamada ekrana iki farklı yazı yazılacak ve bu iki yazı arasında ekran ışığı kapatılıp açılacaktır.

#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); // Bu kodu kullanırken ekranda yazı çıkmaz ise 0x27 yerine 0x3f yazınız !!
void setup() {
lcd.begin();
}
void loop() {
lcd.setCursor(0,0); // İlk satırın başlangıç noktası
lcd.print("Robolink");
lcd.setCursor(0,1);
lcd.print("Teknoloji"); // İkinci satırın başlangıç noktası
delay(2000);
//ikinci yazı
lcd.clear();
lcd.noBacklight(); // LCD Ekran ışığını kapatır
delay(2000);
lcd.backlight(); // LCD Ekran ışığını açar
lcd.setCursor(0,0); // İlk satırın başlangıç noktası
lcd.print("Begen");
lcd.setCursor(0,1); // İkinci satırın başlangıç noktası
lcd.print("Abone Ol");
delay(2000);
lcd.clear();
}

3) Bu uygulamada ilk satır sabit dururken ikinci satırın kayan yazı olması sağlanacaktır.

#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); // Bu kodu kullanırken ekranda yazı çıkmaz ise 0x27 yerine 0x3f yazınız !!
void setup() {
lcd.begin();
}
void loop(){
int i;
lcd.setCursor(3,0); // İlk satırın başlangıç noktası
lcd.print("ROBOLINK");
for(i=0; i<17; i++)
{
lcd.setCursor(i,1); // İkinci satırın başlangıç noktası, for döngüsü sayesinde bu sütun sürekli kayacaktır
lcd.print("TEKNOLOJI");
delay(300);
lcd.setCursor(i,1);
lcd.print(" ");
}
}

Uygulamaların detayına yazının üstündeki videodan da ulaşabilirsiniz. Merak ettiğiniz veya aklınıza takılan soruları mutlaka yorum olarak yazın. İyi çalışmalar.

24 YORUMLAR

  1. BOYLE BİR DİZN YOK DİYOR Arduino:1.8.16 (Windows 7), Kart:”Arduino Uno”

    sketch_nov29b:1:10: fatal error: LiquidCrystal_I2C.h: No such file or directory

    #include

    ^~~~~~~~~~~~~~~~~~~~~

    compilation terminated.

    exit status 1

    LiquidCrystal_I2C.h: No such file or directory

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.
    neden olabilr bulamadım

    • Merhaba,
      Doğru kütüphaneyi kurduğunuza emin misiniz?
      “LiquidCrystal_I2C.h: No such file or directory” hatası doğru kütüphaneyi kurmadığınızdan veya kütüphaneyi kurmayı unuttuğunuzdan kaynaklanıyor olabilir. Kütüphaneyi kontrol edip dönüş yaparsanız seviniriz 🙂

  2. Ekranın az ışık vermesinin temel sebebi led K ucunun 5v a bağlanmamış olmasıdır
    The main reason why the screen gives little light is that the led K end is not connected to 5v.

  3. ardunio mega 2560 eğitim setini sizden aldım fakatekran hersey normal olmasına rahmen boş. ardunio üzerinde kırmızı ışıklar sürekli yanıyor. yeşile dönmüyor neden

  4. Arduino:1.6.5 (Windows 8.1), Kart:”Arduino/Genuino Uno”

    lcd.ino:1:31: fatal error: LiquidCrystal_I2C.h: No such file or directory
    compilation terminated.
    Derleme sırasında hata oluştu.

    bu error çıkıyo napmam lazım

  5. olmuyor ben bir proje yapıyorum kodlar şunlar ve lcd de yazı yok
    #include
    #include
    Servo motor;
    int derece;
    int topraknem = analogRead(A0);
    int snem = digitalRead(8);
    LiquidCrystal_I2C lcd(0x3f,16,4);
    int yagmur = analogRead(A1);
    int ldr = digitalRead(12);
    void setup() {
    Serial.begin(9600);
    Serial.print(“Topraktaki Nem Seviyesi”);
    Serial.println(topraknem);
    Serial.begin(112500);
    Serial.print(“Sicaklik Nem Seviyesi”);
    Serial.println(snem);
    Serial.begin(4800);
    Serial.print(“Su Seviyesi”);
    Serial.println(yagmur);
    Serial.begin(2400);
    Serial.print(“Işik seviyesi”);
    Serial.println(ldr);
    Serial.begin(1200);
    pinMode(topraknem,INPUT);
    pinMode(yagmur,INPUT);
    pinMode(ldr,INPUT);
    }
    void loop() {
    derece = 180;
    lcd.backlight();
    lcd.setCursor(0,0);
    lcd.print(“Toprak nem seviyesi”);
    lcd.setCursor(0,1);
    lcd.print(topraknem);
    lcd.noBacklight();
    delay(2000); lcd.backlight();
    lcd.setCursor(0,0);
    lcd.print(“Sıcaklık ve Nem seviyesi”);
    lcd.setCursor(0,1);
    lcd.print(snem);
    lcd.noBacklight();
    delay(2000);
    lcd.backlight();
    lcd.setCursor(0,0);
    lcd.print(“Su seviyesi”);
    lcd.setCursor(0,1);
    lcd.print(yagmur);
    lcd.noBacklight();
    delay(2000);
    lcd.backlight();
    lcd.setCursor(0,0);
    lcd.print(“Işık seviyesi”);
    lcd.setCursor(0,1);
    lcd.print(ldr);
    lcd.noBacklight();
    delay(2000);
    motor.write(derece);
    }

  6. böyle bir hata çıkıyor ne yapmalıyım

    Sketch uses 3278 bytes (10%) of program storage space. Maximum is 32256 bytes.
    Global variables use 273 bytes (13%) of dynamic memory, leaving 1775 bytes for local variables. Maximum is 2048 bytes.
    Failed uploading: no upload port provided

  7. Sketch uses 3382 bytes (10%) of program storage space. Maximum is 32256 bytes.
    Global variables use 289 bytes (14%) of dynamic memory, leaving 1759 bytes for local variables. Maximum is 2048 bytes.
    Failed uploading: no upload port provided
    ,

    bu hata neyin hatası ve herşeyi harfiyen yaptım

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz