He contado con éxito los codificadores giratorios en la rueda de mi robot, así que esto no es un problema.
Mi problema es qué hacer con este número.
Básicamente, el mayor problema es que necesito que mi robot siga recto y quiero hacerlo utilizando solo dos codificadores (uno en cada rueda).
Incluso si envío la misma cantidad de energía a ambos motores, el robot no funciona correctamente. Es por eso que decidí usar codificadores, así que no importa la potencia de las baterías o las condiciones de los motores; el robot irá recto.
Entonces, ahora que he contado con éxito los "clics" en el codificador, necesito saber qué hacer con el número para asegurarme de que las ruedas de arrastre estén sincronizadas.
Este es el código que estoy usando (Arduino):
digitalWrite(dirMotO, HIGH);
digitalWrite(dirMotE, HIGH);
//digitalWrite(motO, HIGH);
analogWrite(motO, 150);
//digitalWrite(motE, HIGH);
analogWrite(motE, 150);
PololuWheelEncoders::getCountsAndResetM1();
PololuWheelEncoders::getCountsAndResetM2();
while(PololuWheelEncoders::getCountsM1()<clicks && PololuWheelEncoders::getCountsM1()<clicks){
if(PololuWheelEncoders::getCountsM1()>=clicks){
digitalWrite(motO, LOW);
}
if(PololuWheelEncoders::getCountsM2()>=clicks){
digitalWrite(motE, LOW);
}
}
Pensé que este código aseguraría que si una rueda llega a los conteos antes que la otra, se detendría y esperaría a que la otra rueda, pero el robot no vaya recto.
Realmente agradecería alguna ayuda con esto.
¡Gracias!