Problemas con velocidad motores en vehículo salvaobstáculos

Al intentar programar un vehículo salvaobstáculos, de manera sistemática, ha surgido un problema con los motores de desplazamiento: éstos funcionan a diferentes velocidades a pesar de ser de características idénticas. Lo anterior ha sucedido tanto con servos de 360º como con motores DC.

El problema se ha intentado solucionar regulando la velocidad de los motores. En el caso de los servos buscando los ángulos, en uno y otro motor, que los hiciese funcionar a la misma velocidad. En el caso de los motores de DC, mediante una regulación por pulsos (PWM) de la velocidad. En ambos casos, una vez se ha conseguido, aparentemente, igualar las velocidades, éstas se desajustan de inmediato al parar y volver a poner en marcha el vehículo.

¿Podéis orientarme sobre qué tipo de error estamos cometiendo para tener de manera repetida el problema que os he explicado?

Considera usar algun motor DC con enconder incorporado y poder medir la velocidad en cada rueda y por ende ajustarla. Es lo mejor que se me ocurre. Por otro lado, suponiendo que una rueda gire mas rápido que la otra eso te hará girar en uno u otro sentido. para un vehículo salvaobstáculos, estas pretendiendo ser demasiado perfecto a la hora que el vehículo vaya en línea recta perfecta, algo que dificilmente ocurre. La única idea que se me ocurre es la que ya te dije, usar enconder para conocer la velocidad, o minimamente un sensor de efecto hall en cada rueda. La leve diferencia entre una y otra rueda te permitirá llevar el vehículo en linea mas o menos recta.

Muchas gracias, veo que el encoder es una solución posible. De hecho, los motores de uno de los vehículos salvaobstáculos (los que estamos probando son dos) llevan incorporada una rueda ranurada para un encoder óptico.

¿Me podríais indicar el tipo de sensor que ha de ser instalado y cómo sería el código para leer las velocidades de los motores?. Una vez hecho esto, comparar las velocidades y reducir o aumentar una de ellas puede ser (creo) relativamente fácil de programar.

Si tiene enconder ya tiene disponibles salidas. Solo debes conectarlas. Luego tendras que leer la velocidad como número de pasos de encoder por vuelta que te darán multiplicado por el perímetro de la rueda la distancia recorrida. Ambas deben moverse igual de modo que con que intentes mantenerlas parejas tienes tu linea recta asegurada.

Busca el motor en google: Arduino nombre_motor y ahi encontrarás toda la información que buscas