problem with 6V 250 Rpm motor

I’m a beginner and I wanted to make an easy project so I decided on Arduino robot car with bluetooth control / joystick version and I added light sensor to it. Right now sensor is working and car is moving backwards, right and left. It won’t go foward one motor is not working but when I move the joystick reverse direction that motor works again and goes backwards perfectly. I can’t find the mistake.
Is it software related or motor is broken?

I attached my code but I’m gonna paste it here too:

#define enA 9
#define in1 4
#define in2 5
#define enB 10
#define in3 6
#define in4 7
int xAxis, yAxis;
int light = 0;
unsigned int  x = 0;
unsigned int  y = 0;
int motorSpeedA = 0;
int motorSpeedB = 0;
void setup() {
pinMode(enA, OUTPUT);
pinMode(enB, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
pinMode(3, OUTPUT);
pinMode(11, OUTPUT);

Serial.begin(38400); // Default communication rate of the Bluetooth module
}
void loop() {
// Default value - no movement when the Joystick stays in the center
x = 510 / 4;
y = 510 / 4;
// Read the incoming data from the Joystick, or the master Bluetooth device
while (Serial.available() >= 2) {
  x = Serial.read();
  delay(10);
  y = Serial.read();
}
delay(10);
// Convert back the 0 - 255 range to 0 - 1023, suitable for motor control code below
xAxis = x * 4;
yAxis = y * 4;
// Y-axis used for forward and backward control
if (yAxis < 470) {
  // Set Motor A backward
  digitalWrite(in1, HIGH);
  digitalWrite(in2, LOW);
  // Set Motor B backward
  digitalWrite(in3, HIGH);
  digitalWrite(in4, LOW);
  // Convert the declining Y-axis readings for going backward from 470 to 0 into 0 to 255 value for the PWM signal for increasing the motor speed
  motorSpeedA = map(yAxis, 470, 0, 0, 255);
  motorSpeedB = map(yAxis, 470, 0, 0, 255);
}
else if (yAxis > 550) {
  // Set Motor A forward
  digitalWrite(in1, LOW);
  digitalWrite(in2, HIGH);
  // Set Motor B forward
  digitalWrite(in3, LOW);
  digitalWrite(in4, HIGH);
  // Convert the increasing Y-axis readings for going forward from 550 to 1023 into 0 to 255 value for the PWM signal for increasing the motor speed
  motorSpeedA = map(yAxis, 550, 1023, 0, 255);
  motorSpeedB = map(yAxis, 550, 1023, 0, 255);
}
// If joystick stays in middle the motors are not moving
else {
  motorSpeedA = 0;
  motorSpeedB = 0;
}
// X-axis used for left and right control
if (xAxis < 470) {
  // Convert the declining X-axis readings from 470 to 0 into increasing 0 to 255 value
  int xMapped = map(xAxis, 470, 0, 0, 255);
  // Move to left - decrease left motor speed, increase right motor speed
  motorSpeedA = motorSpeedA - xMapped;
  motorSpeedB = motorSpeedB + xMapped;
  // Confine the range from 0 to 255
  if (motorSpeedA < 0) {
    motorSpeedA = 0;
  }
  if (motorSpeedB > 255) {
    motorSpeedB = 255;
  }
}
if (xAxis > 550) {
  // Convert the increasing X-axis readings from 550 to 1023 into 0 to 255 value
  int xMapped = map(xAxis, 550, 1023, 0, 255);
  // Move right - decrease right motor speed, increase left motor speed
  motorSpeedA = motorSpeedA + xMapped;
  motorSpeedB = motorSpeedB - xMapped;
  // Confine the range from 0 to 255
  if (motorSpeedA > 255) {
    motorSpeedA = 255;
  }
  if (motorSpeedB < 0) {
    motorSpeedB = 0;
  }
}
// Prevent buzzing at low speeds (Adjust according to your motors. My motors couldn't start moving if PWM value was below value of 70)
if (motorSpeedA < 70) {
  motorSpeedA = 0;
}
if (motorSpeedB < 70) {
  motorSpeedB = 0;
}
analogWrite(enA, motorSpeedA); // Send PWM signal to motor A
analogWrite(enB, motorSpeedB); // Send PWM signal to motor B

light = analogRead(A0); // read and save value from PR

Serial.println(light); // print current light value

 if(light > 450) { // If it is bright...
      Serial.println("It is quite light!");
      digitalWrite(11,LOW); //turn left LED off
      digitalWrite(3,LOW); // turn right LED off
  }
  else if(light > 229 && light < 451) { // If it is average light...
      Serial.println("It is average light!");
     digitalWrite(11, LOW); // turn left LED on
     digitalWrite(3,LOW);  // turn right LED off
  }
  else { // If it's dark...
      Serial.println("It is pretty dark!");
      digitalWrite(11,HIGH); // Turn left LED on
      digitalWrite(3,HIGH); // Turn right LED on
}
}

hc-05_slave.ino (4.06 KB)

Please edit your post to add code tags, as described in How to use this forum.

Did you trying writing a test sketch that just does something simple like run motor A forward for a couple of seconds, then runs it backwards for a couple of seconds and then does the same for the other motor?

I'd start with verifying your motors are actually working correctly with no loose wires...