Robotik ve Kodlama

Arduino

I2C Fonksiyonları

Lisans: Creative Commons 26.11.2020 tarihinde güncellendi
Bakabileceğiniz Etiketler: Eğitmen: Geleceği Yazanlar Ekibi

I2C haberleşme protokolünün çalışma şeklini ve bağlantı hatlarını öğrendiğimize göre, Arduino'nun I2C haberleşmesini yapabilmesi için kullanmamız gereken fonksiyonları tanıyalım. Bu fonksiyonlar Arduino'nun "Wire.h" kütüphanesi içerisinde bulunmaktadır. Bu yüzden öncelikle bu kütüphaneyi projemize dâhil etmeliyiz.

  • 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.