Templates by BIGtheme NET
Anasayfa / Teknoloji / Programlama dilleri / Arduino / İki arduino birbirine nasıl bağlanır ?

İki arduino birbirine nasıl bağlanır ?

Başlıktan da anlaşılacağı gibi iki adet arduinonun birbiri ile iletişim kurması nasıl sağlanır sorusuna cevap yazmaya çalışacağım. Arduinoların birbiriyle  haberleşmesini kablolu veya kablosuz ile bağlayarak iki şekilde sağlayabilirsiniz.

Kablosuz bağlantı için bluetooth modüllerden birisini(HC05 veya 06), ESP8266 wifi haberleşme modülü yada  radyo frekansı ile haberleşen nRF24L01 modüllerinden birisini kullanabilirsiniz. Daha önce Bluetooth modül kullanarak telefondan arduinoya bağlı olan lcdye mesaj yazma örneği ile ilgili bir makale yazmıştık. Bluetooth ile 16×2 LCD ye mesaj gönderme konusuna buradan ulaşabilirsiniz. nRF24l01 modülünün kullanımı ile ilgili kumanda devresi örneğine Servo motoru nasıl kumanda ederim isimli makalemizden ulaşabilirsiniz.



Kablolu bağlantı kurmak için ise TXD ve RXD pinlerini kullanabilirsiniz. Biz bu konumuzda kablolu olarak iki arduino birbiri ile nasıl iletişim kurabilir? sorusuna cevap vereceğiz.

Arduinolar normal standartlarda seri haberleşme yolu kullanırlar. Bu haberleşme için arduino üzerinde TX ve RX pinleri bulunur. Kaba tabirle TX pininden veri gönderilirken RX pininden de gelen veri okunur. Böylelikle diğer arduino veya modüller ile iletişim kurulabilir.

Arduinoları birbirine TX ve RX pinleri ile bağlayabilirsiniz. Bağlantıyı yaparken dikkat etmeniz gereken TX pinini RX pinine, RX pinini ise TX pinine takmanız gerekmektedir. Sonuçta bir arduinonun TX ile gönderdiği veriyi karşı taraftaki arduinonun RX pini okuyabilir.

Aşağıdaki örnek bağlantı şemamız da  bir arduinodan düğmeye basıldığında diğer arduinoya bağlı olan led yanacaktır. Bende bir arduino uno ve bir arduino pro mini olduğu için ikisini kullandım. Siz iki adet uno yada farklı bir model kullanabilirsiniz, farketmez. Arduno pro mininin bilgisayara nasıl bağlandığını bilmiyorsanız daha önce yazmış olduğumuz Arduino Pro mini nasıl bağlanır isimli makalemizden öğrenebilirsiniz.

ikiarduinobaglanti

Bağlantıları şekildeki gibi yaptıktan sonra aşağıdaki kodu düğmenizin bağlı olduğu arduinoya kopyalayıp yükleyebilirsiniz.

Şimdide led diyotun bağlandığı arduinoye aşağıdaki kodu yüklüyoruz.

 

Arduinoları birbirine bağlamakla ne elde edilebilir ? 

  • Doğru bir bağlantı ve kodlama ile 2 kat daha fazla dijital pini kontrol edebilirsiniz
  • Doğru bir bağlantı ve kodlama ile 2 kat daha fazla analog girişi kontrol edebilirsiniz.
  • Kısa mesafeli alanlarda uzaktaki sensörlerden tek bir seri iletişim ile veri okuyabilirsiniz.

Konuyla ilgili her türlü sorularınızı yorum atabilirsiniz. En kısa zamanda cevap vermeye çalışırım.

6 yorum

  1. Selamunaleyküm
    Kod için çok teşekkür ederim çok faydası oldu ama bi yerde takıldım yardımcı olabilir misiniz?

    int dugme1=6;
    int dugme2=7;
    void setup() {
    Serial.begin(9600);
    pinMode(dugme1, INPUT);
    pinMode(dugme2, INPUT);
    }
    void loop() {
    int deger1= digitalRead(dugme1);
    int deger2= digitalRead(dugme2);
    if(deger1==1){
    Serial.write(1);
    }
    else if(deger2==1){
    Serial.write(2);
    }else{
    Serial.write(0);
    }
    }

    int led1=10;
    int led2=11;// ledimizin artısını 10 nolu pine bağladık
    void setup() {
    Serial.begin(9600); // 9600 hızında Seri iletişimi başlatıyoruz
    pinMode(led1, OUTPUT);
    pinMode(led2, OUTPUT); // 10 nolu pini çıkış olarak ayarladık
    }
    void loop() {
    if(Serial.available()>0){ // veri geliyormu ?
    if(Serial.read()==1){
    digitalWrite(led1, HIGH);} // veri 1 ise ledi yak
    if(Serial.read()==2){
    digitalWrite(led2, HIGH);} // veri 1 ise ledi yak
    else{
    digitalWrite(led1, LOW);
    digitalWrite(led2, LOW);//değilse ledi söndür
    }
    }
    }

    Buton led sayısını 2 ye çıkartmak istedim ama yapamadım çalışmıyor hatam nerde 🙁

    • Gönderen kodda iki buton için iki ayrı if sorgusu yapmanız gerekir. if else yapısı mantık hatası. 1. buton için ayrı if 2. buton için ayruı if olmalı

  2. int dugme1=6;
    int dugme2=7;
    void setup() {
    Serial.begin(9600);
    pinMode(dugme1, INPUT);
    pinMode(dugme2, INPUT);
    }
    void loop() {
    int deger1= digitalRead(dugme1);
    if(deger1==1){
    Serial.write(1);
    }
    int deger2= digitalRead(dugme2);
    if(deger2==1){
    Serial.write(2);
    }else{
    Serial.write(0);
    }
    }

    Bu şekilde mi dediniz böyle denedim çalışmadı hocam 🙁

  3. şöyle bir deney planım var , fare kafeslerinde yemlik olan kısımlarında kızıl ötesi sensör var ve hayvan yemliğe kafasını soktuğunda senssör hayvanı algılayıp,hayvanın kafasında takılı olan lazerin out put yollayarak lazeri aktif hale getiriyor.
    benim istediğim şekilde ;
    4 kafesim var ve yemliklerinde sensör var bu sensörler hayvanı algıladıklaında kafalarında olan lazere out put vererek 10sn 20hz şeklinde çalışmasını ve hayvanın kaç kere kafasını içeri soktuğunu ve zamanını serial ekrana yazmasını istiyorum. birde 4 kafesinde serial ekranını aynı bilgisayardan kullanarak görebilirmiyim ? kodunu bu şekilde yazmak mümkün müdür ?

Cevapla

E-posta adresiniz yayınlanmayacak. Gerekli alanlar işaretlenmelidir *

*