2 Eylül 2026 Çarşamba

Serial Peripheral Interface (SPI), mikrodenetleyiciler tarafından kısa mesafelerde bir veya daha fazla çevresel aygıtla hızlı bir şekilde iletişim kurmak için kullanılan, senkronize bir seri veri iletişim protokolüdür. Motorola tarafından geliştirilmiştir. İki mikrodenetleyici arasındaki iletişim için de kullanılır.

SPI full dublex olarak çalışan bir haberleşme tekniğidir. Buradaki Full dublex’ in anlamı veri alma ve gönderme işlemini eş zamanlı olarak gerçekleştirebilmesidir. SPI protokolünde de I2C'de olduğu gibi bir adet Master cihaz bulunur. Bu cihaz hatta bağlı slave adı verilen çevresel cihazları kontrol eder. İletişim Master ve slave cihazlar arasında gerçekleşir. Master cihaz iletişim kurmak istediği cihazı seçer ve o cihazla iletişime geçer.

SPI, birçok farklı cihaz tarafından kullanılan yaygın bir iletişim protokolüdür. Örneğin,  SD kart okuyucu modülleri, RFID kart okuyucu modülleri ve 2,4 GHz kablosuz verici/alıcılar,  mikrodenetleyicilerle iletişim kurmak için SPI kullanır.

SPI'nin en basit yapılandırması tek bir master, tek bir slave sistemidir ancak; bir master birden fazla slave'i kontrol edebilir.







SPI'nin benzersiz faydalarından biri, verilerin kesintisiz olarak aktarılabilmesidir. Sürekli bir akışta herhangi bir sayıda bit gönderilebilir veya alınabilir. I2C ve UART’da ise veriler, belirli sayıda bit ile sınırlı paketler halinde gönderilir. Başlatma ve durdurma koşulları her paketin başlangıcını ve sonunu tanımlar, böylece veriler iletim sırasında kesilir.

SPI, I2C gibi iletişim tekniklerine göre daha hızlıdır. 2 den fazla cihaz için bile olsa adresleme gibi işlemler gerektirmez(I2C’ den ayıran özellik). Aynı kablo üzerinden farklı cihazlara farklı verileri aktarabilir (RS-232 den ayıran özellik).



Pin Yapısı ve Veri Hatları:




MISO (Master In Slave Out): Çevresel cihazlardan (slave) yollanan verilerin master cihaza aktarıldığı hattır.

MOSI (Master Out Slave In): Master cihazdan yollanan verilerin çevresel cihazlara (slave)aktarıldığı hattır.

SCK (Serial Clock): SPI haberleşmesinde senkronu sağlayan saat sinyalinin bulunduğu hattır. Saat sinyali master cihaz tarafından üretilir.

SS/CS (Slave Select/Chip Select): Master'ın hangi slave'e veri göndereceğini seçmesi için kullanılan hattır. MISO ve MOSI hatlarından da anlaşıldığı gibi SPI protokolünde I2C'den farklı olarak veri hatları tek yönlüdür. Ayrıca çevresel cihazların (slave) adreslerinin olmasına gerek yoktur. Her çevresel cihazın seçim ayağı bulunur. Bu ayağa, SS (Slave Select) denir. Bu hattın sayısı kullanılan çevresel cihazların sayısı kadardır. Her cihaz için master cihazından ayrı SS hattı çıkar. Burada dikkat edilmesi gereken donanımda SS pinin üzeri çizgi olmasıdır. Bu çizgi slave seçimi için pinin lojik - 0′ a çekilmesi gerektiğini gösterir. Bir cihazın Slave Select pini LOW olduğunda, master ile iletişim kurar. HIGH olduğunda, master’ı görmezden gelir. Her seferinde sadece bir SS/CS LOW olabilir. 

