Go Down

Topic: Manejo de dos motores paso a paso (Read 929 times) previous topic - next topic

romangua

Nov 15, 2012, 03:27 pm Last Edit: Nov 15, 2012, 06:46 pm by romangua Reason: 1
Hola estoy teniendo problemas con el manejo de dos motores en simultaneo en mi arduino. Encontre una libreria "accelstepper" que supuestamente permite controlar dos motores pap, pero no se que estoy haciendo mal. Si alguien la entiende un poco mas y me puede dar una manoo!

Con este codigo funciona, pero giran los dos motores hacia el mismo lado y deberia girar uno para cada lado.
Si uso este metodo stepper1.moveTo(+1024); en forma independiendo con un solo motor cambiando el  signo, cambiar el sentido. Pero con los dos motores no lo hace.

Gracias!


#include <AccelStepper.h>

//motor 1 izquierda
int motorPin1 = 53; //verde rayado    //Azul - 28BYJ48 pin 1
int motorPin2 = 51; //verde           //Rosa - 28BYJ48 pin 2
int motorPin3 = 49; //azul            //Amarillo - 28BYJ48 pin 3
int motorPin4 = 47; //azul rayado     //Naranja - 28BYJ48 pin 4

//motor 2 derecha
int motorPin5 = 45; //verde rayado    //Azul - 28BYJ48 pin 1
int motorPin6 = 43; //verde           //Rosa - 28BYJ48 pin 2
int motorPin7 = 41; //azul            //Amarillo - 28BYJ48 pin 3
int motorPin8 = 39; //azul rayado     //Naranja - 28BYJ48 pin 4

// The sequence 1-3-2-4 required for proper sequencing of 28BYJ48
AccelStepper stepper1(AccelStepper::FULL4WIRE, motorPin1, motorPin3, motorPin2, motorPin4);
AccelStepper stepper2(AccelStepper::FULL4WIRE, motorPin5, motorPin7, motorPin6, motorPin8);

void setup()
{
  Serial.begin(9600);
}

void loop()
{
   izquierda();
}

void izquierda()
{
   //Serial.print("//////////////////////////////// I Z Q U I E R D A  ///////////////////////////////////");

   if (stepper1.distanceToGo() == 0)
   {
     delay(100);
     stepper1.setCurrentPosition(0);
     stepper1.moveTo(+1024);
     stepper1.setMaxSpeed(300);
     stepper1.setAcceleration(100);
   }   
   //motor 2 Derecha
   if (stepper2.distanceToGo() == 0)
   { 
     delay(100);
     stepper2.setCurrentPosition(0);
     stepper2.moveTo(-1024);
     stepper2.setMaxSpeed(300);
     stepper2.setAcceleration(100);
   }
   while (stepper1.distanceToGo() != 0)
   {
     Serial.println(stepper1.distanceToGo());
     Serial.println(stepper2.distanceToGo());
     stepper1.run();
     stepper2.run(); 
   }
   Serial.println(stepper1.distanceToGo());
   Serial.println(stepper2.distanceToGo());
}

romangua

Modifique el codigo! Uppppp necesito una mano gente

Go Up