Arduino LCD I2C Kullanımı

Giriş

Merhaba. Bu yazımda sizlere Arduino’da I2C protokolü kullanımı hakkında bilgiler vereceğim. (Güncellendi: 31 Ocak 2018)

[sam id=”1″ codes=”true”]

[sam id=”1″ codes=”true”]

I2C, bir haberleşme protokolüdür. Bunun ile iki aygıt birbiriyle haberleşebilir. Yani bu “iki aygıt” bir çift arduino veya arduino ve sensörler veya iki adet mikrodenetleyici olabilir 🙂 Bu protokol, SDA ve SCL hatlarını kullanarak data (veri) aktarımı yapar. (i2c protokolünü anlatan ayrıntılı bir yazı gelecek 🙂 )

Şimdi gelelim I2C’yi LCD ile kullanmak bize ne kazandırır. Bildiğimiz gibi karakter LCD’ler genelde 16 pin ile bağlantı sağlar. Biz bu 16 pinin en az 6’sını sadece data amaçlı mikrodenetleyiciye bağlamak zorundayız. Bazı projelerimizde mikrodenetleyicimizin port sayısı yetersiz kalabilmektedir. İşte sağ olsunlar bizi düşünmüşler demişler ki biz LCD ekranı toplam 4 kablo ile çalıştıralım. Bu kablolar şunlar: VCC, GND; SDA, SCL. Bu dört kabloyu bağlıyorsunuz, hazır. 🙂

Yani bu modülün görevini kısaca özetleyecek olursak i2c protokolünden gelen veriyi LCD ekranın anlayacağı dile çeviriyor diyebiliriz.

Bağlantılar:

Modülümüz bu. Gördüğünüz siyah eklenti LCD I2C dediğimiz modül.  İnternet’ten yaptığınız alışverişlerde büyük olasılıkla lehimsiz gelecektir. Onun için öncelikle benim yaptığım gibi lehimleyin modülünüzü. Aman pinlerin birbirine değmemesine dikkat edin elektrik vermeden önce. Çalışmaz veya bozulur 🙂 Daha sonra bağlantı kısmına geçiyoruz. Aşağıdaki tabloyu kullanarak bağlantılarınızı yapabilirsiniz.

 Modül
 Arduino
 VCC (Besleme Gerilimi)  Herhangi bir 5v çıkışı
 GND (TOPRAK)   GND (TOPRAK)
 SDA  SDA
 SCL  SCL

Kodlar:

Öncelikle şunu belirtmek istiyorum arkadaşlar. Ben burada kodu ekran alıntısı olarak atmıyorum. Fakat sizlerin de kodu kopyalayıp yapıştırdıktan sonra neyin ne olduğunu anlamanız için orasını burasını değiştirmeniz gerekiyor.  Başka türlü öğrenmeniz mümkün değil arkadaşlar. Unutmayın yazılım ezberle öğrenilmez.

Kütüphane dediğimiz şey önceden yazılmış kodlardır. Projeye bir kütüphane eklediğimizde birçok satır kod eklemiş oluruz aslında. Bu projede kullanacağımız kütüphaneyi  bu bağlantıdan indirebilirsiniz. https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads

#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); //  LCD I2C addresi
  void setup() // Yanlızca 1 kere çalışacak komutlar
   {
Serial.begin(9600);   // Seri port ekranı buandı.
lcd.begin(16,2);      // LCD Mizin 12 karakter 2 satır olduğunu belirttik.
lcd.backlight();      // Arka plan ışığını açtık
delay(250);           //250 ms bekledik
lcd.noBacklight();    //Arkaplan ışığını kapattık
delay(250);           //250 ms bekledik
lcd.backlight();      // Arkaplan ışığını açtık
lcd.setCursor(0,0);   //Kursör konumunu belirttik
lcd.print("Merhaba"); //Yazı yazdık
}
void loop(){
 //Döngü kullanmadık. Siz kullanabilirsiniz.
}

Anlamadığınız bir şey olması durumunda veya yeni içerik talepleriniz için lütfen yorumları kullanın 🙂 Bu yazım da bu kadar. Görüşmek üzere…

[sam id=”1″ codes=”true”]

[sam id=”1″ codes=”true”]

“Arduino LCD I2C Kullanımı” üzerine 6 yorum

  1. 16×2 değil de projede kendime özel custom bir monochrome lcd kullanmak istiyorum hani şu saatlerde falan kullanılanlardan. Bunu nasıl yaparız. Ya da kütüphanesi nasıl olur?

    1. Merhaba @Emrah. Kullanicaginiz LCD nasil bir sey? Mesela 2×16 degil de 4×20 gibi bir sey mi?

  2. maalesef kod çalışmıyor .LiquidCrystal_I2C lcd(0x27, 16,2); yazınca o hata gidiyor bu seferde void loopta bi hata veriyor. yardım eder misiniz. Sadece sizin verdiğiniz kod da yazdığım gibi tek değişiklik yaptım ama hala void loop ta hata devam ediyor.

    1. Merhaba. Acaba küçük bir hata yapmış olabilir misiniz? Loop’a herhangi bir şey eklemediğimiz için hatanın orda olmasının olasılığı daha düşük. Örneğin bir satırda noktalı virgül unuttuğunuzda hatayı bir alt satırda verebilir. Hata mesajını paylaşırsanız daha fazla yardımcı olabileceğimi düşünüyorum. İyi çalışmalar… 🙂

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.

%d blogcu bunu beğendi: