• 04-05-2022, 11:59:10
    #1
    Merhaba,

    ses kontrollü araç yapmaya çalışıyoruz, devreleri bağladık kodları hazırladık. Arduino kablo ile bilgisayara bağlı olduğunda sesle gönderdiğimiz komutlar çalışıyor fakat kabloyu çıkardığımızda herhangi bir komut gönderemiyoruz.

    Problemin nerede olduğunu anlayamıyorum, yardımcı olursanız sevinirim…

    Kodlar:
    #include <SoftwareSerial.h>
    SoftwareSerial BT(0, 1); //bt giriş

    const int in1 = 11;
    const int in2 = 10;
    const int in3 = 9;
    const int in4 = 8;
    int speed = 255;

    char junk;
    String voice = "";

    void setup()
    {
    BT.begin(9600);
    Serial.begin(9600);


    pinMode(in1, OUTPUT);
    pinMode(in2, OUTPUT);
    pinMode(in3, OUTPUT);
    pinMode(in4, OUTPUT);
    }

    void turnLeft(int speed1, int speed2){
    digitalWrite(in1, speed1);
    digitalWrite(in2, speed1);
    digitalWrite(in3, speed2);
    digitalWrite(in4, speed1);
    }

    void turnRight(){}
    void mStop()
    {
    digitalWrite(in1, HIGH);
    digitalWrite(in2, HIGH);
    digitalWrite(in3, HIGH);
    digitalWrite(in4, HIGH);
    }


    void loop()
    {
    voice = "";

    /*
    if(Serial.available()){
    while(Serial.available())
    {
    voice = Serial.readString();
    }
    }
    */

    while (BT.available()){
    Serial.println("girdi1");
    delay(1);
    char c = BT.read();
    if (c == '#') {break;}
    voice += c;
    }

    if (voice.length() > 0) {
    //voice.toLowerCase();
    Serial.println("girdi3");
    Serial.println(voice);
    delay(1);

    //----------------- İLERLE ----------------------------//
    if(voice.indexOf("İleri") > 0 || voice.indexOf("ileri") > 0)
    {
    Serial.println("ileri gitti");
    delay(1);
    digitalWrite(in1, HIGH);
    digitalWrite(in2, LOW);
    digitalWrite(in3, HIGH);
    digitalWrite(in4, LOW);

    delay(1);
    }

    //----------------- GERİ ----------------------------//
    if(voice.indexOf("Geri") > 0 || voice.indexOf("geri") > 0)
    {
    digitalWrite(in1, HIGH);
    digitalWrite(in2, LOW);
    digitalWrite(in3, LOW);
    digitalWrite(in4, LOW);
    delay(1);
    }
    if(voice.indexOf("Sola dön") > 0 || voice.indexOf("sola dön") > 0)
    {
    Serial.println("sola döndü");
    turnLeft(speed, 40);
    delay(1000);
    mStop();
    delay(1);
    Serial.println("sola bitti");
    delay(1);

    }

    if(voice.indexOf("Dur") > 0 || voice.indexOf("dur") > 0)
    {
    Serial.println("durdu");
    delay(1);
    digitalWrite(in1, 0);
    digitalWrite(in2, 0);
    digitalWrite(in3, 0);
    digitalWrite(in4, 0);
    delay(1);
    }

    }
    }
  • 04-05-2022, 12:05:25
    #2
    void loop un 4. ve 11. satırındaki kodkar açıklamaya almışsınız bilerek mi yaptınız bilmiyorum ama ondan dolayı olabilir mi
  • 04-05-2022, 12:10:21
    #3
    Kabloyu çıkardığınızda Arduino'yu nasıl besliyorsunuz?