Ultrasonic Sensor not functioning properly in a line follower/Obstacle Avoider

Hi there, so I was working on this line following and obstacle avoiding robot, and it worked very well in the morning, then suddenly later in the day when I decided to test it, the ultrasonic sensor was not even working and kept continuously giving distance 0. Here is the code that I am using:

/*------ Arduino Line Follower Code----- */
/*-------definning Inputs------*/

#define LS 9      // left sensor
#define RS 10     // right sensor

int vspeed = 110;
int turn_speed = 230;
int t_p_speed = 125;
int stop_distance = 12;

const int trigPin = 11;
const int echoPin = 12;

int turnspeed;
int left_sensor_state;
int right_sensor_state;

long duration;
int distance;

/*-------definning Outputs------*/
#define LM1 3       // left motor
#define LM2 4       // left motor
#define RM1 7       // right motor
#define RM2 8       // right motor
#define MtrspeedA 5 
#define MtrspeedB 6


void setup()
{
  pinMode(LS, INPUT);
  pinMode(RS, INPUT);
  pinMode(LM1, OUTPUT);
  pinMode(LM2, OUTPUT);
  pinMode(RM1, OUTPUT);
  pinMode(RM2, OUTPUT);
  
  pinMode(trigPin, OUTPUT); 
  pinMode(echoPin, INPUT);
  
 Serial.begin(9600);
 delay(3000);
}
 
void loop() 
{
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance= duration*0.034/2;
Serial.print("Distance: ");
Serial.println(distance);

left_sensor_state = digitalRead(LS);
right_sensor_state = digitalRead(RS);

  if(!(digitalRead(LS)) && !(digitalRead(RS)))     // Move Forward
  {
    digitalWrite(LM1, LOW);
    digitalWrite(LM2, HIGH);
    digitalWrite(RM2, LOW);
    digitalWrite(RM1, HIGH);
    analogWrite(MtrspeedA, vspeed);
    analogWrite(MtrspeedB, vspeed);
  }
  
  if(digitalRead(LS) && !(digitalRead(RS)))     // Turn right
  {
    digitalWrite(LM1, HIGH);
    digitalWrite(LM2, HIGH);
    digitalWrite(RM2, LOW);
    digitalWrite(RM1, HIGH);
    analogWrite(MtrspeedA, vspeed);
    analogWrite(MtrspeedB, vspeed);
  }
  
  if(!(digitalRead(LS)) && digitalRead(RS))     // turn left
  {
    digitalWrite(LM1, LOW);
    digitalWrite(LM2, HIGH);
    digitalWrite(RM2, HIGH);
    digitalWrite(RM1, HIGH);
    analogWrite(MtrspeedA, vspeed);
    analogWrite(MtrspeedB, vspeed);
  }
  
  if(digitalRead(LS) && digitalRead(RS))     // stop
  {
    digitalWrite(LM1, HIGH);
    digitalWrite(LM2, HIGH);
    digitalWrite(RM2, HIGH);
    digitalWrite(RM1, HIGH);
    analogWrite(MtrspeedA, 0);
    analogWrite(MtrspeedB, 0);
  }

if(distance < stop_distance)
 {

  digitalWrite (LM1,HIGH);
  digitalWrite(LM2,LOW);                       
  digitalWrite (RM2,LOW);
  digitalWrite(RM1,HIGH);
  delay(250);
  analogWrite (MtrspeedA, 0);
  analogWrite (MtrspeedB, 0);
  delay(500);
  digitalWrite (LM1,HIGH);
  digitalWrite(LM2,LOW);                       
  digitalWrite (RM1,HIGH);
  digitalWrite(RM2,LOW);

  analogWrite (MtrspeedA, t_p_speed);
  analogWrite (MtrspeedB, t_p_speed);
  delay(900);


  digitalWrite (LM1,LOW);
  digitalWrite(LM2,HIGH);                       
  digitalWrite (RM1,HIGH);
  digitalWrite(RM2,LOW);

  analogWrite (MtrspeedA, t_p_speed);
  analogWrite (MtrspeedB, t_p_speed);
  delay(800);

  digitalWrite (LM1,LOW);
  digitalWrite(LM2,HIGH);                       
  digitalWrite (RM1,LOW);
  digitalWrite(RM2,HIGH);
  delay(900);

  digitalWrite (LM1,LOW);
  digitalWrite(LM2,HIGH);                       
  digitalWrite (RM1,HIGH);
  digitalWrite(RM2,LOW);

  delay(700);

   digitalWrite (LM1,LOW);
  digitalWrite(LM2,HIGH);                       
  digitalWrite (RM1,LOW);
  digitalWrite(RM2,HIGH);
  delay(650);

  digitalWrite (LM1,LOW);
  digitalWrite(LM2,HIGH);                       
  digitalWrite (RM1,HIGH);
  digitalWrite(RM2,LOW);
 }
 }

Please help thank you, I tried clapping, as that sometimes works, but it still not working, thank you.

(deleted)