Agregar sensor ultrasónico en el codigo

Hola, necesito ayuda. No entiendo una papafrita de arduino.

Actualmente estoy usando Arduino UNO y estoy haciendo un proyecto que consiste en un parking automatizado. Para no entrar en detalle mi problema consiste en lo siguiente.

La barra esta pensada para que funcione con dos sensores ultrasonicos ( Y lo que encontre hasta ahora es uno solo). Tendría que tener un sensor de entrada (Para que abra la barra), que el sensor despues de detectar esto se abra la barrerra (Con el servomotor) y luego pase por el ultimo sensor para que cierre la misma(Esta parte me falta)

El código que voy a pasar a continuación es lo que encontre hasta ahora. Lo que hace es que el sensor al detectar un objeto accione el servomotor. Lo que necesito es que un sensor accione el servomotor ( de 0 grados a 90 ) y luego con el otro sensor accione el servomotor nuevamente (Para que pase de 90 a 0)

#include <Ultrasonic.h>
#include <Servo.h>
#define echoPin 13
#define trigPin 12
 
Servo servo_objeto;
Ultrasonic ultrasonic(12,13);
 
int posicao_inicial_servo = 0;
int ledPin =  10;
/*-----------------------------------------*/
void setup()
{
  Serial.begin(9600);
  pinMode(echoPin, INPUT);
  pinMode(trigPin, OUTPUT);
  pinMode(ledPin, OUTPUT);
  servo_objeto.attach(9);
 
}
/*-----------------------------------------*/
void loop()
{
   digitalWrite(ledPin, LOW);
   servo_objeto.write(posicao_inicial_servo);
   int valor = func_distancia_ultrasonico();
    if(valor <=5)
    {
        func_controladora();
        delay(5000);
    }
 
  delay(500);
}
/*----------------------------------------*/
void func_controladora()
{
   func_liga_led();
   func_chama_servo();
}
/*----------------------------------------*/
void func_liga_led()
{
  digitalWrite(ledPin, HIGH);
}
/*----------------------------------------*/
void func_chama_servo()
{
  int posicao_final_servo = 90;
  servo_objeto.write(posicao_final_servo);
}
/*----------------------------------------*/
int func_distancia_ultrasonico()
{
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
 
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
 
  digitalWrite(trigPin, LOW);
  int distancia = (ultrasonic.Ranging(CM));
  Serial.print("Distancia em CM: ");
  Serial.println(distancia);
  return distancia;
}

A continuación, nose si les sera útil, una imagen de como quedaría con ese mismo código

A ver que te parece, cree un segundo objeto ultrasonic2 en los pines 8 y 9 que puedes cambiar por supuesto!

Ultrasonic ultrasonic2(8, 9);

También modifiqué la rutina de consulta del servo y del ultrasónico.
Llamo abrir al primer sensor que lo lleva a 90 grados y cerrar al segundo que lo vuelve a 0.
SUpongo que cerrar se hace cuando el vehículo esta en rango de 5 cmts.. ya verás y lo puedes modificar.

#include <Ultrasonic.h>
#include <Servo.h>
 
Servo servo_objeto;
Ultrasonic ultrasonic1(12,13);
Ultrasonic ultrasonic2(8, 9);
 
int posicao_inicial_servo = 0;
int ledPin =  10;
/*-----------------------------------------*/
void setup()
{
  Serial.begin(9600);
  pinMode(echoPin, INPUT);
  pinMode(trigPin, OUTPUT);
  pinMode(ledPin, OUTPUT);
  servo_objeto.attach(9);
  digitalWrite(ledPin, LOW);
  servo_objeto.write(posicao_inicial_servo);
}
/*-----------------------------------------*/
void loop()
{

  int abrir  = func_distancia(ultrasonic1);
  int cerrar = func_distancia(ultrasonic2);

  if (abrir <= 5)   {
     digitalWrite(ledPin, HIGH);
     func_servo(90); // servo a 90 grados
     delay(5000);
  }
  if (cerrar <= 5 ){
     digitalWrite(ledPin, LOW); // poner led al estado deseado
     func_servo(0); // retorna servo a 0 gados
     delay(5000);
  }
  delay(500);
}

/*----------------------------------------*/
void func_servo(int posicion)
{
  servo_objeto.write(posicion);
}

/*----------------------------------------*/
int func_distancia(Ultrasonic sensor){
  int distancia = (sensor.Ranging(CM));
  Serial.print("Distancia em CM: ");
  Serial.println(distancia);
  return distancia;
}

De verdad muchas muchas gracias, estoy ansioso por probarlo, mañana en la mañana lo voy a poner a prueba