Master cihazda tek SPI donanımı olduğunu farz edelim. Bu durumda master cihaz tek SS pinine sahip demektir. Ancak birden fazla cihaz ile iletişime geçmemiz gerektiğinde kendimiz SS pinleri belirlemeli ve onları Slave cihazların SPI donanımında bulunan SS pinlerine bağlamamız gerekir. Bu işlem için denetleyicimizin herhangi dijital pinlerini çıkış olarak tanımlayıp, lojik durumunu veri aktarmak istediğimiz cihaz için değiştirmemiz yeterlidir.


SPI Veri İletişim Protokolü Nasıl Gerçekleşir?

SPI standartları gevşektir ve her cihaz bunu biraz farklı şekilde uygular.  Bu, kodu yazarken cihazın veri sayfasına dikkat edilmesi gerektiği anlamına gelir. SPI’da aşağıdaki ayarlamalar yapılabilir:

  • Bitlerin saat döngüsünün yükselen veya alçalan kenarında çıkışa verilmesi.

  • Veri göndermenin ve almanın saat döngüsünün ilk kenarında veya ikinci kenarında gerçekleşmesi.

  • SPI hızı.

  • Verilerin önce Most Significant Bit (MSB)’den başlayıp Least Significant Bit (LSB)’de bitecek şeklinde mi gönderileceği yada tam tersi şeklinde mi gönderileceği. Çoğu SPI çipi verileri MSB’den başlayıp LSB’de bitecek şekilde gönderir.


Saat sinyali, veri bitlerini senkronize eder. Her saat döngüsünde bir bit veri aktarılır. Bu nedenle veri aktarım hızı saat sinyalinin frekansı tarafından belirlenir. SPI iletişimi her zaman master tarafından başlatılır. Çünkü master, saat sinyalini yapılandırır ve üretir. Master, MOSI hattı üzerinden seri olarak verileri bit bit slave'e gönderir. Slave, master'dan gönderilen verileri MOSI pininden alır. Master'dan slave'e gönderilen veriler genellikle en anlamlı bitten(MSB) başlayıp en az anlamlı bitte(LSB) bitecek şekilde gönderilir. Slave ayrıca seri olarak MISO hattı üzerinden ana bilgisayara veri gönderebilir. Slave'den ana bilgisayara gönderilen veri genellikle en az anlamlı bitten(LSB) başlayıp en anlamlı bitte(MSB) bitecek şeklinde gönderilir. SPI standartlaşmadığından verilerin MSB-LSB durumunda farklılıklarla karşılaşmak mümkündür. 

SPI tam çift yönlü bir iletişimdir. Hem master hem de slave sırasıyla MOSI ve MISO hatları üzerinden aynı anda veri gönderebilir. SPI iletişimi sırasında veriler aynı anda iletilir(seri olarak MOSI veri yoluna kaydırılır) ve aynı anda alınır(veri yolundaki veriler MISO örneklenir). Saat sinyali verilerin iletilmesini ve alınmasını senkronize eder. SPI ara yüzü, kullanıcıya verileri göndermek veya almak için saatin yükselen veya alçalan kenarını seçme esnekliği sağlar.


Saat Polaritesi ve Saat Fazı

SPI iletişimi, cihazlar arasındaki veri gönderme/alma biçimini ayarlamak için iki parametreye dayanır: Saat polaritesi (CPOL) ve saat fazı (CPHA).

CPOL: Cihazlar arasında veri aktarımı olmadığında saat sinyalinin boşta kalma durumunu tanımlar. SPI iletişiminde, saatin boşta olma durumu; CPOL ayarına bağlı olarak düşük voltaj seviyesinde ya da yüksel voltaj seviyesinde olabilir. 

CPOL = 0 ise; saat düşük seviyede boştadır.

CPOL = 1 ise; saat yüksek seviyede boştadır.

Bu boşta kalma durumları, SPI aygıtları arasındaki iletişim zamanlaması için önemlidir. Aygıtlar, uygun senkronizasyon ve veri aktarım güvenilirliğini sağlamak için CPOL ayarı konusunda anlaşmalıdır.


