Código servomotor para robot esquiva obstáculos

Holaa, necesito ayuda, estoy haciendo un proyecto de computación que consiste en hacer un robot esquiva obstáculos, pero la cosa es que debe de tener un servomotor para que gire el sensor ultrasónico y detecte obstáculos e ilumine diferentes leds. Ya tengo casi todo, solo me falta el código para el servomotor pero mi no estoy teniendo la ayuda que necesito y encontré el foro, alguien me puede ayudar a entender a cómo incluir el servomotor??

Hi, I need help. I'm working on a computer project to build an obstacle-avoiding robot, but it needs a servo motor to rotate the ultrasonic sensor, detect obstacles, and illuminate different LEDs. I have almost everything; I just need the code for the servo motor, but I'm not getting the help I need. I found this forum, and I'm hoping someone can help me understand how to include the servo motor.

Este es el código/ This is the code:

const int Trigger = 2;
const int Echo = 3;

int t;
int tiempo= 5000;
#define MAX_DISTANCE 200

// Pines de motores
#define IN1 5 //motor B
#define IN2 6
#define IN3 10 //motor A
#define IN4 11

// Máquina de estados
enum EstadoRobot {
AVANZANDO, 
RETROCEDIENDO, 
ESQUIVANDO, 
ATASCADO
};

EstadoRobot estado = AVANZANDO;

// Control de movimiento
int velocidad = 150; // velocidad media
int distancia = 100;
int contadorFallo = 0;
unsigned long tiempoCambio = 0;

void setup() {

pinMode (IN1, OUTPUT) ; 
pinMode (IN2, OUTPUT) ; 
pinMode (IN3, OUTPUT) ; 
pinMode (IN4, OUTPUT) ;

Serial. begin (9600); 
detener () ;

Serial. begin (9600); 
pinMode (Trigger, OUTPUT) ; 
pinMode (Echo, INPUT) ; 
digitalwrite (Trigger, LOW);
pinMode (9, OUTPUT) ; 
pinMode (12, OUTPUT) ; 
pinMode (13, OUTPUT) ;
}

void loop() {

int d=0;
digitalWrite(Trigger, HIGH);
delayMicroseconds (10) ; 
digitalWrite (Trigger, LOW) ;

t = pulseIn(Echo, HIGH) ;

d = round ( t/59);
Serial print ("Distancia: ");
Serial. println(d);

mostrarEstado ();

switch (estado) {
case AVANZANDO:
if (distancia < 20) {
estado = RETROCEDIENDO;
tiempoCambio = millis();
contadorFallo++;
}
else {
}
moverAdelante (velocidad);
}
break;

case RETROCEDIENDO:
moverAtras (velocidad);
if (millis() - tiempoCambio > 400) {
detener ();
estado = ESQUIVANDO;
tiempoCambio = millis();
}

break;

case ESQUIVANDO:
if (distancia ‹ 20) {
girarAleatorio(); // cambiar dirección
tiempoCambio = millis();
}
else {
estado = AVANZANDO;
contadorFallo = 0;
}

// Si ha fallado más de 3 veces, considerarse atascado
if (contadorFallo >= 3) {
estado = ATASCADO;
tiempoCambio = millis();
}
break;

case ATASCADO:
detener () ;
Serial.printin("⚠︎ ATASCADO. Esperando reinicio…”)
delay(2000);
contadorFallo = 0;
estado = AVANZANDO;
break;
}

delay (70); // tiempo de espera entre ciclos

}

//=== FUNCIONES DE MOVIMIENTO ===
void moverAdelante (int velocidad) {
analogWrite(IN3, velocidad);
analogwrite(IN1, velocidad);
digitalWrite(IN4, LOW);
digitalWrite(IN2, LOW);
}

void moverAtras (int velocidad) {
analogWrite(IN4, velocidad);
analogwrite(IN2, velocidad);
digitalWrite (IN3, LOW);
digitalWrite(IN1, LOW);
}

void detener () {
digitalWrite(IN1, LOW);
digitalwrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW) ;
}

void girarAleatorio () {
detener ();
delay (200) ;
if (random (0, 2) == 0) {
// Giro izquierda
digitalWrite(IN1, LOW);
analogWrite (IN3, velocidad);
delay ( 350) ;
} else {
// Giro derecha
analogWrite (IN1, velocidad);
digitalWrite(IN3, LOW);
delay (350) ;
}
detener () ;
delay (100) ;
}

// === VISUALIZACIÓN POR LEDS ===
void mostrarEstado () {
switch (estado) {
case AVANZANDO:
digitalWrite (12, HIGH) ;
digitalWrite (13, LOW);
digitalWrite(9, LOW);
break;

case RETROCEDIENDO:
case ESQUIVANDO:
digitalWrite (12, LOW);
digitalWrite (13, HIGH);
digitalWrite(9, LOW) ;
break;

case ATASCADO:
digitalWrite(12, LOW);
digitalWrite (13, LOW);
digitalWrite(9, HIGH) ;
break;
}
}

Deja vu...

Moderador
Hilo cerrado.
Una de dos, o eres la misma persona y creaste dos cuentas o tu y tu amigo no se esforzaron mucho y publicaron lo mismo.

A la espera de una buena respuesta, no cierro el hilo pero queda pendiente de baneo.