HS 311 only turns to the left

so i bought a HS 311 to use for the swivel mount for my ping sensor but for some odd reason the servo only turns left. I have been googling this problem since last night and really havent found an easy solution besides people saying buy another servo.

/*MAEP 2.0 Navigation
by Noah Moroze, aka GeneralGeek
This code has been released under a Attribution-NonCommercial-ShareAlike license, more info at http://creativecommons.org/licenses/
PING))) code by David A. Mellis and Tom Igoe http://www.arduino.cc/en/Tutorial/Ping
Edited by: Jason Miller for Project KITT
*/

#include <Servo.h> //include Servo library
#include <LiquidCrystal.h> //include lcd library

LiquidCrystal lcd(2, 3, 6, 7, 8, 9);

const int RForward = 0; 
const int RBackward = 180; 
const int LForward = RBackward; 
const int LBackward = RForward; 
const int RNeutral = 90; 
const int LNeutral = 90; //constants for motor speed
const int pingPin = 4;
const int dangerThresh = 5; //threshold for obstacles (in inches)
int leftDistance, rightDistance; //distances on either side
Servo panMotor;  
Servo leftMotor;
Servo rightMotor; //declare motors
long duration; //time it takes to recieve PING))) signal

void setup()
{
  Serial.begin(9600);
  lcd.begin(16, 2);
  lcd.print("Hello Jason");
  delay(1000);
  lcd.clear();
  lcd.print("Activating KITT");
  delay(1000);
  lcd.clear();
  lcd.print("KITT Online");
  delay(1000);
  rightMotor.attach(11);
  leftMotor.attach(10);
  panMotor.attach(5); //attach motors to proper pins
  panMotor.write(90); //set PING))) pan to center
}

void loop()
{
  int distanceFwd = ping();
  if (distanceFwd>dangerThresh) //if path is clear
  {
    leftMotor.write(LForward); 
    rightMotor.write(RForward); //move forward
    lcd.print("Forward");
  }
  else //if path is blocked
  {
    leftMotor.write(LNeutral);
    rightMotor.write(RNeutral); 
    panMotor.write(0); 
    delay(500);
    rightDistance = ping(); //scan to the right
    lcd.print("Scan Right");
    delay(500);
    panMotor.write(180);
    delay(700);
    leftDistance = ping(); //scan to the left
    lcd.print("Scan Left");
    delay(500);
    panMotor.write(90); //return to center
    delay(100);
    compareDistance();
  }
}
  
void compareDistance()
{
  if (leftDistance>rightDistance) //if left is less obstructed 
  {
    leftMotor.write(LBackward); 
    rightMotor.write(RForward); //turn left
    lcd.print("Turn Left");
    delay(500); 
  }
  else if (rightDistance>leftDistance) //if right is less obstructed
  {
    leftMotor.write(LForward);
    rightMotor.write(RBackward); //turn right
    lcd.print("Turn Right");
    delay(500);
  }
   else //if they are equally obstructed
  {
    leftMotor.write(LForward); 
    rightMotor.write(RBackward); //turn 180 degrees
    lcd.print("Turn 180");
    delay(500);
  }
}

long ping()
{
  // Send out PING))) signal pulse
  long duration, inches;
  pinMode(pingPin, OUTPUT);
  digitalWrite(pingPin, LOW);
  delayMicroseconds(2);
  digitalWrite(pingPin, HIGH);
  delayMicroseconds(5);
  digitalWrite(pingPin, LOW);
  
  //Get duration it takes to receive echo
  pinMode(pingPin, INPUT);
  duration = pulseIn(pingPin, HIGH);
  inches = microsecondsToInches(duration);
  lcd.print(inches);
  lcd.print("in to obstacle");
  delay(100);
  lcd.clear();  
  delay(100);
}
 
  long microsecondsToInches(long microseconds)
  {
  return duration / 29 / 2;
}

Update: I managed to get the servo to move slightly to the right but the movements are very twitchy and the servo constantly twitches

How are you powering your servo? Servo test code below.

// zoomkat 10-22-11 serial servo test
// type servo position 0 to 180 in serial monitor
// or for writeMicroseconds, use a value like 1500
// for IDE 0022 and later
// Powering a servo from the arduino usually *DOES NOT WORK*.

String readString;
#include <Servo.h> 
Servo myservo;  // create servo object to control a servo 

void setup() {
  Serial.begin(9600);
  myservo.writeMicroseconds(1500); //set initial servo position if desired
  myservo.attach(7);  //the pin for the servo control 
  Serial.println("servo-test-22-dual-input"); // so I can keep track of what is loaded
}

void loop() {
  while (Serial.available()) {
    char c = Serial.read();  //gets one byte from serial buffer
    readString += c; //makes the string readString
    delay(2);  //slow looping to allow buffer to fill with next character
  }

  if (readString.length() >0) {
    Serial.println(readString);  //so you can see the captured string 
    int n = readString.toInt();  //convert readString into a number

    // auto select appropriate value, copied from someone elses code.
    if(n >= 500)
    {
      Serial.print("writing Microseconds: ");
      Serial.println(n);
      myservo.writeMicroseconds(n);
    }
    else
    {   
      Serial.print("writing Angle: ");
      Serial.println(n);
      myservo.write(n);
    }

    readString=""; //empty for next input
  } 
}

i was using an e-flite 7.4 volt lipo with a voltage divider down to 4.8 volts

MillerJLee98579:
i was using an e-flite 7.4 volt lipo with a voltage divider down to 4.8 volts

"A voltage divider" as in two resistors? Please explain.

4.8V is apparently the minimum voltage required to run that servo. Were you measuring the voltage when the servo was powered up? If not, you may well not even be providing that - better to provide 6V if you can.

Yes i was measuring the voltage when the servo was powered up and yes a voltage divider as in two resistors

You would do better to use a simple 7805 voltage regulator than a voltage divider.

i will see if i have one of those in my parts box but if that still doesnt work how would i get that servo to do more than turn to the left?

You didn't mention the resistances in your voltage divider, but I suspect that they are too high to supply enough current (160ma no load requirement) to the servos. The linear regulator is a much much better choice.

servos usually turn in one direction until they hit the hard stop when they are receiving malformed control signals.

ok i modified the hs311 into a continuous rotation servo but still am not having any luck with making it turn in any direction other than left