2 arduıno yu bluetooth ıle haberlestırme
  • arkadaslar 2 arduıno yu bluetooth ıle haberlestırmek ıstıyorum yapmak ıstedıgım arduınonun bırınde 8 pot olacak dıgerınde 8 servo motor olacak bunları bluetooth ıle haberlestırerek 1 numaralı potu cevırdıgımde 1 numaralı servoyu hareket ettırmek bunun ıcın kod da sıkıntı yasıyorum :(
  • Hangi kod ben burada bir kod goremiyorum nasil bir sey yazmistiniz
  • master cod
    #define pot1 1
    #define pot2 0
    #define pot3 2
    #define highpulse 2000
    #define lowpulse 1000
    #define pot_ortalama 600
    #define tolerans 5
    #define delay_time 1500


    int pot1_degeri;
    int pot2_degeri;
    int pot3_degeri;
    int pot4_degeri;
    int pot5_degeri;
    int pot6_degeri;
    int pot1_ayarli_deger;
    int pot2_ayarli_deger;
    int pot3_ayarli_deger;
    int pot1_onceki_deger;
    int pot2_onceki_deger;
    int pot3_onceki_deger;
    boolean update1;
    boolean update2;
    boolean update3;
    void setup()
    {
    Serial.begin(115200);
    //in-itialize servo to its center position.
    pot1_onceki_deger = pot_ortalama;
    pot2_onceki_deger = pot_ortalama;
    pot3_onceki_deger = pot_ortalama;
    Serial.print(':');
    Serial.print(100);
    Serial.print(',');
    Serial.print(100);
    Serial.print(';');
    Serial.print(100);
    }

    void loop()
    {
    pot1_degeri = analogRead(pot1);
    pot2_degeri = analogRead(pot2);
    pot3_degeri = analogRead(pot3);
    update1 = (abs(pot1_onceki_deger-pot1_degeri) > tolerans);
    update2 = (abs(pot2_onceki_deger-pot2_degeri) > tolerans);
    update3 = (abs(pot3_onceki_deger-pot3_degeri) > tolerans);
    if (update1)
    {
    pot1_onceki_deger = pot1_degeri;
    pot1_ayarli_deger = map(pot1_degeri,0,1023,100,999);
    Serial.print(',');
    Serial.println(pot1_ayarli_deger);
    //delay(delay_time);
    //update1 = false;
    }
    if (update2)
    {
    pot2_onceki_deger = pot2_degeri;
    pot2_ayarli_deger = map(pot2_degeri,0,1023,100,999);
    Serial.print(':');
    Serial.println(pot2_ayarli_deger);
    // delay(delay_time);
    // update2 = false;
    }
    if (update3)
    {
    pot3_onceki_deger = pot3_degeri;
    pot3_ayarli_deger = map(pot3_degeri,0,1023,100,999);
    Serial.print(';');
    Serial.println(pot3_ayarli_deger);
    //delay(delay_time);
    // update3 = false;
    }
    }


    slave cod
    #include Servo.h>

    int servoPin1 = 8;
    int servoPin2 = 9;
    int servoPin3 = 10;
    int servoPin4 = 11;
    int servoPin5 = 12;
    int servoPin6 = 13;
    int servoPin7 = 14;
    int servoPin8 = 15;

    char gelensayilar[3];
    int sayici = 0;
    int servoDegeri;
    boolean ayirici;
    char data;

    int servoaltdeger = 1000;
    int servoustdeger = 2000;


    Servo servo1;
    Servo servo2;
    Servo servo3;
    Servo servo4;
    Servo servo5;
    Servo servo6;
    Servo servo7;

    void setup()
    {
    Serial.begin(115200);

    servo1.attach(servoPin1);
    servo2.attach(servoPin2);
    servo3.attach(servoPin3);

    data = Serial.read();
    //Serial.println(1);
    }

    void loop()
    {

    if ( Serial.available() > 0)
    {
    // Serial.println(char(Serial.read()));
    }
    data = Serial.read();
    ayirici = (data == ',') || (data == ':') || (data == ';') ;
    if (!ayirici)
    {
    sayici = 0;
    while (!ayirici)
    {
    while (!Serial.available()){}
    gelensayilar[sayici] = data;
    sayici += 1;
    data = Serial.read();
    ayirici = (data == ',') || (data == ':') || (data == ';') ;
    }
    gelensayilar[sayici] = '\0';
    servoDegeri = atoi(gelensayilar);
    Serial.println("servo" + String(servoDegeri));
    switch (data)
    {
    case ',':
    servoDegeri = map(servoDegeri,100,999,servoaltdeger,servoustdeger);
    servo1.writeMicroseconds(servoDegeri);
    Serial.print("birinci pot");
    Serial.println(servoDegeri);
    break;
    case ':':
    servoDegeri = map(servoDegeri,100,999,servoaltdeger,servoustdeger);
    servo2.writeMicroseconds(servoDegeri);
    Serial.print("ikinci pot");
    Serial.println(servoDegeri);
    break;
    case ';':
    servoDegeri = map(servoDegeri,100,999,servoaltdeger,servoustdeger);
    servo3.writeMicroseconds(servoDegeri);
    Serial.print("ucuncu pot");
    Serial.println(servoDegeri);
    break;
    }
    }
    else
    {
    while (!Serial.available()){}
    data = Serial.read();
    }

    }
  • bu konuda yardımcı olacak bırı yokmu ?
  • bluetooth modullerden biri master biri slave modda yapmışın bu iyi ikisi birbirini bilip tanıtmalı veya cevap vermeli önce. ilk etapta potlu işey yapmayın basitten bir arduinodan diğerine basit mesajlar atın diğerinde okuyun bunu helledersen gerisi daha kolay olur
  • Hocam ben bunu tek pot ve tek servo halinde bluetooth ile calistiriyorum sorun 6 tane pot ve 6 tane servo kontrol etmekte bu kodla calisiyor ama servolar titriyor ve sacma hareketler yapiyor bana bu konu hakkinda yardim lazim
  • en sondaki serial.read kullanmadan denedinmi

    else
    {
    while (!Serial.available()){}
    // kapattım bunu bi böyle dene data = Serial.read();
    }

  • olmadı hıc calısmıyor bu sekılde
  • 2 şer denediğinde çalıştırabildin mi? sorun analog dataları ayırmakta gibi.
  • 1 pot ıle bır servoyu cok guzel ıstedıgım gıbı calıstırıyorum ama bunu cogalttımda orenegın 2 pot ve 2 servo koydugumda sıkıntı yasıyorum servolar tıtreme yapıyor yada hıc hareket etmıyor
  • dediğim gibi dataları ayırmakta sıkıntı var gibi. yazılımını 2 pot ve 2 servoya indirgeyip slave tarafta serial monitorden aldığın datalara bak bence. servoya ne yazıyor onları da bir gör.
  • yazmak ıstedıgımı yazıyor ama servo duzgun donmuyor :S
  • servo beslemelerini nerden veriyosun? arduino üzerinden veriyosan sürekli reset yer ve düzgün dönmez. harici bir kaynakla besleyip arduino ile gnd leri birleştiriyor musun?
  • arkadaslar dedıgınız gıbı harıcı bır guc kaynagı ıle denedeım ama yıne aynı sorun devam edıyor :(
  • bu konuda bılgısı olan kımse yokmu ?

Howdy, Stranger!

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

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