5 Aralık 2020

Arduino İle I2C Modülü Kullanımı

ile Site Yöneticisi

Merhaba Arkadaşlar. Bu yazıda sizlere 16×2 LCD ekrandan çıkan yaklaşık 10-12 kabloyu aslında 4 basit kabloya indirecek bir devre kartından bahsetmek istiyorum. Bu devrenin adı i2c (i kare c).

I2C Ne İşe Yarar?

Aslında bu sorunun cevabı basit. LCD ekranımız için gerekli olan 16 adet çıkışı kendi üzerindeki kontrol entegresi ve devresi ile sadece 4 adete indirerek, gelen sinyali kendisi yorumlar ve yine 16 pin ile haberleşecek şekilde LCD ekranımıza gönderir.

I2C Kartı Görseli

İşte aslında bu kadar basit bir kart. Ancak elbette içeriği o kadar da basit olmasa gerek. Peki bu I2C kartı nasıl bağlanıyor? Nasıl veri gönderiliyor?

İsterseniz bu sorunun cevabına örnek bir bağlantı şeması ve devamında oraya yazı göndereceğimiz bir ekran ile yanıt veriyor olalım.

Arduino – I2C Bağlantı Şeması

Gördüğünüz üzere pin bağlantılarımız görseldeki gibi;

  • SCL => Analog 4 Pinine (A4)
  • SDA => Analog 5 Pinine (A5)
  • VCC => +5V Pinine
  • GND => GND Pinine

Bu şekilde bağlantılarımızı yaptıktan sonra gelelim kodumuza ve ekrana iki satır olarak yazdıracağımız “Merhaba Dunya” koduna. Bir kodu ilk defa çalıştırıyorsak “Merhaba Dünya” adettendir bilen bilir. 🙂

Arduino – I2C Ekranına Yazı Yazdırma Kodları

Öncelikle her zaman olduğu gibi kütüphanelerimizi ekleyerek başlayalım. Burada “FaBoLCD_PCF8574” kütüphanesini kullanarak I2C’nin ekrana yazı yazdırmasını sağlıyor olacağız. Öncelikle Kütüphanemizi tanımlıyoruz. (Kütüphaneyi yazının en sonundaki linkten indirebilirsiniz.)

#include <virtuabotixRTC.h>

Şimdi de gelelim değişkenlerimizi tanımlamaya.

FaBoLCD_PCF8574 lcd;

Evet işlem bu kadar basit aslında. LCD değişkenimizi tanımladık ve şimdi sıra setup fonksiyonumuzda. Burada da aslında tek satırda I2C ekranımızın ölçülerini veriyor olacağız.

void setup(void) {
  lcd.begin(16, 2);
}

Şimdi de sıra geldi son loop() fonksiyonumuzda işlemlerimizi yapmaya ve tabii ki sonlandırmaya.

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

  lcd.setCursor(1, 0);
  lcd.print("Dunya");

  delay(5000); //Burada 5 saniye bekliyoruz ki ekran sürekli pır pır etmesin diye...
}

İşte işlemimiz bu kadar basit. Zaten I2C’nin asıl kullanıdığı port olan A4 ve A5 portu kendi kütüphanesinde kayıtlı olduğundan ekstra pinleri göstermemize gerek kalmadı.

İşte bu şekilde projemize enerji verip yüklemeyi tamamladıktan sonra ekranda yazının belirdiğiniz görüyor olacaksınız.

Arduino I2C Örnek Kullanımı Kodları – Tamamı

#include <virtuabotixRTC.h>

FaBoLCD_PCF8574 lcd;

void setup(void) {
  lcd.begin(16, 2);
}

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

  lcd.setCursor(1, 0);
  lcd.print("Dunya");

  delay(5000); //Burada 5 saniye bekliyoruz ki ekran sürekli pır pır etmesin diye...
}

FaBo_212_LCD_PCF8574 Kütüphanesini indirmek için tıklayın.