Arduino Bluetooth значение Интерпретация - PullRequest
0 голосов
/ 08 мая 2018

Я пытаюсь построить отслеживаемое транспортное средство, управляемое Bluetooth, но код, кажется, неправильно интерпретирует значения, которые он получает от модуля Bluetooth HC-05. При движении вперед контроллер должен посылать «2», а код должен изменить значение целого числа «dir» (для направления) на 2. Однако он получает «128» три раза при нажатии кнопки вниз и «0» и «0» при отпускании кнопки. Вот часть кода, которая получает сигнал и определяет направление (на основе этого учебника ):

if (Serial.available() > 0) 
   {
    dir = Serial.read(); //Reads Bluetooth signals value
    Serial.println(dir); 
   }/*else{
    dir = 0;
   }*/

   delay(10);

А вот полный код:

#include <AFMotor.h>

AF_DCMotor left(3);
AF_DCMotor right(4);

int dir = 0;

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

  left.setSpeed(255);
  right.setSpeed(255);
}

void still(){
  left.run(RELEASE);
  right.run(RELEASE);
}

void forward(){
  left.run(FORWARD);
  right.run(FORWARD);
}

void backward(){
  left.run(BACKWARD);
  right.run(BACKWARD);
}

void clockwise(){
  left.run(FORWARD);
  right.run(BACKWARD);
}

void counterClock(){
  left.run(BACKWARD);
  right.run(FORWARD);
}

void leftforth(){
  left.run(RELEASE);
  right.run(FORWARD);
}

void rightforth(){
  left.run(FORWARD);
  right.run(RELEASE);
}

void leftback(){
  left.run(RELEASE);
  right.run(BACKWARD);
}

void rightback(){
  left.run(BACKWARD);
  right.run(RELEASE);
}

void loop(){
  if (Serial.available() > 0) 
   {
    dir = Serial.read(); //Reads Bluetooth signals value
    Serial.println(dir); 
   }/*else{
    dir = 0;
   }*/

   delay(10);

  if(dir == '0'){
    still();
  }else if(dir == '1'){
    leftforth();
  }else if(dir == '2'){
    forward();
  }else if(dir == '3'){
    rightforth();
  }else if(dir == '4'){
    counterClock();
  }else if(dir == '5'){
    clockwise();
  }else if(dir == '6'){
    leftback();
  }else if(dir == '7'){
    backward();
  }else if(dir == '8'){
    rightback();
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...