Pages: [1]   Go Down
Author Topic: Manejo de dos motores paso a paso  (Read 744 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 14
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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());
}
« Last Edit: November 15, 2012, 12:46:51 pm by romangua » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 14
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Modifique el codigo! Uppppp necesito una mano gente
Logged

Pages: [1]   Go Up
Jump to: