He montado un Slider para motorizar una cámara y para ello he utilizado dos motores paso a paso, uno, el que me venía con el kit de makeblock (428BYG) y otro que ya tenía yo (42BYGHM809). Los pretendo controlar con la placa MegaPi con sus respectivos drivers.
De forma individual me funcionan, si en el código de mblock primero configuro un puerto funciona, sólo cuando quiero que funcionen los dos al mismo tiempo sólo me funciona el 42BYGHM809 instalado en el puerto 1. La placa la alimento con una fuente de alimentación regulada a 12v y 3A. No sé dónde puede estar el problema.
¿Podría deberse a que sean dos motores paso a paso distintos?
Gracias de antemano.

He montado un Slider para motorizar una cámara y para ello he utilizado dos motores paso a paso, uno, el que me venía con el kit de makeblock (428BYG) y otro que ya tenía yo (42BYGHM809). Los pretendo controlar con la placa MegaPi con sus respectivos drivers. De forma individual me funcionan, si en el código de mblock primero configuro un puerto funciona, sólo cuando quiero que funcionen los dos al mismo tiempo sólo me funciona el 42BYGHM809 instalado en el puerto 1. La placa la alimento con una fuente de alimentación regulada a 12v y 3A. No sé dónde puede estar el problema. ¿Podría deberse a que sean dos motores paso a paso distintos? Gracias de antemano.

Hola Borja: no se lo que te puede estar pasando, por lo que cuentas el problema puede estar en el código. Te voy a adjuntar trocitos de un programa que utilizaba varios motores PAP, tal vez te den alguna pista de como solucionarlo ya que en principio deberían funcionar los dos a la vez sin problemas.

MeStepperOnBoard PAP[3] = {MeStepperOnBoard(PORT_1),
                           MeStepperOnBoard(PORT_2),
                           MeStepperOnBoard(PORT_3)};
void setup() {
Serial.begin(115200);
  for(int i=0;i<4;i++){
    PAP[i].setSpeed(vel);
    PAP[i].setMaxSpeed(vel);
    PAP[i].setAcceleration(vel);
    PAP[i].setMicroStep(pasos);
    PAP[i].enableOutputs();
    PAP[i].setCurrentPosition(0);
  } 
}
void mueveAltura( int w){  //  w pluma, piso 1,2,3,4,5
  PAP[1].moveTo(-w);
  PAP[2].moveTo(w); 
  while (PAP[2].currentPosition() != w) {
    PAP[1].run();
    PAP[2].run();
  }
}

````
Espero que te puedan servir

Suerte

J. Hilario

Hola Borja: no se lo que te puede estar pasando, por lo que cuentas el problema puede estar en el código. Te voy a adjuntar trocitos de un programa que utilizaba varios motores PAP, tal vez te den alguna pista de como solucionarlo ya que en principio deberían funcionar los dos a la vez sin problemas. ```` MeStepperOnBoard PAP[3] = {MeStepperOnBoard(PORT_1), MeStepperOnBoard(PORT_2), MeStepperOnBoard(PORT_3)};```` ```` void setup() { Serial.begin(115200); for(int i=0;i<4;i++){ PAP[i].setSpeed(vel); PAP[i].setMaxSpeed(vel); PAP[i].setAcceleration(vel); PAP[i].setMicroStep(pasos); PAP[i].enableOutputs(); PAP[i].setCurrentPosition(0); } }```` ```` void mueveAltura( int w){ // w pluma, piso 1,2,3,4,5 PAP[1].moveTo(-w); PAP[2].moveTo(w); while (PAP[2].currentPosition() != w) { PAP[1].run(); PAP[2].run(); } } ```` ```` Espero que te puedan servir Suerte J. Hilario
228
vistas
1
respuestas
2
seguidores
vista previa (en vivo)
introduzca al menos un 10 caracteres
Advertencia: Mencionaste a %MENTIONS%, pero ellos no pueden ver el mensaje y no serán notificados
Guardando...
Guardado
Todos los posteos de este tema serán borrados ?
Borrador pendiente ... Click para continuar editando
Descartar borrador