Maximum Stepper Motor RPM with AccelStepper Library

Hi,

I am hoping to use a stepper motor for a small test rig that I am building. I need to vary the rotational speed of the motor quite accurately, and then just let the motor run. I do not need to change direction or run to a particular position, as I am planning on using it as the main rig drive motor. The code I have been trialing is shown below, which is directly from the Big Easy Driver webpage. It is working fine, and the rotational speed of the stepper motor is changing up to a point when I modify the MaxSpeed variable - anything over 15000 the motor RPM does not change. Is there anything else that I can change to increase the motor RPM? Or is a totally different approach required? I would like to run the motor at 800 RPM if possible - is this realistic with a stepper motor? I have checked the stepper motor data sheet, and this equates to approximately 2700 pulses per second which is within the range of the motor torque speed curve(s). I am using an Arduino Mega, Big Easy Driver and Nema 24 1.8 degree per step stepper motor for the setup.

I was hoping to use a stepper motor so that I could use a relatively simple open loop system.

Any help would be much appreciated.

Regards

MechEng86

#include <AccelStepper.h>

AccelStepper stepper(1, 11, 10);

long int pos= 1000000;

void setup()
{  
  stepper.setMaxSpeed(3000);  //200 Pulse per revolution Stepper Motor
  stepper.setAcceleration(1000);
}

void loop()
{
  if (stepper.distanceToGo() == 0)
  {
    delay(200);
    pos;
    stepper.moveTo(pos);
  }
  stepper.run();
}

What is the maximum speed you are currently achieving without missing any steps ?

I presume your driver is set to work at full-steps ?

What sort of load is on the motor ?
It may perform better with some load rather than no load.

You could try this simple stepper code which does not depend on any library - but you may need to introduce your own acceleration system. I suspect it would not need to be very sophisticated.

...R
Stepper Motor Basics

Is there anything else that I can change to increase the motor RPM?

15000 is pretty damned fast. I don't think you can achieve faster speeds. Gearing seems the best solution.

The maximum motor speed depends on the motor power supply voltage -- the higher the better. What are you using now?

Thanks for your replies.

Robin2

The Big easy driver defaults to 1/16th microsteps, so 3200 steps equates to 1 revolutions per second. In my original post I thought it was full steps - my error. I am starting to lose steps around 15000 (4.86 rps) and any change above this. There is no load on the motor at the moment, I am just trying to get the program to work. I have used a stepper motor in the past but only for slow rotational speeds. Thanks for the program, I will take a look at this later.

PaulS

With the 15000 being microsteps, I assume that this is acceptable? I already have a speed increase of 2:1 on the output of the stepper motor, maybe I need to re-evaluate the torque requirements of the rig and increase the gear ratio if I can.

jremington

I am currently using a 24V dc supply, as this was the one they used for testing in the data sheet. I don't have any other information than this to go on, only the one curve in the data sheet. Does this seem sensible? The stepper is 2 amp per phase, bipolar series and the 24V power supply is 5 amp. But I will see if I can obtain a higher voltage power supply to run a few further tests.

Thanks

MechEng86

MechEng86:
The Big easy driver defaults to 1/16th microsteps,

I know - but you have not said if you have set it to do full steps ?

The stepper is 2 amp per phase, bipolar series and the 24V power supply is 5 amp.

I doubt if a BigEasydriver (which uses an A4988 chip) can manage 2 amps without a heat sink and cooling fan. A 2 amp motor would really need a more powerful driver. The Pololu DRV8825 is a little better, but personally I would probably be looking for a driver than can handle 3 amps or a motor that requires less current.

I suspect 24v should work well.

Post a link to the datasheet for the motor.

...R