problems with robot using ultrasonic sensor to avoid obstacles [solved]

I'm so sorry I didn't have time to reply sooner.

@wildbill it's late here so I won't run any tests right now but thanks for the idea and I'll do it. If I find any hardware issues I'll post them.

@slipstick So you mean like at the start of void loop() where I only set in2 and in4 I should also set in1 and in3 again even though I already used digitalWrite() in setup? Does it only work within that function and the fact that I didn't reset makes my motor driver "throw up its hands in disgust" and mess up the rest of the code? I went through my code to check for those errors and added comments where I added a line. But since it's really too late to be writing in code or normal English for that matter I probably missed some. I can't test to see if my robot works now because it's kind of loud and everyone else is being smart and sleeping. Sorry if my post is incoherent. I can't even tell because I'm not sure how awake I am. Here's the revised code:

const int pwm1 = 11;//left motor  
const int in1 = 10;//left backward
const int in2 = 9;//left forward
const int pwm2 = 6;//right motor 
const int in3 = 5;// right backward
const int in4 = 4;// right forward
const int led = 13;
const int pingPin = 7;

 
void setup() {
  pinMode (pwm1, OUTPUT);
  pinMode(in1, OUTPUT);
  pinMode(in2, OUTPUT);
  pinMode(pwm2, OUTPUT);
  pinMode(in3, OUTPUT);
  pinMode(in4, OUTPUT);
  pinMode(led, OUTPUT);
  
  digitalWrite(in2, HIGH);//left motor forward
  digitalWrite(pwm1, HIGH);
  digitalWrite(in4, HIGH);//right motor forward
  digitalWrite(pwm2, HIGH);
  delay(1000);
  digitalWrite(in2, LOW);
  digitalWrite(pwm1, LOW);
  digitalWrite(in4, LOW);
  digitalWrite(pwm2, LOW);
  delay(1000);
  digitalWrite(in1, HIGH);// left motor backwards
  digitalWrite(pwm1, HIGH);
  digitalWrite(in3, HIGH);//right motor backwards
  digitalWrite(pwm2, HIGH);
  delay(1000);
  digitalWrite(in1, LOW);
  digitalWrite(pwm1, LOW);
  digitalWrite(in3, LOW);
  digitalWrite(pwm2, LOW);
  
  digitalWrite(led, HIGH);//led on for five seconds
  delay(5000);
  digitalWrite(led, LOW);// led off
  Serial.begin(9600);// stops doing what i want it to do here
}
void loop(){
  digitalWrite(in1, LOW);//added
  digitalWrite(pwm1, LOW);//added
  digitalWrite(in3, LOW);//added
  digitalWrite(pwm2, LOW);//added
  digitalWrite(in2, HIGH);//left motor forwards
  digitalWrite(pwm1, HIGH);
  digitalWrite(in4, HIGH);//left edit that should be right motor forwards
  digitalWrite(pwm2, HIGH);
  uint8_t i;

  long duration, inches, cm;
  pinMode(pingPin, OUTPUT);
  digitalWrite(pingPin, LOW);
  delayMicroseconds(2);
  digitalWrite(pingPin,HIGH);
  delayMicroseconds(5);
  digitalWrite(pingPin, LOW);
  
  pinMode(pingPin, INPUT);
  duration = pulseIn(pingPin, HIGH);
  cm = microsecondsToCentimeters(duration);
  Serial.print(cm);
  Serial.print("cm");
  Serial.println();
  if (cm >10){
    digitalWrite(in1,LOW);//added
    digitalWrite(in2, LOW);//left motor, backwards
    digitalWrite(pwm1, LOW);
    digitalWrite(in1, HIGH);
    digitalWrite(pwm1, HIGH);

  //for (i=0; i<255; i++){ i can't even remember why i commented this out. any ideas?
 // delay(10);}
  digitalWrite(in3,LOW);//added
  digitalWrite(in4, LOW);// right motor, backwards
  digitalWrite(pwm2, LOW);
  digitalWrite(in3, HIGH);
  digitalWrite(pwm2, HIGH);
  for (i=0; i<255; i++){
  delay(10);}
  
digitalWrite(in3, LOW);//start both motors forward again
digitalWrite(pwm2,LOW);// added is this one of the parts you were talking about?
digitalWrite(in4, HIGH);
digitalWrite(pwm2, HIGH);//added
digitalWrite(in2, LOW);
digitalWrite(pwm1,LOW);//added
digitalWrite(in1, HIGH);
digitalWrite(pwm1, HIGH);//added
delay(30);
  }
  else{
    digitalWrite(in1, LOW);//added
    digitalWrite(pwm1, LOW);//added
    digitalWrite(in2, HIGH);//keep going straight
    digitalWrite(pwm1, HIGH);
    digitalWrite(in3, LOW);//added
    digitalWrite(pwm2, LOW);//added
    digitalWrite(in4, HIGH);
    digitalWrite(pwm2, HIGH);
  }
  }
  long microsecondsToCentimeters(long microseconds)
  {
  
    return microseconds / 29/ 2;}

I'll test my robot tomorrow or actually today and post the results.
-p.