Mi problema es que tengo 3 pasos y, al utilizar la Biblioteca Accel, intenté hacer que se muevan de forma simultánea. En primer lugar, los dos pasos se mueven al mismo tiempo y luego un tercero continúa girando,
Sin embargo, cuando subo el código y el programa comienza a ejecutarse, los steppers comienzan a vibrar, como si estuvieran luchando por rotar y durante todo el programa los steppers vibraran en su lugar durante un cierto tiempo y luego continuaran girando. Además, mientras vibra, también cuenta esos pequeños movimientos como pasos.
Estos motores paso a paso tienen una clasificación de 2.5 A y estoy usando una fuente de alimentación de 12 V junto con un controlador de motor y un arduino.
Aquí está el controlador del motor que estoy usando:
Aquí está el paso a paso que estoy usando:
Aquí está el código que estoy usando:
// MultiStepper.pde
// -*- mode: C++ -*-
//
// Shows how to multiple simultaneous steppers
// Runs one stepper forwards and backwards, accelerating and decelerating
// at the limits. Runs other steppers at the same time
//
// Copyright (C) 2009 Mike McCauley
// $Id: MultiStepper.pde,v 1.1 2011/01/05 01:51:01 mikem Exp mikem $
#include <AccelStepper.h>
// Define some steppers and the pins the will use
AccelStepper stepper1(AccelStepper::FULL4WIRE, 5, 4, 3, 2);
AccelStepper stepper2(AccelStepper::FULL4WIRE, 9, 8, 7, 6);
AccelStepper stepper3(AccelStepper::FULL4WIRE, 13, 12, 11, 10);
void setup()
{
stepper1.setMaxSpeed(200.0);
stepper1.setAcceleration(200.0);
stepper1.moveTo(10000000);
stepper2.setMaxSpeed(300);
stepper2.setAcceleration(100.0);
stepper2.moveTo(600);
stepper3.setMaxSpeed(300);
stepper3.setAcceleration(100.0);
stepper3.moveTo(700);
}
void loop()
{
// Change direction at the limits
if (stepper3.distanceToGo() == 0)
stepper1.run();
stepper3.run();
stepper2.run();
}