Sumo Robot con problemas!

Compre 2 D444 modulo driver motor L298N, 2 D178 Module Ultra Sonic Sensor hc-sr04, 2 d424 modulo de linha robot smart car tcrt5000 por arduino UNO.

El ultra sonic no detecta los obstáculos para poder investir y tirar fuera del judo al otro robot que podría ser el problema?

//Declaración de los pines
int sensDel = 12; //sens IR delantero
int sensTras = 13; //sens IR trasero
int enA = 2;
int enB = 3;
int motorR1 = 4;
int motorR2 = 5; //motor derecho
int motorL1 = 7;
int motorL2 = 6; //motor izquierdo
int sensFder = 8; //sens frontal derecho
int sensFizq = 9; //sens frontal izquierdo
int sensTder = 11; //sens trasero derechp
int sensTizq = 10; //sens trasero izquierdo

float distancia,tiempo;

void setup() {
 Serial.begin(9600);
 pinMode(enA,OUTPUT);
 pinMode(enB,OUTPUT);
 pinMode (motorR1, OUTPUT);
 pinMode (motorR2, OUTPUT);
 pinMode (motorL1, OUTPUT);
 pinMode (motorL2, OUTPUT);
 pinMode (sensFder, INPUT);
 pinMode (sensFizq, INPUT); 
 pinMode (sensTder, INPUT);
 pinMode (sensTizq, INPUT);
delay(5000);
}

void loop() {

float buf1, buf2, valord, valort;
 valord=analogRead(sensDel);
 valort=analogRead(sensTras);
 buf1=valord*500/1024;
 buf2=valort*500/1024;

//Algoritmo para el ultrasonido  

digitalWrite(sensFder,LOW);
delayMicroseconds(2);
digitalWrite(sensFder,HIGH);
delayMicroseconds(10);
digitalWrite(sensFder,LOW);
tiempo=pulseIn(sensFizq,HIGH);
distancia=(tiempo/2)/29.1;
Serial.print(distancia);
Serial.print("cm");
Serial.println();
digitalWrite(sensTder,LOW);
delayMicroseconds(2);
digitalWrite(sensTder,HIGH);
delayMicroseconds(10);
digitalWrite(sensTder,LOW);
tiempo=pulseIn(sensTizq,HIGH);
distancia=(tiempo/2)/29.1;
Serial.print(distancia);
Serial.print("cm");
Serial.println();

//Le damos un valor al PWM
analogWrite(enA,150);
analogWrite(enB,150); 

//El bot se activa al presionar cualquier sensor de impacto 

//si toca detecta linea blanca adelante retrocede, gira 4s. a la izquierda
//y continua haca atrás
 
 if(buf1 >= 480) //mayor o igual que 480 es negro
 {
 atras();
 izquierda();
 delay(400);
 atras();
 }

 //si detecta linea blanca atras avanza, gira 4s a la izquierda
 //y continua haca adelante


  if(buf2 >= 480) //mayor o igual de 480 es negro
 {
 adelante(); 
 izquierda();
 delay(400);
 adelante();
 }


 //----------- ACCIONES IMPACTO-------------
 if(digitalRead (sensFder)==HIGH )
 {
 golpeFder();
 }

 if(digitalRead (sensFizq)==HIGH)
 {
 golpeFizq(); 
 }

 if(digitalRead (sensTder)==HIGH)
 {
 golpeTder(); 
 }

 if(digitalRead (sensTizq)==HIGH)
 {
 golpeTizq();
 } 
//Colocamos el valor de distancia al PWM, se puede jugar con esto
if(distancia<5)
{
analogWrite(enA,254);
analogWrite(enB,254);
}
delay(500);
}



//---------------MOVIMIENTOS--------------
int adelante()
{
 digitalWrite (motorR1, LOW); 
 digitalWrite (motorR2, HIGH);
 digitalWrite (motorL1, HIGH);
 digitalWrite (motorL2, LOW);
}

