Control de un motor con sensor ultrasónico

soy nuevo en esto de programar, para un proyecto necesito controlar un motor con un sensor ultrasónico, necesito que cuando el sensor ultrasónico detecte movimiento, el motor gire por 5 segundos y posteriormente tenga su tratoceso, de 3 segundos, intente hacer la programacion pero no se como hacer el retroceso, podria alguien auxiliarme por favor?

esto es lo que tengo, es para arduino nano

// Declaramos variable
const int echo= 8;
const int trigger = 9;
const int motor = 13;

// declaramos variables para calculos
unsigned int tiempo, distancia;

void setup()
{
Serial.begin(9600);
// establecemos las variables
pinMode(echo, INPUT);
pinMode(trigger, OUTPUT);
pinMode(motor, OUTPUT);
}

void loop()
{
digitalWrite(trigger, LOW);
delayMicroseconds(2);
digitalWrite(trigger, HIGH);
// definimos un tiempo de 5 microsegundos
delayMicroseconds(5);
digitalWrite(trigger, LOW);

tiempo = pulseIn(echo, HIGH);

// realizan calculo de tiempo y distancia para la recepcion de señales
distancia = tiempo / 58;

Serial.print(distancia);
Serial.println(" cm");
delay(200);

// el motor encendera cuando se cumpla la distancia desea
if (distancia <= 2) {
digitalWrite(motor, HIGH);
delay(500);
} else {
digitalWrite(motor, LOW);
}

Lee las normas del foro (1er o 2do hilo de cada sección) y edita tu código usando etiquetas </>

Hola Crghost.

Primero, creo que debes aportar algo mas de información de como controlas tu motor y que tipo es.

Igual te explico lo que interpreto y como yo lo haría.

Asumo que es un motor de potencia.
Entonces necesitas 2 relay para controlar su giro.
1 Relay giro derecha.
1 Reley giro izquierda.
También pueden ser contactores.

Entonces debes de configurar 2 salidas para poder controlar el sentido de giro.
Si el motor debe girar x tiempo en un sentido y x tiempo después en otro es una secuencia simple.
solo debes agregar a tu codigo que apaque la primer salida despues de cumplido el primer ciclo de tiempo y encienda la segunda salida por el oto x tiempo.
Saludos.