@Maxi2393 en tu apuro obvias pasos que para nosotros son fundamentales.
Tienes un problema de hardware y me muestras el parche con el que ahora no se manifiesta, el problema pero seguimos sin ver todo el problema.
Aca no podemos leer mentes y sin esquema se hace dificil entender TODO el contexto electrónico y de programación.
Aún con todo eso, sabes que es dificil responder.
No sabemos como controlan los motores, si usan puentes H o no. No sabemos como alimentan todo.
No sabemos como hicieron el impreso. Solo tenemos el código general y como parchearon el problema aparentemente.
Entiendo que con poco tiempo es dificil responder a estos pedidos porque implica dedicar el escaso tiempo que tienen a algo que no sabes si te dará o no resultados.
Para la proxima aprendan a usar un cronograma de tiempos y cumplirlo y no llegarán a la fecha de entrega en esta situación.
Se que no te gustará este comentario pero verás con el tiempo que es lo mejor.
El esquema no tiene porque ser hecho con un CAD/CAE, lo haces a mano alzada y le tomas una foto y lo posteas bien.
Veo que no has leído las normas tampoco y porque el último código tuve que editarlo yo.
Por favor... te envio privado y vean como se postea, código/errores, imagenes y enlaces.
Su participación en el foro no va a terminar ni hoy ni mañana.
NOTA: yo iba a particiipar en el concurso y decidi hacerlo en año proximo porque solo tenia un mes cuando me enteré. De modo que vean lo que es hacer una previsión para un trabajo que se supone debe hacerlo bien.
Respuesta a tu código
Lo que implementan ahi es una especie de rutina antirebote de 5mseg.
Si tu robot esta lleno de delay() ahora entiendo como tienes este y otros problemas.
Acaso tus profesores no te enseñaron a NO USAR delay() en un robot?
Delay detiene el funcionamiento, 5 mseg de tu sensor detectando linea mas 5 de la posible detección del oponente son 10 mseg que no responde a otras cosas y si sigo sumando imagina los momentos de NO HAGO NADA que tiene tu robot.
Es algo que no visualizas pero es totalmente negativo.
Ya es tarde para cambiarlo.
Ojala puedas mostrarnos un esquema.
Aisla todo (me refiero a que simplifiques tu código a minima expresión). comienza con un motor, pruebalo en tu PCB y observa si trabaja bien, ve aumentando paso a paso los elementos utilizados hasta dar con aquel que te genera problemas.