Obstacle Avoiding Robot with Ultrasonic and IR Sensor for Edge Detection

Hi I tried emerging two codes, obstacle and edge avoiding robot, i am currently using a wemos d1 r1 because i was planning on controlling it wirelessly(autonomous) can someone help me with the coding?

int trigPin = 6; //trig Pin
int echoPin = 7; //echo Pin
int lm1=8; //left motor output 1
int lm2=9; //left motor output 2
int rm1=10;  //right motor output 1
int rm2=11;  //right motor output 2
int sl=13;    //sensor 1 input (left)
int sr=12;    //sensor 2 input (right)
int SlV=0;
int SrV=0;
//int led = A1;

void setup()
{
  pinMode(trigPin,OUTPUT);
  pinMode(echoPin,INPUT);
  pinMode(lm1,OUTPUT);
  pinMode(lm2,OUTPUT);
  pinMode(rm1,OUTPUT);
  pinMode(rm2,OUTPUT);
  //pinMode(led,OUTPUT);
  pinMode(sl,INPUT);
  pinMode(sr,INPUT);
  Serial.begin(115200);
 sTOP();
}
long duration, distance;

void loop()
{
  SlV=digitalRead(sl);
  SrV=digitalRead(sr);
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);  
  duration = pulseIn(echoPin, HIGH);
  distance = duration/58.2;
  
  if(SrV==LOW && SlV== LOW)
  {
    //digitalWrite(led,LOW);
      Serial.println("No Obstacle - both IR");
   ForWard();
    }
    if(SrV==HIGH && SlV== HIGH)
  {
    //digitalWrite(led,HIGH);
   Serial.println("Obstacle! - both IR");
   BackWard();
   delay(400);
   Right();
   delay(550);
   ForWard();
   delay(200);
    }
     if(SrV==LOW && SlV== HIGH)
  {
   //digitalWrite(led,HIGH);
   Serial.println("Obstacle! - left IR");
   BackWard();
   delay(400);
   Right();
   delay(550);
   ForWard();
   delay(200);
    }
     if(SrV==HIGH && SlV== LOW)
  {
   //digitalWrite(led,HIGH);
   Serial.println("Obstacle! - right IR");
   BackWard();
   delay(400);
   Left();
   delay(550);
   ForWard();
   delay(200);
    }
    if(distance<30)
    {
       Serial.println("Obstacle! - URS");
      sTOP();
      delay(2000);
      Right();
      delay(2000);
      ForWard();
     }
   else
    {
      Serial.println("No Obstacle - URS");
      ForWard();
    }
  delay(0);
    
 }

 void ForWard()
  {
   digitalWrite(lm1,HIGH);
   digitalWrite(lm2,LOW);
   digitalWrite(rm1,HIGH);
   digitalWrite(rm2,LOW);
  } 
  void BackWard()
  {
   digitalWrite(lm1,LOW);
   digitalWrite(lm2,HIGH);
   digitalWrite(rm1,LOW);
   digitalWrite(rm2,HIGH);
  }
  void Left()
  {
   digitalWrite(lm1,LOW);
   digitalWrite(lm2,HIGH);
   digitalWrite(rm1,HIGH);
   digitalWrite(rm2,LOW);
  } 
  void Right()
  {
   digitalWrite(lm1,HIGH);
   digitalWrite(lm2,LOW);
   digitalWrite(rm1,LOW);
   digitalWrite(rm2,HIGH);
  }  

    void sTOP()
  {
   digitalWrite(lm1,LOW);
   digitalWrite(lm2,LOW);
   digitalWrite(rm1,LOW);
   digitalWrite(rm2,LOW);
  }

look up you tube "droneworkshop" he is a wiz at sence and avoidance

Share your experience first i.e. both codes are working separately ?? and what error you get when you combine the two ??