i2C Çoklayıcı

İ2C Bağlantı Çoklayıcı

i2C Çoklayıcı

  • I2C (Inter-Integrated Circuit), seri haberleşme türlerinden senkron haberleşmeye bir örnektir.
  • I2C haberleşmesinde, haberleşmeyi kontrol eden master cihazı bulunur.
  • Her haberleşmede bir tane master bulunmalıdır.
  • Haberleşmenin sağlanabilmesi için haberleşme hattına en az bir adet slave (köle) cihaz bağlanmalıdır.
  • Genellikle kısa mesafeli ve düşük veri aktarım hızının yeterli olduğu yerlerde kullanılır.
  • Hatta bağlanan birden fazla slave cihazlardan hangisinin veri aktaracağına, master cihaz karar verir.
  • Böylece hat sayısında bir değişiklik olmadan birden fazla cihazla haberleşme sağlanır.

I2C Fonksiyonları

  • wire.begin(): I2C haberleşmesini başlatan fonksiyondur. Bu fonksiyon parametre olarak slave cihazın adresini alır. Eğer cihaz master olarak tanımlanacak ise bu fonksiyona herhangi bir parametre atanmaz. Örneğin haberleşme hattında ‘1’ adresine sahip slave bir Arduino tanımlanmak isteniyorsa, wire.begin(1); yazılır. Eğer bu Arduino haberleşme hattının master cihazı olarak tanımlanmak istenseydi fonksiyon, wire.begin(); olarak çağırılmalıydı.
  • wire.available(): Fonksiyon hat üzerinden Arduino’ya ulaşmış veri paketlerinin sayısını döndürür. Eğer fonksiyonun değeri 0’dan büyükse Arduino’ya gelen yeni veri paketi vardır.
  • wire.beginTransmission(SlaveAdresi): Master cihazın hat üzerinde bulunan slave cihazlardan hangisiyle haberleşmek istediğini belirler. Fonksiyon, parametre olarak haberleşmeye başlayacağı cihazın adresini alır.
  • wire.endTransmission(): Hat üzerindeki veri aktarımının sonlandığını belirtir.
  • wire.read(): Veri hattından gelen verinin okunmasını sağlar.
  • wire.write(): Fonksiyona yazılan parametreyi veri hattına aktarır. Kısaca veri yollamak için kullanılır.
  • wire.onReceive(GorevFonksiyonu): Slave olarak tanımlanmış cihaza veri geldiğinde, cihazın yapacağı işlemi belirleyen fonksiyondur. Fonksiyon parametre olarak veri geldiğinde, çağırılacak fonksiyonun ismini alır.
  • wire.requestFrom(): Master tarafında kullanılan bu fonksiyon ile slave cihazdan veri istenir. Fonksiyonun ilk parametresi, slave cihazın adresini belirler. İkinci parametre ise slave cihazdan kaç byte’lık veri beklendiğini belirler. Üçüncü ve son parametre ise hattın istekten sonraki durumunu belirler.
  • wire.onRequest(): Slave tarafında kullanılan bu fonksiyon, master cihazdan veri isteği geldiğinde çalıştırılacak fonksiyonu belirler. Bu fonksiyon parametre olarak çalıştırılacak fonksiyonun ismini alır.

TCA9548A I2C Multiplexer

i2C Çoklayıcı

  • TCA9548A modülü, aynı I2C adresine sahip 8 adet kartı aynı anda kullanmanıza olanak tanır.
  • Kullandığınız I2C sensor vb. gibi kartların I2C adresleri değiştirilebilir yapıda değil ve çoklu kullanıma ihtiyaç duyuyor iseniz bu kart tam size göre!
  • Kartın varsayılan I2C adresi 0x70’tir ve bu adrese yollayacağınız bir baytlık veri ile karta ait 8 bağlantıdan birini seçerek bu adrese bağlı olan I2C cihaz ile iletişim kurabilirsiniz.
  • Ayrıca bu kartın I2C adresi de 0x70 ile 0x77 arasında değiştirilebilir olduğundan, bu karttan 8 adedi aynı anda kullanarak 8×8=64 adet I2C cihaz kullanılabilir.
  • Kart, üzerinde bulunan lojik seviye dönüştürücüler sayesinde 3-5V lojik seviyeleriyle rahatlıkla kullanılabilir.

i2C Çoklayıcı

i2C Çoklayıcı

i2C Çoklayıcı

Rate this post