Ayuda para el desarrollo de un código

Hola, estoy intentando hacer un código en c++ para arduino para controlar 6 motores mediante tres modulos l298n, los motores estarán colocados en dos columnas, es decir como un coche con 6 ruedas, donde hay 3 sensores de ultrasonidos, si alguno de estos detecta un objeto a una distancia de menos de 10 cm los motores deben retroceder y girar a la derecha o a la izquierda de manera aleatoria y comprobar si hay algun objeto a 10cm en caso de que lo hubiese el coche deberia volver a girar un angulo aleatorio hasta que no se encuentre ningun obstaculo a menos de 10 cm, una vez que tenga el camino despejado debe ir recto hasta que se encuentre otro obstaculo y repetir la acción. El código está pensad para un arduino mega, y con chat gpt he conseguido solo este trozo de código:

// Definición de pines de los módulos L298N
const int ena1 = 3;
const int in1 = 4;
const int in2 = 5;
const int ena2 = 6;
const int in3 = 7;
const int in4 = 8;
const int ena3 = 9;
const int in5 = 10;
const int in6 = 11;

// Definición de pines de los sensores de ultrasonido
const int trig1 = 12;
const int echo1 = 13;
const int trig2 = 14;
const int echo2 = 15;
const int trig3 = 16;
const int echo3 = 17;

// Distancia límite para retroceder y girar
const int limite_distancia = 10;

void setup() {
  // Configuración de los pines de los módulos L298N como salidas
  pinMode(ena1, OUTPUT);
  pinMode(in1, OUTPUT);
  pinMode(in2, OUTPUT);
  pinMode(ena2, OUTPUT);
  pinMode(in3, OUTPUT);
  pinMode(in4, OUTPUT);
  pinMode(ena3, OUTPUT);
  pinMode(in5, OUTPUT);
  pinMode(in6, OUTPUT);

  // Configuración de los pines de los sensores de ultrasonido como entradas
  pinMode(trig1, OUTPUT);
  pinMode(echo1, INPUT);
  pinMode(trig2, OUTPUT);
  pinMode(echo2, INPUT);
  pinMode(trig3, OUTPUT);
  pinMode(echo3, INPUT);

  // Inicialización de la comunicación serial para el monitoreo de la distancia
  Serial.begin(9600);
}

void loop() {
  // Lectura de la distancia del sensor 1
  digitalWrite(trig1, LOW);
  delayMicroseconds(2);
  digitalWrite(trig1, HIGH);
  delayMicroseconds(10);
  digitalWrite(trig1, LOW);
  int distancia1 = pulseIn(echo1, HIGH) / 58;

  // Lectura de la distancia del sensor 2
  digitalWrite(trig2, LOW);
  delayMicroseconds(2);
  digitalWrite(trig2, HIGH);
  delayMicroseconds(10);
  digitalWrite(trig2, LOW);
  int distancia2 = pulseIn(echo2, HIGH) / 58;

  // Lectura de la distancia del sensor 3
  digitalWrite(trig3, LOW);
  delayMicroseconds(2);
  digitalWrite(trig3, HIGH);
  delayMicroseconds(10);
  digitalWrite(trig3, LOW);
  int distancia3 = pulseIn(echo3, HIGH) / 58;

  // Retroceso y giro aleatorio si se detecta un objeto a menos de 10cm de distancia
  if (distancia1 < limite_distancia || distancia2 < limite_distancia || distancia3 < limite_distancia) {
    // Detener los motores
    analogWrite(ena1, 0);
    analogWrite(ena2, 0);
    analogWrite(ena3, 0);
    delay(1000);

    // Girar aleatoriamente hacia la izquierda o la derecha
    int direccion = random(2);
    if (dirección ==  


(aquí debe ir a mi entender  "if (rDirection == 0) {
    angulo = randomAngle;
    girarDerecha();
  } else {
    angulo = -randomAngle;
    girarIzquierda();
  }"

Pero no se como terminar este código para que cuando gire vuelva a comprobar y siga recto

Pídele a chatGPT que te lo termine.

Saludos

Moderador:
Por favor, lee las Normas del foro
Edita tu título, usa uno que no tenga justamente lo que se considera un título inútil.
Ver en las normas como poner títulos.
Punto 5 de las normas.
Tienes 3 dias para editar el título de locontrario te sancionaré con un baneo de 1 dia por no seguir las normas del foro.
Contados a partir de hoy 13/04/23 11:00 hs Arg.

Sobre el uso del código de chatgpt en el foro:

Si está utilizando la salida AI en su proyecto y tiene problemas con él, se supondrá que está pidiendo ayuda a los miembros del foro con el código que no creó, no entiende y que probablemente nunca funcionó para usted o alguien mas. Los miembros del foro generalmente están felices de ayudarlo con su código, muchos no están tan interesados ​​en ayudar a una IA con su código, especialmente si no es la IA la que solicita ayuda.

Creo que sería mejor si aprendes a programarte a ti mismo. Comience con proyectos simples.

En lo personal creo que el uso de la IA es como plagiar un trabajo y no profundizo el tema porque es una opinión personal.
Si le pides a una iA que haga algo y no funciona entonces sigue con la IA.
La comunidad en general no te va a ayudar o tal vez si, yo no respondo por la comunidad, solo respondo por mi y no estoy de acuerdo con la IA para hacer trabajos.
Si me preguntas, la has usado? Si, una vez y no me gustó la respuesta aunque lo hizo bastante bien.
Considero que la IA va a quitarnos el trabajo a mediano o largo plazo y por eso mi postura negativa hacia su uso.

Tiene 6 ruedas y 3 sensores jjj estas haciendo un robot laberinto? o un robot evasor de objetos?
Talvez ya tienes manera de probar este código, algún prototipo?

Dependiendo de esto se te podria ayudar con la lógica porque como veo el código que te dio CHATGPT hace que si cualquiera de los sensores encuentra un objeto a menos de 10cm hace que todos los motores se detengan, esto si es un robot laberinto no va a funcionar, y si es un evasor de objetos tampoco ya que solo interesa que si el sensor frontal detecta un obstáculo se detengan los motores.