CPHA: Bu ayar verilerin saat sinyalinin kenarlarına göre ne zaman alınacağını ve gönderileceğini belirler.

CPHA = 0 ise; veriler yükselen kenarda alınır, düşen kenarda gönderilir.

CPHA = 1 ise; veriler düşen kenarda alınır, yükselen kenarda gönderilir.

SPI Modu

CPOL

CPHA

Saat Boştayken Mantık Durumu

Alma/Gönderme Saat Fazı

0

0

0

Düşük voltaj

Yükselen kenarda alma, düşen kenarda gönderme

1

0

1

Düşük voltaj

Düşen kenarda alma, yükselen kenarda gönderme

2

1

0

Yüksek voltaj

Düşen kenarda alma, yükselen kenarda gönderme

3

1

1

Yüksek voltaj

Yükselen kenarda alma, düşen kenarda gönderme


Aşağıdaki grafiklerde yukarıdaki tabloya göre veri iletim şekilleri yer almaktadır. İletimin başlangıcı ve sonu noktalı yeşil çizgiyle, veri alma kenarı turuncuyla ve veri gönderme kenarı maviyle gösterilmiştir. 

NOT: Lütfen bu şekillerin yalnızca açıklama amaçlı olduğunu unutmayın. Başarılı SPI iletişimleri için, kullanıcılar ürün veri sayfasına başvurmalı ve parçanın zamanlama özelliklerinin karşılandığından emin olmalıdır.


SPI Mod 0








SPI Mod 1








SPI Mod 2



 





SPI Mod 3







İletişim Adımları

  1. Master saat sinyalini çıkışa verir:






  1. Master, SS/CS pinini düşük voltaj durumuna geçirir ve bu da slave'i aktifleştirir:






  1. Master, verileri MOSI hattı boyunca slave birer bit halinde gönderir. Slave, bitler geldikçe okur.







  1. Slave cihazın Master’a bir cevap vermesi gerekiyorsa, slave, MISO hattından verileri birer bit halinde Master’a gönderir.







Master-Slave Bağlantı Türleri

  1. Master'ın birden fazla slave seçme pini varsa:






  1. Master’ın sadece bir adet slave seçme pini varsa Daisy-Chain(papatya zinciri) yöntemi kullanılır:






Daisy Chain konfigürasyonunda, tüm slave’ler ortak bir slave-select hattını paylaşırlar. Veriler master’dan ilk slave’e, sonra da ilk slave’den ikincisine kaydırılarak ilerlemektedir. Bu yöntemde verileri iletmek için gereken saat döngüsü sayısı Daisy Chain zincirindeki slave sayısıyla orantılıdır. Normal SPI modunda yalnızca 8 saat darbesi gerekirken, 8 bitlik bir sistemde, verilerin 3. Slave’de kullanılabilir olması için 24 saat darbesi gerekir.


SPI'nin Avantajları ve Dezavantajları

SPI kullanmanın bazı avantajları ve dezavantajları vardır ve farklı iletişim protokolleri arasında seçim yapmanız gerektiğinde, projenizin gereksinimlerine göre SPI'yi ne zaman kullanacağınızı bilmelisiniz:

Avantajları

  • Başlatma ve durdurma bitleri olmadığından, veriler kesintisiz olarak sürekli aktarılabilir.

  • I2C gibi karmaşık bir slave adresleme sistemi yoktur.

  • I2C'den daha yüksek veri aktarım hızı (neredeyse iki kat daha hızlı) vardır.

  • MISO ve MOSI hatları olduğundan veriler aynı anda gönderilebilir ve alınabilir.

