//_________________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