4 Eylül 2026 Cuma

Program Kodları
//__________________MASTER__________________
//SPI iletişim yöntemi ile master Arduino'dan Slave Arduino'ya
//veri gönderilir. 
#include<SPI.h>
void setup() 
{
  SPI.begin();    //SPI iletişim başlatıldı
  SPI.setClockDivider(SPI_CLOCK_DIV4);  //clock bölme 4 yapıldı.
}

void loop() 
{
  digitalWrite(SS,LOW);  //slave seçme biti LOW yapılarak slave cihaz ile iletişim başladı.
  SPI.transfer(78);      //slave cihaza veri gönderildi.
  delay(1000);
  SPI.transfer(70);
  delay(1000);
  digitalWrite(SS,HIGH); //slave seçme biti HIGH yapılarak slave cihaz ile iletişim kapatıldı.
}


//__________________SLAVE__________________
//SPI iletişim yöntemi ile master Arduino'dan Slave Arduino'ya
//veri gönderilir.SPI kütüphanesi, Arduino'nun her zaman master konumunda olacağı düşünülerek 
//hazırlandığı için Arduino'yu slave mode almak için kayıtçılarda bazı değişiklikler yapıldı.
#include<SPI.h>
int gelen;
void setup()
{
  pinMode(7, OUTPUT);
  pinMode(6, OUTPUT);
  SPCR = (1 << SPE) | (0 << MSTR); //SPE=1  ile SPI iletişim etkinleştirildi.
                                   //MSTR=0 ile Arduino slave moda alındı.
                                   
  SPI.attachInterrupt();           //SPI kesmesi aktif edildi. Kesmeyi aktif
                                   //etmek için SPCR kayıtçısnın 7. biti olan
                                   //SPIE=1 yapılarak da SPI kesmesi aktif edilebilir.
}

void loop()
{
  if (gelen == 78)
  {
    digitalWrite(7, HIGH);
    digitalWrite(6, LOW);
  }
  else
  {
    digitalWrite(7, LOW);
    digitalWrite(6, HIGH);
  }
}

//slave Arduino'ya veri geldiğinde çalışan kesme fonksiyonu
ISR(SPI_STC_vect)
{
  gelen = SPDR;   //slave cihaza gelen veri SPDR kayıtçısına kaydedilir. 
                  //Buradaki veri gelen değişkenine atandı.
}



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