Come far scegliere direzione robot

Buonasera, ho costruito un robot 2wd in grado di evitare ostacoli tramite HCSR04. Vorrei sapere come si potrebbe far scegliere in che direzione girare, se a destra o a sinistra. Allego codice.
Grazie a tutti.

#include <AFMotor.h>                    // includo libreria adafruit per shield L293D

AF_DCMotor motor(1);                    // Definisco motori, trigger ed echo del sensore HCSR-04, led rosso e verde, delay tempo rotazione robot
AF_DCMotor motor1(2);
AF_DCMotor motor2(4);
const int triggerPort = 14;
const int echoPort = 15;
int rotazione90 =500;
long duration;
float distance;
int ledgreen = 16;
int ledred = 17;


void setup()                               // Setup programma
{
  
  motor.setSpeed(110);                     // Vengono settate le velocità dei motori ( valori impostabili da 0 a 255 )
  motor1.setSpeed(110);
  motor2.setSpeed(100);
  pinMode(14,OUTPUT);                      // Inizializzo ingressi e uscite
  pinMode(15,INPUT);
  pinMode(16, OUTPUT);
  pinMode(17, OUTPUT);
  Serial.begin(9600);                      // Imposto comunicazione seriale a 9600 baud
  }

void avanti (void)                         // Creo menù avanti
{
  motor.run(FORWARD);                      // per andare avanti, setto entrambi i motori in run Forward
  motor1.run(FORWARD);
 
 
}
void dx90 (void)                           // Creo menù destra
{
  motor.run(FORWARD);                      // In questo modo i motori girano in senso inverso in modo da compiere rotazione
  motor1.run(BACKWARD);
  delay(rotazione90);                      // per il tempo impostato come rotazione90= 500
  

}

void sx90 (void)                          // menù sinistra, vedi destra
{
  motor.run(BACKWARD);
  motor1.run(FORWARD);
  delay(rotazione90);
}
 




void sensore (void)                                 // gestione sensore 
{ 

 
  

digitalWrite(triggerPort, LOW);
digitalWrite(triggerPort, HIGH); 
delayMicroseconds(20); 
digitalWrite(triggerPort, LOW);  
duration = pulseIn ( echoPort, HIGH);
distance = duration/58;
Serial.print("distanza: ");
if (duration > 38000)
{
  Serial.print(" Fuori portata ");
  
}
else{

Serial.print( distance );
Serial.println("cm");



}}

void loop (){                           
  
 
  sensore();
  if( distance > 30 ){
    avanti();
    digitalWrite(16,HIGH);
    digitalWrite(17,HIGH);
   
    
  }
  else{
    motor.run(RELEASE);
    motor1.run(RELEASE);
    motor2.run(RELEASE);
   
    
  
    sensore();
    
    if ( distance < 20){
      dx90();
      digitalWrite(16, LOW);
      digitalWrite(17,HIGH);
    }
      else {
      sx90();
     
      
    }
  
    
   }
      
    }