İki Arduino Arası Haberleşme
Herhangi bir nedenden ötürü iki arduino'yu birbirine bağlamak, iki arduino arasında haberleşme sağlamak isteyebilirsiniz. Bu nedenler kimi zaman arduino giriş/çıkış pinleri yetersizliği kimi zaman ise hobi amaçlı iki adet programlanabilir kartı haberleştirmek olabilir.
Ben bu proje içerisinde iki adet arduino uno modelini kullanacağım. Siz istediğiniz iki arduino modeli arasında haberleşme sağlayabilirsiniz. Şimdi gelin adım adım iki arduino arasında haberleşme nasıl sağlanır bir göz atalım.
Adım 1: Gerekli Bileşenler
- Arduino UNO x2
- Yeterince Jumper Kablolar
Adım 2: Devre Şeması
Yukarda göreceğiniz üzere Arduino'ların Tx ve Rx pinleri birbirlerine bağlı. Siz de devreyi kurarken yukarda da görüldüğü gibi ilk Arduino’nun TX pini diğerinin RX pinine ve ilk Arduino’nun RX pinini diğerinin TX pinine bağlayın. Bunu yapmamızdaki amaç Tx(gönderici) pininden gönderilen verinin Rx(alıcı) pininden okunmasını sağlamak.
Adım 3: Kodları Yazalım
Burada alıcı arduino ve gönderici arduino için iki farklı kod yazmamız gerekli.
Gönderici Arduino İçin Kod
- İlk olarak alıcı tarafına "Merhaba" kelimesini gönderebilmek için gerekli char tanımlamasını yaptım.
- 9600 baud hızında seri iletişimi başlattım.
- Ve döngü içerisinde "Merhaba" kelimesinin 1 saniye ara ile iletilmesini sağladım.
char dizi[7] = "Merhaba"; //String verisi. void setup() { // 9600 baud hızında seri iletişim başlatıldı. Serial.begin(9600); } void loop() { Serial.write(dizi,7); //dizi içerisinde yer alan "Merhaba" kelimesi gönderildi. delay(1000); //1 saniye bekleme verildi. }
Alıcı Arduino İçin Kod
- İlk olarak, seri olarak alınan verileri depolamak için boş bir dizi tanımladım.
- Alıcı tarafında da 9600 baud seçtim. Burada dikkat etmeniz gereken önemli hususlardan biri iki tarafın da aynı baud hızına sahip olması.
- Ve Serial.readBytes kullanarak gönderici Arduino'dan verileri okudum.
char dizi[10]; //boş bir dizi tanımladım. void setup() { // 9600 baud hızında seri iletişim başlatıldı. Serial.begin(9600); } void loop() { Serial.readBytes(dizi,7); //Okunan verileri dizi içerisine gömdüm. Serial.println(dizi); //dizi dizisi içerisinde neler olduğunu görebilmek için seri ekrana yazdırım. delay(1000); //1 saniye beklettim. }
Efsanesin admin
YanıtlaSilDeğerli yorumun için teşekkür ederim.
SilÇok çok teşekkürler
YanıtlaSilReis ellerine sağlık bu kadar kolay beklemiyordum ben.
YanıtlaSil