Problema para conectar dos sensores, uno ultrasonido y otro infrarrojo

Hola buenas tardes, como he puesto en el Titulo tengo un problema al conectar un sensor ultrasonido (hc-sr04) y un Sharp gp2y0a21yk. Lo que pretendo conseguir con esto es un robot que se mueva primero hacia delante, luego si detecta un obstáculo en el sensor ultrasonido que gire a la derecha y si detecta un obstáculo en el Sharp que gire a la izquierda y siga hacia delante. El movimiento del robot es mediante dos motores DC conectados a un Driver L298N (esta información es por si no se entiende en el Sketch).
Espero que me haya expresado bien y he de decir que soy un principiante, gracias por adelantado.
Por ultimo aquí les dejo el Sketch:

int IN1 = 22; 
int IN2 = 23;
int IN3 = 24; 
int IN4 = 25;

const int valorUmbral = 20;
const int echoReceptor = 3;
const int triggerEmisor = 4;
long tiempoEntrada;
float distanciaEntrada;

int sensor_1 = A0;
int lectura;
int conversion;

void setup()
{
 
 pinMode (IN1, OUTPUT);    // entrada 1
 pinMode (IN2, OUTPUT);    // entrada 2
 pinMode (IN3, OUTPUT);    // entrada 3
 pinMode (IN4, OUTPUT);    // entrada 4

 Serial.begin(9600);
pinMode(triggerEmisor, OUTPUT);
pinMode(echoReceptor, INPUT);
}

void loop ()
{
 sensorUltrasonidos();
 sensorAnalogico();

  if(distanciaEntrada>valorUmbral)
  {
    Adelante();
  }
   else
   {
  Derecha();
   }
   
   if (conversion>=0 && conversion<10)
   {
     Derecha();
   }
   else if (distanciaEntrada>valorUmbral)
   {
     Izquierda();
   }
   else
   {
     Adelante();
   }
}






void Adelante ()
{
//Direccion motor A
digitalWrite (IN1, HIGH);
digitalWrite (IN2, LOW);
//Direccion motor B
digitalWrite (IN3, HIGH);
digitalWrite (IN4, LOW);
}

void Atras ()
{
//Direccion motor A
digitalWrite (IN1, LOW);
digitalWrite (IN2, HIGH);
//Direccion motor B
digitalWrite (IN3, LOW);
digitalWrite (IN4, HIGH);
}

void Derecha ()
{
//Direccion motor A
digitalWrite (IN1, HIGH);
digitalWrite (IN2, LOW);
//Direccion motor B
digitalWrite (IN3, LOW);
digitalWrite (IN4, HIGH);
}

void Izquierda ()
{
//Direccion motor A
digitalWrite (IN1, LOW);
digitalWrite (IN2, HIGH);
//Direccion motor B
digitalWrite (IN3, HIGH);
digitalWrite (IN4, LOW);
}

void Parar ()
{
//Direccion motor A
digitalWrite (IN1, LOW);
digitalWrite (IN2, LOW);
//Direccion motor B
digitalWrite (IN3, LOW);
digitalWrite (IN4, LOW);
}

void sensorAnalogico()
{
lectura= analogRead(sensor_1);
conversion= pow(3027.4 / lectura, 1.2134);
}

void sensorUltrasonidos()
{
 digitalWrite(triggerEmisor, LOW);
 delayMicroseconds(10);
 digitalWrite(triggerEmisor, HIGH);
 delayMicroseconds(10);
 tiempoEntrada=pulseIn(echoReceptor, HIGH);
 distanciaEntrada= int(0.017*tiempoEntrada);
 Serial.println("El valor de la distancia es");
 Serial.println(distanciaEntrada);
 delay(200);
}

Hola Elvix, bienvenido al foro Arduino.
He analizado tu código y encuentro una posible incoherencia en este punto.

La primera parte en la que al detectar un obstáculo con el ultrasónico gire a la derecha parece estar bien o de lo contrario se mueve hacia adelante.

Pero a continuación dice el código

if (conversion>=0 && conversion<10) {
      Derecha();
  }
  else 
      if (distanciaEntrada>valorUmbral) {
          Izquierda();
      }
      else  {
          Adelante();
      }

Recordemos una posible situación... ultrasónico > valorUmbral entonces va hacia adelante.
y supongamos que Sharp no de una conversión entre 0 y 10 de modo que el código le dice que vaya a la izquierda? incoherente!!

No entiendo porque tienes un sensor ultrasónico y un Sharp controlando derecha o izquierda?