Dezavantajları

  • Dört kablo kullanır. (I2C ve UART'lar iki kablo kullanır)

  • Verilerin başarıyla alındığına dair bir onay biti yoktur. (I2C'de bu var)

  • UART'daki parite biti gibi bir hata denetimi biçimi yoktur.

  • Sadece tek bir master cihaza izin verir. Çoklu master’ı desteklemez.


 


PCF8574 entegresi 12C protokolü için geliştirilmiş olup, yani iki hat aracılığı ile(SDA ve SCL) aldığı seri veriyi paralele dönüştürerek çıkış portlarına(P0-P7) aktarır. Aynı şekilde paralel portlardan aldığı veriyi de, 12C formatına çevirerek SCL ve SDA hatlarına aktarır.




PCF8574'den Okuma Kod Örneği


#include<Wire.h>
int veri;
void setup()
{
  pinMode(7, OUTPUT);
  Wire.begin();
}

void loop()
{
  Wire.requestFrom(0x20, 1);
  while (Wire.available() > 0)
  {
    veri = Wire.read();
    if (veri == 15)
    {
      digitalWrite(7, HIGH);
    }
    else
    {
      digitalWrite(7, LOW);
    }
  }
  delay(500);
}



Devre Şeması




PCF8574'den Yazma Kod Örneği

#include<Wire.h>
int veri;
void setup() 
{
  Wire.begin();
}

void loop() 
{
  Wire.beginTransmission(0x20);
  Wire.write(31);
  Wire.endTransmission();
  delay(500);
}



Devre Şeması



____________________________________________________________________________________________________________________________________________________________

//________________MASTER________________
#include<Wire.h>
char gelen_karakter;
void setup()
{
  pinMode(12, OUTPUT);
  pinMode(11, OUTPUT);
  Wire.begin();
}

void loop()
{
  //adresi 14 olan slave cihaza veri gönderme
  Wire.beginTransmission(14);
  Wire.write('M');
  Wire.endTransmission();
  delay(500);

  //adresi 14 olan slave cihazdan veri isteğinde bulunma
  Wire.requestFrom(14, 1);
  while (Wire.available() > 0)
  {
    gelen_karakter = Wire.read();
    if (gelen_karakter == 'B')
    {
      digitalWrite(12, HIGH);
    }
    else
    {
      digitalWrite(11, HIGH);
    }
  }
  delay(500);
}


//________________SLAVE________________
#include<Wire.h>
char gelen_veri;
void setup()
{
  pinMode(6, OUTPUT); //veri geldi LED'i
  pinMode(7, OUTPUT); //istek geldi LED'i
  Wire.begin(14);
  Wire.onRequest(istek_geldiginde);
  Wire.onReceive(veri_geldiginde);
}

void loop()
{
  delay(500);
}

void istek_geldiginde()
{
  Wire.write('B');
  digitalWrite(7, HIGH);
}

void veri_geldiginde(int x)
{
  while (Wire.available() > 0)
  {
    gelen_veri = Wire.read();
    if (gelen_veri == 'M')
    {
      digitalWrite(6, HIGH);
    }
    else
    {
      digitalWrite(6, LOW);
    }
  }
}



Devre Şeması




________________________________________________________________________________________________________________________________________________________________

//________________MASTER________________
//AÇIKLAMA: 
//NOT: Simülasyon Tinkerkad'de yapıldı. Çünkü Proteus'ta Slave cihazdan Master cihaza
//veri gönderimi hatalı oluyor.
//Uygulamada Master cihaz Wire.requestFrom(); komutu ile slave cihazdan  veri 
//istediğinde bulundu. Slave cihaz Wire.write(); komutu ile Master cihaza veri  
//gönderdi. Slave cihazdan gelen veri şartlı ifadede yerine koyulup ilgili ledler yakıldı.
#include<Wire.h>
void setup()
{
  pinMode(12, OUTPUT);
  pinMode(11, OUTPUT);
  Wire.begin();
}

void loop()
{
  Wire.requestFrom(9, 1);
  while (Wire.available() > 0)
  {
    int gelen = Wire.read();
    if (gelen == 5)
    {
      digitalWrite(12, HIGH);
    }
    else
    {
      digitalWrite(11, HIGH);
    }
  }
  delay(1000);
}

 

//________________SLAVE________________
//AÇIKLAMA: 
//NOT: Simülasyon Tinkerkad'de yapıldı. Çünkü Proteus'ta Slave cihazdan Master cihaza
//veri gönderimi hatalı oluyor.
//Uygulamada Master cihaz Wire.requestFrom(); komutu ile slave cihazdan  veri 
//istediğinde bulundu. Slave cihaz Wire.write(); komutu ile Master cihaza veri  
//gönderdi. Slave cihazdan gelen veri şartlı ifadede yerine koyulup ilgili ledler yakıldı.
#include<Wire.h>
void setup()
{
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  Wire.begin(9);
  Wire.onRequest(istek_geldiginde);
}

void loop()
{
  delay(500);
  digitalWrite(7, LOW);
}

void istek_geldiginde()
{
  Wire.write(5);
  digitalWrite(7, HIGH);
  digitalWrite(6, HIGH);
}

 


Devre Şeması


____________________________________________________________________________________________________________________________________________________________

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ı




_______________________________________________________________________________________________________________






30 Ekim 2025 Perşembe

 



Arduino Uno kartında I2C haberleşme için kullanacağımız pinler A4 ve A5 pinleridir. A4->SDA, A5->SCL hattıdır. Atmega328 entegresinde ise I2C pinleri 27. ve 28. pindir. 27->SDA, 28->SCL hattıdır.

SDA ve SCL pinleri, kullanılan Arduino türüne göre değişiklik göstermektedir. Arduino türlerine göre SDA ve SCL pinleri aşağıdaki tabloda gösterilmiştir.


I2C haberleşmede Master ve slave cihazların aynı besleme hattına bağlanmasına gerek yoktur. Fakat iletişimin sağlanması için toprak hatlarının aynı olması gerekir.

Haberleşmenin tüm hat boyunca hatasız bir şekilde sağlanabilmesi için SDA ve SCL hatları, pull-up dirençlerle VCC hattına bağlanmalıdır.







Arduino I2C Seri Haberleşme Komutları

Arduino'nun I2C haberleşmesini yapabilmesi için kullanılması gereken komutlar vardır. Bu komutlar Arduino'nun "Wire.h" kütüphanesi içerisinde bulunmaktadır. Bu yüzden öncelikle bu kütüphaneyi projemize dâhil etmeliyiz. “Wire” kütüphanemizi kullanabilmek için öncelikle #include <Wire.h> komutu ile “wire” kütüphanemizi projemize dahil etmeliyiz.

 

1.  Wire.begin();

I2C haberleşmesini başlatan fonksiyondur. Wire.begin(); fonksiyonu setup() yapımız içerisinde yalnızca 1 kez çağrılır. Eğer fonksiyona herhangi bir parametre girilmemişse, cihazımız Master olarak çalışacak demektir. Eğer 0 ile 127 arasında bir değer girilmişse, cihazımız slave olarak çalışacak demektir ve bu değer slave cihazımızın kimliğini belirtecektir.

Wire.begin(); ……………master cihaz haberleşmesini başlatır.

Wire.begin(1); …………..slave cihaz haberleşmesini başlatır. Slave cihaz adresi = 1.

 

2.  Wire.available();

Fonksiyon hat üzerinden Arduino'ya ulaşmış veri paketlerinin sayısını döndürür. Okunmaya hazır ama okunmamış mevcut byte sayısını almak için kullanılır. Eğer fonksiyonun değeri 0'dan büyükse Arduino'ya gelen yeni veri paketi vardır. Herhangi bir parametre almaz, geriye tampon bellekteki okunmaya hazır byte sayısının integer türü değerini döndürür.

Byte_sayisi = Wire.available();


3.  Wire.beginTransmission(adres);

Master cihazın hat üzerinde bulunan slave cihazlardan hangisiyle haberleşmek istediğini belirler. Fonksiyon, parametre olarak haberleşmeye başlayacağı slave cihazın adresini alır.

adres: Veri gönderilecek slave cihazın adresi.

 

4.  Wire.endTransmission();

Wire.beginTransmission(); fonksiyonu ile başlatılan veri iletimini sonlandırmak için kullanılır. Herhangi bir parametre almaz ve geriye değer döndürmez.

 

5.  Wire.read();

Veri hattından gelen verinin okunmasını sağlar. Herhangi bir parametre almaz. Geriye alınan 1 byte değerindeki veriyi döndürür. Eğer bir byte değerinden fazla veri alınmış ise, bir döngü yardımı ile alınan veriler diziye aktarılabilir. Hem Master cihazda hem de Slave cihazda veri okumak için kullanılır.

Örneğin; I2C iletişimde Master Arduino cihazına slave bir cihazdan veri geldiğinde bu veri önce master Arduino cihazının buffer(tampon) ara belleğinde depolanır. Bu bellek 32 bayttır ve veri Wire.read() komutuyla bayt bayt okunarak herhangi bir değişkene atanır.

 

6.  Wire.write();

Kısaca veri yollamak için kullanılır. Master ve Slave cihaz için veri gönderme fonksiyonudur. Wire.write() fonksiyonu master cihazdan slave cihaza ya da slave cihazdan master cihaza veri göndermek için kullanılır. 1 byte değerindeki veri, string ya da byte dizisi gönderilebilir.

Wire.write(value);

Wire.write(string);

Wire.write(dizi, uzunluk);

value   : 1 byte değerindeki veri (byte)

string    : metin türünden karakter dizisi

dizi        : gönderilecek byte dizisi

uzunluk: gönderilecek byte dizisi uzunluğu


Örnek:



7.  Wire.requestFrom(adres, miktar, durak);

Master cihaz tarafından, slave cihazdan byte isteğinde bulunmak için kullanılmaktadır. Master tarafında kullanılan bu fonksiyon ile slave cihazdan veri istenir. Daha sonra bu baytları toplamak için “Available()” ve “read()” işlevleri kullanılabilir.

adres   : Veri istenecek slave cihazın adresini belirler (7 bitlik cihaz adresi).

miktar  : Slave cihazdan kaç byte'lık veri beklendiğini belirler. Talep edilen byte sayısıdır.

durak   : İstekten sonra veri yolunun durumunu belirler (boolean).

·         True ise istekten sonra veri yolu serbest bırakılarak stop komutu gönderilir,

·         False ise veri yolu açık tutularak master cihazın başka bir slave cihaza istekte bulunması engellenir.

Geriye byte cinsinden Slave cihazdan gönderilen bayte sayısını döndürür.

 

Örnek:

Wire.requestFrom(1,2);    // 1 numaralı slave cihaza 2 byte okuma isteği gönder.

 

8.  Wire.onRequest(istek_fonksiyonu);

Slave tarafından kullanılan bu fonksiyon, master cihazdan veri isteği geldiğinde slave cihazda çalıştırılacak fonksiyonu belirler.

istek_fonksiyonu: Master cihaz Slave cihazdan veri talep ettiğinde, slave cihazda çalışacak olan fonksiyon. Bu fonksiyonun parametre almasına gerek yoktur. Geriye değer döndürmez.

void istek_fonksiyonu ()

{

       komutlar…

}

 

9.  Wire.onReceive(veri_fonksiyonu);

Slave olarak tanımlanmış cihaza veri geldiğinde, çalışacak fonksiyonu belirleyen komuttur. Bu fonksiyonun parametre alması gerekmektedir.

veri_fonksiyonu: Master cihazdan veri geldiğinde slave cihazda çalışacak fonksiyon. Bu fonksiyon tanımlandığında aşağıdaki şekilde bir parametre almalıdır. Geriye değer döndürmez.

void veri_fonksiyonu (int x)

{

       komutlar…

}




_____________________________________________________________________________________________________________________________________________________


Arduino Eğitimi Konu - 7

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

Sensörler ve Aygıtların Arduino İle Kullanımı

Popular Posts

Yararlanılan Kaynaklar

İletişim

gokdag17@gmail.com