Genel

İki Arduino Arasında I2C Haberleşmesi

Merhabalar bu yazıda iki arduinodan birinin slave diğerinin master işlevi gördüğü bir I2C haberleşmesini kısaca anlatacağım. Öncelikle Schematiğimiz aşağıdaki gibidir.

ARDUINOI2C

İlk olarak Arduino IDE’sinde hazırlanmış master programına bakalım.

#include <Wire.h> 
/* ilk olarak Wire.h kütüphanesini dahil ettik.
Bu kütüphane sayesinde daha kolay I2C haberleşmesi kurabiliriz. */
int atilan=0;//karşı tarafa gönderilecek değişken
int hedef = 0X05;//slave durumundaki ATmega3282'in I2C adresidir.
void setup()

{
Wire.begin(); //I2C haberleşmesi için gerekli ayarları yapan fonksiyon


}
void loop()

{
  
atilan++;/karşıya gönderilen değer her döngüde bir arttırılıyor. 
Wire.beginTransmission( hedef ); /*hedef değişkeninin taşıdığı 
slave adresi için I2C haberleşmesi başlatılıyor.*/

Wire.write(atilan); //Slave adresine veri yazılır.

Wire.endTransmission(); //I2C haberleşmesi bitirilir.

delay(500);//yarım saniye bekle
if(atilan>5)// Eğer atılan değer 5'ten büyükse atilanı sıfır yap.
atilan=0;
}

Şimdide Slave konumundaki arduinoya atılacak programa bakalım .

#include <Wire.h>

int pin = 8;//Ledi yakacak pin
int alinan=0;//I2Chaberleşmesi ile karşıdan alınan değer
void setup() {
pinMode (pin, OUTPUT);//8. pin çıkış yapıldı.
Wire.begin(5); //slave adresi 5 yapıldı
Wire.onReceive(oku);/*Wire.onRecive I2C verisi ALINDIĞINDA oluşan
interruptta oku fonksiyonunu çalıştırır.*/
}

void oku(int sayi) {
alinan = Wire.read(); 
}
//Oku fonksiyonu wire.read ile karşıdan gelen veriyi OKUYUP 
alinan değişkenine atar.*/
void loop() {
if (alinan==4) {
digitalWrite(pin, HIGH);
delay(500);
}else{
digitalWrite(pin, LOW);
delay(500);
}
/*Eğer alınan değer 4 ise 8.pini high yap 500ms bekle,değilse 
low yap 500 ms bekle*/
}


1071009-dennis-ritchie-quote-the-only-way-to-learn-a-new-programming

İki Arduino Arasında I2C Haberleşmesi&rdquo için 1 yorum

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s

%d blogcu bunu beğendi: