Monster Shield+Hc 05

Boa tarde,

Estou tendo dificuldade em um trabalho da escola, onde pretendo controlar um driver monster shield com comunicação via bluetooth.
Cheguei a seguinte programação:

#define BRAKE 0
#define CW 1
#define CCW 2
#define CS_THRESHOLD 15

//MOTOR 1
#define MOTOR_A1_PIN 7
#define MOTOR_B1_PIN 8

//MOTOR 2
#define MOTOR_A2_PIN 4
#define MOTOR_B2_PIN 9

#define PWM_MOTOR_1 5
#define PWM_MOTOR_2 6

#define CURRENT_SEN_1 A2
#define CURRENT_SEN_2 A3

#define EN_PIN_1 A0
#define EN_PIN_2 A1

#define MOTOR_1 0
#define MOTOR_2 1
#include <SoftwareSerial.h>
#define RX 0
#define TX 1
SoftwareSerial bluetooth(RX, TX);

short usSpeed = 150; //default motor speed
unsigned short usMotor_Status = BRAKE;

void setup()
{
pinMode(MOTOR_A1_PIN, OUTPUT);
pinMode(MOTOR_B1_PIN, OUTPUT);

pinMode(MOTOR_A2_PIN, OUTPUT);
pinMode(MOTOR_B2_PIN, OUTPUT);

pinMode(PWM_MOTOR_1, OUTPUT);
pinMode(PWM_MOTOR_2, OUTPUT);

pinMode(CURRENT_SEN_1, OUTPUT);
pinMode(CURRENT_SEN_2, OUTPUT);

pinMode(EN_PIN_1, OUTPUT);
pinMode(EN_PIN_2, OUTPUT);
bluetooth.begin(9600);

Serial.begin(115200);
Serial.println(“Begin motor control”);
Serial.println(); //Print function list for user selection
Serial.println(“Enter number for control option:”);
Serial.println(“1. STOP”);
Serial.println(“2. FORWARD”);
Serial.println(“3. REVERSE”);
Serial.println(“4. READ CURRENT”);
Serial.println("+. INCREASE SPEED");
Serial.println("-. DECREASE SPEED");
Serial.println();

}

void loop (){
verificaBluetooth();
char user_input = bluetooth.read();
}

void verificaBluetooth(){
if (bluetooth.available()){
char user_input = bluetooth.read();
digitalWrite(EN_PIN_1, HIGH);
digitalWrite(EN_PIN_2, HIGH);

if (user_input =='1')
{
   Stop();
}
else if(user_input =='2')
{
  Forward();
}
else if(user_input =='3')
{
  Reverse();
}
else if(user_input =='+')
{
  IncreaseSpeed();
}
else if(user_input =='-')
{
  DecreaseSpeed();
}
else
{
  Serial.println("Invalid option entered.");
}

}
}

void Stop()
{
Serial.println(“Stop”);
usMotor_Status = BRAKE;
motorGo(MOTOR_1, usMotor_Status, 0);
motorGo(MOTOR_2, usMotor_Status, 0);
}

void Forward()
{
Serial.println(“Forward”);
usMotor_Status = CW;
motorGo(MOTOR_1, usMotor_Status, usSpeed);
motorGo(MOTOR_2, usMotor_Status, usSpeed);
}

void Reverse()
{
Serial.println(“Reverse”);
usMotor_Status = CCW;
motorGo(MOTOR_1, usMotor_Status, usSpeed);
motorGo(MOTOR_2, usMotor_Status, usSpeed);
}

void IncreaseSpeed()
{
usSpeed = usSpeed + 10;
if(usSpeed > 255)
{
usSpeed = 255;
}

Serial.print("Speed +: ");
Serial.println(usSpeed);

motorGo(MOTOR_1, usMotor_Status, usSpeed);
motorGo(MOTOR_2, usMotor_Status, usSpeed);
}

void DecreaseSpeed()
{
usSpeed = usSpeed - 10;
if(usSpeed < 0)
{
usSpeed = 0;
}

Serial.print("Speed -: ");
Serial.println(usSpeed);

motorGo(MOTOR_1, usMotor_Status, usSpeed);
motorGo(MOTOR_2, usMotor_Status, usSpeed);
}

void motorGo(uint8_t motor, uint8_t direct, uint8_t pwm)
{
if(motor == MOTOR_1)
{
if(direct == CW)
{
digitalWrite(MOTOR_A1_PIN, LOW);
digitalWrite(MOTOR_B1_PIN, HIGH);
}
else if(direct == CCW)
{
digitalWrite(MOTOR_A1_PIN, HIGH);
digitalWrite(MOTOR_B1_PIN, LOW);
}
else
{
digitalWrite(MOTOR_A1_PIN, LOW);
digitalWrite(MOTOR_B1_PIN, LOW);
}

analogWrite(PWM_MOTOR_1, pwm); 

}
else if(motor == MOTOR_2)
{
if(direct == CW)
{
digitalWrite(MOTOR_A2_PIN, LOW);
digitalWrite(MOTOR_B2_PIN, HIGH);
}
else if(direct == CCW)
{
digitalWrite(MOTOR_A2_PIN, HIGH);
digitalWrite(MOTOR_B2_PIN, LOW);
}
else
{
digitalWrite(MOTOR_A2_PIN, LOW);
digitalWrite(MOTOR_B2_PIN, LOW);
}

analogWrite(PWM_MOTOR_2, pwm);

}
}

É certo que parte dessa programação peguei fuçando na internet, mas na hora de colocar com bluetooth, não consigo rodar o motor, alguém poderia ajudar?

Estou usando o pino rx e tx para a comunicação.

liga o tx e rx do bluetooth ao contrario rx->tx e tx->rx
caso e muda - >if (bluetooth.available()){ usa o proprio serial read

tipo isto

char incomingByte; // variable to receive data from the serial port
void loop() {

  if ( Serial.available() > 0 ) // if data is available to read
  {
    
    incomingByte = Serial.read(); // read it and store it in 'incomingByte'
    
    Serial.println(incomingByte);
  }

  if (incomingByte == 'D') //direita
  {
    digitalWrite(10, HIGH);
    digitalWrite(11, LOW);
    delay(300);
    digitalWrite(10, LOW);
    digitalWrite(11, LOW);

  }


}