Hola amigos,
tengo una duda respecto a cómo mover unos motores para que su movimiento genere una curva sinuosa.
Estoy utilizando la librería AccelStepper.h para moverlos, hasta ahí OK, soy capaz de darle ordenes y moverlos, según su posición relativa hacer que cambien de dirección.
El problema es que necesito algo concreto, que es hacer la curva de seno.
¿Como podría darle la orden a un motor para que desde posición 0 se mueva a gire hasta 2048, desde 2048 gire hasta -2048 y vuelva a cero.
También querría saber como hacer una orden para cada motor que genere un desfase int offset = 5; entre ellos. No se si se puede hacer mediante una formula, que genere el movimiento.
Este es el código que tengo, lo que hago es de la posición inicial que es todos en 0 "dibujo" con posiciones escritas a mano la curva y despues trato de moverlos, pero hacen lo que no quiero que hagan. (no pongo parte del codigo porque es un proyecto mas amplio y esto es solo una parte concreta, espero lo entendais)
int sube = 2048;
int inicio = 0;
int baja = -2048;
int arriba = 2048;
int abajo = -2048;
void loop(){
if (motores == true){
formaseno();
}
if (m1.currentPosition() == 0){
m1.moveTo(sube);
}
if (m3.currentPosition() == 683){
m3.moveTo(sube);
}
if (m5.currentPosition() == 1366){
m5.moveTo(sube);
}
if (m7.currentPosition() == 2048){
m7.moveTo(baja*2);
}
if (m9.currentPosition() == 1366){
m9.moveTo(baja*2);
}
if (m11.currentPosition() == 683){
m11.moveTo(baja*2);
}
if (m1.currentPosition() == arriba){
m1.moveTo(baja*2);
}
if (m3.currentPosition() == arriba){
m3.moveTo(baja*2);
}
if (m5.currentPosition() == arriba){
m5.moveTo(baja*2);
}
if (m7.currentPosition() == abajo){
m7.moveTo(sube*2);
}
if (m9.currentPosition() == abajo){
m9.moveTo(sube*2);
}
if (m11.currentPosition() == abajo){
m11.moveTo(sube*2);
}
}
void formaseno(){
m1.moveTo(0);
m3.moveTo(683);
m5.moveTo(1366);
m7.moveTo(2048);
m9.moveTo(1366);
m11.moveTo(683);
motores = false;
}
Gracias!