1 Eylül 2026 Salı


//_________________MASTER CİHAZ_______________ //AÇIKLAMA //Bu programda 2 Arduino'nun I2C ile haberleşmesi sağlanmıştır. //Master cihaz tarafından gönderilen 'A' karakterinin //adresi 9 olan slave cihaz tarafından okunarak, veri doğruysa ledin yandığı, //veri yanlışsa ledin yanmadığı bir uygulama yapılmıştır. #include<Wire.h> void setup() {  Wire.begin(); //I2C haberleşmesi master olarak başlatıldı } void loop() {  Wire.beginTransmission(9);  //adresi 9 olan slave cihazla iletişim başlatıldı  Wire.write('A');            //'A' karakteri slave cihaza gönderildi.  Wire.endTransmission();     //slave cihaz ile iletişim sonlandırıldı  delay(1000); }


//_________________SLAVE CİHAZ_______________
//AÇIKLAMA
//Bu programda 2 Arduino'nun I2C ile haberleşmesi sağlanmıştır. 
//Master cihaz tarafından gönderilen 'A' karakterinin
//adresi 9 olan slave cihaz tarafından okunarak, veri doğruysa ledin yandığı,
//veri yanlışsa ledin yanmadığı bir uygulama yapılmıştır.
#include<Wire.h>
char veri;
void setup()
{
  pinMode(7, OUTPUT); //Arduino pin7   = ATMEGA328 PD7
  Wire.begin(9);  //I2C haberleşmesi, haberleşme adresi 9 olan bu slave cihaz için başlatıldı
  Wire.onReceive(gelen_veri); //slave olan bu cihaza veri geldiğinde çalışacak fonksiyon belirlendi
}

void loop()
{
  if (veri == 'A')
  {
    digitalWrite(7, HIGH);
  }
  else
  {
    digitalWrite(7, LOW);
  }
}

void gelen_veri(int x)
{
  veri = Wire.read(); //bu slave cihaza gelmiş olan veri okunarak 'veri' değişkenine atandı.
}
 



I2C Haberleşme Monitörü – Proteus





Bu programda 2 Arduino'nun I2C ile haberleşmesi sağlanmıştır.  Master cihaz tarafından gönderilen ‘A' karakterinin adresi 9 olan slave cihaz tarafından okunarak, veri doğruysa ledin yandığı, veri yanlışsa ledin yanmadığı bir uygulama yapılmıştır.

I2C monitöründe gördüğümüz veriler ve adresler hexedecimal türündedir. Gönderdiğimiz adres bilgisi decimal 9’dur. Yani 9 nolu slave cihaz ile haberleşeceğiz. Decimal 9 sayısının 7 bitlik karşılığı binary 0001001’dir. Fakat 1 adet yazma biti olan 0’ı da ekleyince 00010010 olur. Bunun da hexedecimal karşılığı 12’dir. Bu nedenle haberleşmedeki adres bilgisi 12 olarak gözükür.


Devre Şeması




_______________________________________________________________________________________________________________






0 comments:

Yorum Gönder

Arduino Eğitimi Konu - 7

Toplam Sayfa Görüntüleme Sayısı

Sensörlerin Arduino İle Kullanımı

Popular Posts

Yararlanılan Kaynaklar

İletişim

gokdag17@gmail.com