En primer lugar, dado que vengo del mundo de la programación web, soy bastante nuevo en la electrónica y tal vez algunas de las cosas que estoy haciendo están mal o podrían mejorarse, por lo que cualquier pista es muy apreciada.
Estoy construyendo un robot/oruga con 4 ruedas. Cada rueda está conectada directamente a un Motor DC de 6V 210RPM con codificadores.
Tengo un controlador de motor de doble vía con 2 puentes H
El controlador se alimenta de una batería LiPo 2S de 7,4 V
2 motores derechos están conectados en paralelo a un puente H y 2 motores izquierdos al segundo puente H del controlador.
Estoy controlando los motores a través de un arduino UNO enviando señales PWM a los PWM del controlador.
Dado que los motores tienen codificadores, pude leer las rotaciones de un codificador de cada lado (uno desde la izquierda y otro desde la derecha) y ajustar dinámicamente el PWM para el otro lado, tomando el lado más lento como maestro y el más rápido como un esclavo, para forzarlos a moverse en sincronía.
El problema que tengo es que los motores que están conectados en paralelo se mueven a diferente velocidad, aunque reciben la misma señal de voltaje/PWM. Además, sus especificaciones son idénticas.
Entiendo que mecánicamente no son idénticos y diferentes factores pueden afectar su desempeño, pero ¿cómo solucionar este problema? ¿Es posible?
Aquí están mis ideas:
Tal vez haya otras formas adecuadas de resolver el problema de las que no tengo idea. Pero por la gran cantidad de proyectos similares que encontré en Internet, supongo que tienen una solución para esto. ¿O tal vez a nadie le importa que la rueda delantera del lado derecho gire más lento que la rueda trasera del mismo lado?
Los motores de CC siempre funcionarán a diferentes velocidades.
Si tiene dos motores en paralelo en un controlador y solo detecta la velocidad de uno de ellos, entonces la velocidad del otro motor será impredecible siempre y cuando los motores no estén conectados mecánicamente. No hay una forma real de corregir eso usando la electrónica sin agregar controladores y retroalimentación separados para cada motor.
Si los motores son ruedas motrices que tocan el suelo y la diferencia de par entre ellos no es lo suficientemente grande como para hacer que las "llantas" patinen, esto puede no ser un problema ya que el contacto con el suelo actuará como un acoplamiento mecánico entre los motores. Nota: Así es como las ruedas motrices de su automóvil se mantienen a la misma velocidad a pesar de pasar por una caja de cambios diferencial. Sin embargo, la pérdida de contacto con el suelo puede causar algunos efectos extraños.
De lo contrario, es prudente colocar una correa de distribución u otro enlace mecánico entre los ejes del motor para mantenerlos juntos. Si su rastreador tiene pistas, esto no es un problema.
En algunos casos, puede ser posible compartir el controlador de ambos motores. Es decir, tenga un arreglo de conmutación que canalice la energía a cada motor un porcentaje del tiempo, dando más porcentaje al motor más lento. Sin embargo, eso, por supuesto, reduciría el rendimiento de cada motor en un 50% cuando ambos están en velocidad. Pero eso se complica y no compra mucho en comparación con tener un accionamiento individual para los cuatro motores.
LHigh = (L1 > L2 ? L1 : L2); RHigh = (R1 > R2 ? R1 : R2); SideToLowerPWM = (LHigh < RHigh ? 'RIGHT' : (LHigh > RHigh ? 'LEFT' : 'NONE'));
Tendré que tomar las velocidades más altas de cada lado, porque cuando una de las ruedas se detenga, la oruga se detendrá. También se necesita un cheque para 0
PlasmaHH
gsdaemon