int atras()
{
 digitalWrite (motorR1, HIGH); 
 digitalWrite (motorR2, LOW);
 digitalWrite (motorL1, LOW);
 digitalWrite (motorL2, HIGH);
}

int izquierda()
{
digitalWrite (motorR1, LOW); 
digitalWrite (motorR2, HIGH);
digitalWrite (motorL1, LOW);
digitalWrite (motorL2, HIGH);
delay(100);
}

int derecha()
{
digitalWrite (motorR1, HIGH); //L
digitalWrite (motorR2, LOW);
digitalWrite (motorL1, HIGH);
digitalWrite (motorL2, LOW);//L 
delay(100);
}

//--------------GOLPES-------------------

int golpeFder()
{
 atras();
 delay(1000);
 derecha();
 delay(300);
 adelante();
}

int golpeFizq()
{
 atras();
 delay(1000) ;
 izquierda();
 delay(300);
 adelante();
}

int golpeTder()
{
 adelante();
 delay(1000);
 izquierda();
 delay(300);
 atras();
}

int golpeTizq()
{
 adelante();
 delay(1000);
 derecha();
 delay(300);
 atras();
}

Pon las imágenes para que se vean directamente en el foro Las normas ayudan mucho y entrar en este enlace tambien

Ahora si que da pereza ponerse a seguir esas lineas todas chuecas.

Pero por lo que puedo ver es que la fuente de 5 voltios no esta por ningún lado pero eso puede ser cuestión del diagrama o en realidad funciona mientras esta conectada la tarjeta a la computadora nomas.

Dejando de lado eso y asumiendo que no hay problemas de conexión pasamos al código en si

Esta parte tiene un conflicto bien grande si es que no me equivoco yo

int sensDel = 12; //sens IR delantero
int sensTras = 13; //sens IR trasero

¿Cual es el conflicto? Arduino tiene pines PMW que son salidas digitales que tratan de comportarse como salidas análogas pero no lo son. Los pines digitales cualesquiera que sean, no son capases de leer valores análogos como los que provienen de los IR. En su lugar se usan los pines análogos A0, A1, ... A5. Estos pines de 10 Bit de resolución si miden la variación de voltaje que se traducen en distancia con matemáticas en el programa de arduino.

En conclusión con esta parte del código es usar A0 y A1 como pines en sensDel y en sensDel respectivamente o cualquier pin marcado como A

Seria algo así

define sensDel  A0 //sens IR delantero
int sensTras  A1 //sens IR trasero

Alguien que me corrija si no es así

Luego el problema de los ultrasonidos Hay no puedo comentar mucho. Solo que dando clic aqui veras la librería y las funciones que utilice cuando moneaba con esos sensores

El valor que le das a los PWM seria bueno que estén en setup después de las instrucciones que ya tienes

Ahora con la logica de todo el codigo

digitalWrite(sensFder,LOW);
delayMicroseconds(2);
digitalWrite(sensFder,HIGH);
delayMicroseconds(10);
digitalWrite(sensFder,LOW);
tiempo=pulseIn(sensFizq,HIGH);
distancia=(tiempo/2)/29.1;
Serial.print(distancia);
Serial.print("cm");
Serial.println();
digitalWrite(sensTder,LOW);
delayMicroseconds(2);
digitalWrite(sensTder,HIGH);
delayMicroseconds(10);
digitalWrite(sensTder,LOW);
tiempo=pulseIn(sensTizq,HIGH);
distancia=(tiempo/2)/29.1;
Serial.print(distancia);
Serial.print("cm");
Serial.println();

sensFder en setup esta definida como INPUT y en esta parte del código la tratas como OUTPUT

Revisa el link en la parte que escribo de que no tengo mucho que decir de los ultrasonidos Y si quieres trabajar con el mismo prncipio de tu programa para saber la distancia con ultrasonidos mira Esta otra pagina