Help with bi directional motors

Hey im working on a project that uses an Arduino to control a motor H bridge, that controls 2 bidirectional motors. The problem that i am having is that i can make the motors both go forward, but only on go backwards. Code is below, if you have any questions please ask. Please also remember that i am new, thanks.

#include <Servo.h>


//Drive pins
const int motor1Forward = 2; //Input 1
const int motor1Backward = 3; //Input 2
const int enablePin1 = 9;    //EnableA
//Steering pins
const int motor2Forward = 4;  //Input 3
const int motor2Backward = 5; //Input 4
const int enablePin2 = 10;    //EnableB
//Serial information varriables
char inSerial;
//Pan Variables
Servo panServo;           //Panning servo
const int panPin = 11;   
bool bPan;                // If true enables the ability for the servo to pan
bool bPanDirPos;          //If true servo should pan only in the positive direction
float panSpeed = .01;     //Degrees in which servo pans per tic
float panVal = 75;       //Panning servo starting position

//Tilt Variables
Servo tiltServo;           //Tilting servo
const int tiltPin = 12;   
bool bTilt;                // If true enables the ability for the servo to tilt
bool bTiltDirPos;          //If true servo should tilt only in the positive direction
float tiltSpeed = .01;     //Degrees in which servo tilts per tic
float tiltVal = 60;        //Tilting servo starting position*/

void setup() 
{
  Serial.begin(115200);      //serial connection number
  pinMode(motor1Forward, OUTPUT);
  pinMode(motor1Backward, OUTPUT);
  pinMode(enablePin1, OUTPUT);
  pinMode(motor2Forward, OUTPUT);
  pinMode(motor2Backward, OUTPUT);
  pinMode(enablePin2, OUTPUT);
  Serial.println("Setup Complete");
  //Initalize Servos to starting positions
  //Pan Servos
  panServo.attach(panPin);
  panServo.write(panVal);
  bPan = false;
  bPanDirPos = true;
  
  //Initalize Tilt Servos
  tiltServo.attach(tiltPin);
  tiltServo.write(tiltVal);
  bTilt = false;
  bTiltDirPos = true;

}

void SteerLeft()
{
  digitalWrite(enablePin2, HIGH);
  digitalWrite(enablePin1, HIGH);
  digitalWrite(motor2Forward, HIGH);
  digitalWrite(motor2Backward, LOW);
  digitalWrite(motor1Forward, LOW);
  digitalWrite(motor1Backward, HIGH);
}

void SteerRight()
{
  digitalWrite(enablePin2, HIGH);
  digitalWrite(enablePin1, HIGH);
  digitalWrite(motor2Forward, LOW);
  digitalWrite(motor2Backward, HIGH);
  digitalWrite(motor1Forward, HIGH);
  digitalWrite(motor1Backward, LOW);
}

void SteerStop()
{
  digitalWrite(enablePin2, LOW);
  digitalWrite(enablePin1, LOW);
  digitalWrite(motor2Forward,LOW);
  digitalWrite(motor2Backward,LOW);
  digitalWrite(motor1Forward, LOW);
  digitalWrite(motor1Backward, LOW);
}

void DriveForward()
{
  digitalWrite(enablePin1, HIGH);
  digitalWrite(enablePin2, HIGH);
  digitalWrite(motor1Forward, HIGH);
  digitalWrite(motor1Backward, LOW);
  digitalWrite(motor2Forward,HIGH);
  digitalWrite(motor2Backward,LOW);
}
void DriveBackward1()
{
  digitalWrite(enablePin1, HIGH);
  digitalWrite(motor1Forward, LOW);
  digitalWrite(motor1Backward, HIGH);
}
void DriveBackward2()
{
  digitalWrite(enablePin2, HIGH);
  digitalWrite(motor2Forward,LOW);
  digitalWrite(motor2Backward,HIGH);
}  
void DriveStop()
{
  digitalWrite(motor1Forward, LOW);
  digitalWrite(motor1Backward, LOW);
  digitalWrite(motor2Forward,LOW);
  digitalWrite(motor2Backward,LOW);
  digitalWrite(enablePin2, LOW);
  digitalWrite(enablePin1, LOW);
}
void PanUp()
{
  bPan = true;
  bPanDirPos = true;
}

void PanDown()
{
  bPan = true;
  bPanDirPos = false;
}

void PanStop()
{
  bPan = false;
}

void TiltUp()
{
  bTilt = true;
  bTiltDirPos = true;
}

void TiltDown()
{
  bTilt = true;
  bTiltDirPos = false;
}

void TiltStop()
{
  bTilt = false;
}

  

void loop() 
{
   //read the serial data into the buffer
  if(Serial.available() > 0)
  {
    inSerial = Serial.read();
   
      if(inSerial == 'w')
      {
          DriveForward();  
      }
      else if(inSerial == 'b')
      {
          DriveBackward1();
          DriveBackward2();
      } 
      else if(inSerial == 's')
      {
          DriveStop();
      }
      else if(inSerial == 'a')
      {
        SteerLeft();
      }
      else if(inSerial == 'd')
      {
         SteerRight();
      }
      else if(inSerial == 'q')
      {
         SteerStop();
      }
      else if(inSerial == 'p')
      {
        PanUp();
      }
     else if(inSerial == 'o')
      {
        PanDown();
      }
      else if(inSerial == 'n')
      {
        PanStop();
      }
      else if(inSerial == 't')
      {
        TiltUp();
      }
      else if(inSerial == 'g')
      {
        TiltDown();
      }
      else if(inSerial == 'y')
      {
        TiltStop();
      } 
     }
       
//Controll panning
if(bPan)
{
	if(bPanDirPos)
	{
		if(panVal<190)
		{
			panVal+=panSpeed;
			panServo.write(panVal);
		}
	}
	else
	{
		if(panVal>10)
		{
			panVal-=panSpeed;
			panServo.write(panVal);
		}
	}
}

//Controll Tilting
if(bTilt)
{
	if(bTiltDirPos)
	{
		if(tiltVal<190)
		{
			tiltVal +=tiltSpeed;
			tiltServo.write(tiltVal);
	}	}
	else
	{
		if(tiltVal>10)
		{
			tiltVal-=tiltSpeed;
			tiltServo.write(tiltVal);
		}
	}
}
}

Code looks fine, suspect a hardware issue - time for multimeter!

The problem that i am having is that i can make the motors both go forward, but only on go backwards.

void loop() 
{
   //read the serial data into the buffer
  if(Serial.available() > 0)
  {
    inSerial = Serial.read();

Reading data from the serial port is NOT the way to test your hardware. Get rid of all that code. Call a function, delay() for one second. Repeat for the next function. When you can tell us which function is not working, we can suggest maybe why not.

Dump all the servo stuff, too. Test ONE thing at a time. As it is, you don't know if you have a simple hardware problem, a simple software problem, or a complex interaction problem. Or, if you do, you aren't telling us that.

Alright so i did as the previous comment said, and the DriveBackwards commands only activate one motor.

Sounds like a wiring issue. What happens if you swap the motors around?

Which DriveBackward command doesn't work? Try making only one DriveBackward function. If only one motor runs, I would agree with a wiring issue.

Hey thanks guys, i checked the wiring with a miulti meter and found that i soldered something wrong.