Birden çok arduino haberleşmede veri gönderimi
  • Merhabalar, Öncelikle programlama bilmiyorum arduino ve c# la tanışalı 1 ay oldu..
    1 adet Ana kontrol merkezi(A) ve 6 Adet bölgem(B) bulunuyor her bölgede shift regester ile yazı yazdırdığım tabela sistemim var.
    Her bölgede 1'er adet Arduino bölge kontrol kartım var.
    Kontrol Merkezimden istediğim bölgeye tek bir RX-TX kablosu üzerinden veri gönderiyorum.

    Bölge kartlarım da tanımlı 324 adet int değişken var. bunlarla led kartlarına yazı yazıyorum.
    Örneğin Bölge 1 de Bolge1A1,Bolge1A2-Bolge1B1,Bolge1B2... gibi// max 255 değer kullanıyor
    Bölge 2 de Bolge2A1,Bolge2A2-Bolge2B1,Bolge2B2... gibi //max 255 değer kullanıyor
    Ana kontrol merkezindeki Arduino da C# da yazdığım arayüzle bölgelere byte değişkeni ile veri gönderiyorum.
    (eğer daha pratik çözüm öneriniz varsa severek uygularım.)

    Yapmak istediğim basitçe Ana kontrol merkezindeki arduino ile Bölgelerdeki arduino içinde bulunan int değişkenlerine data göndermek.
    Bide aynı data kablosu üzerinden gideceği için bölgelerdeki arduinolar seçmesi gerekecek. Örneğin..
    datayı gönderirken başına Bolge1(veya buna benzer bir adreslemeyle sadece o bölgedeki değişkenler değişecek.
    Basit gibi ama içinden çıkamadım çözüm yolu önerirseniz sevinirim.

    Yaklaşık olarak 1 haftadır çeştli yöntemler deniyorum. Mesela datayı char içinde gnderim veriyi ayırıp değişkenlere dağıttım. fakat gönderdiğim yerde charın içine değişkenleri sokamadım. kısaca örnek..

    Bu örnekte byte değişkenlerini mesaj değişkeni içine sırasıyla yazdırabilirsem karşıdan istediğim şekilde alırım.
    Yani mesaj değişkenini şuna benzer şekilde göndermem lazım.
    char* mesaj = "(ModA1)*(ModA2)*(ModA3)*(ModA4)"; //gönderilen veri (*) sembolu karşıda datayı ayırıyor.

    çıktı olarak char* mesaj="5*8*253*254";

    -----------Merkezdeki arduino------------

    byte ModA1=5, ModA2=8, ModA3=253, ModA4=254, //bunlar değişkenlerim..

    char* mesaj = "1*2*3*4*5*6*7*8*9*10*11*12*13*14*15*16*17*18"; //gönderilen veri
    Serial.write(mesaj);
    ------------------
    -----------------------------bölgedeki arduino------------------
    char dizi[44];

    if (Serial.available() > 0) { // Serial Porta girdi değerinin olup olmadığını kontrol et

    Serial.readBytes(dizi,44);
    Serial.print("dizi : ");
    Serial.println(dizi); // üzerine yazılmış olan diziyi ekrana yaz.
    int n = sscanf(dizi2, "%d*%d*%d*%d*%d*%d*%d*%d*%d*%d*%d*%d*%d*%d*%d*%d*%d*%d", &Mod1, &Mod2, &Mod3, &Mod4, &Mod5, &Mod6, &Mod7, &Mod8, &Mod9, &Mod10, &Mod11, &Mod12, &Mod13, &Mod14, &Mod15, &Mod16, &Mod17, &Mod18);
    --------------
    yada farklı çözüm yollarınız varsa sevinirim. Teşekkürler.
  • yada byte byte 18 adet sayıyı gönderip(0-255) bunları diğer alıcı kısımda dur karakter ile mesela # sayıları alıp alıcıdaki int değişkenlere dağıtabilir miyim?

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Login with Facebook
Açık kaynak kültürü gereği, çözdüğünüz problemlerin çözümlerini paylaşmayı lütfen unutmayın.