Stepper NEMA17 Speed

Hello recently got into using arduino (Raspberry Pi before).

I had a question regarding the speed/ step.

I currently have a Stepper Motor NEMA17 (17HS4401) connected to an EasyDriver 4.4 and Arduino. I can get the motor to run. But I am not sure on some things.

The voltage measured across the board is about 2V.

Here is the code:

#include <Stepper.h>
const int stepsPerRevolution = 200; // change this to fit the number of steps per revolution of motor
// Define the ports on the arduino
const int steps = 2;
const int direct = 3;
// initialize the stepper library on pins:
Stepper steppermotor(stepsPerRevolution, steps, direct);
void setup() {

  • // nothing to do inside the setup*
    }
    void loop()
    {
  • // Slow CW Rotation*
  • steppermotor.setSpeed(2000); *
  • steppermotor.step(stepsPerRevolution);*
    }

The steppermotor.setSpeed(2000) is where I am having trouble. A value of 2000 seems to give 1 full rotation in ~1 second and 3000 is around 0.6 seconds. This is just by watching and using a stopwatch but it is fairly consistent.

Here is the stepper I am using - (17HS4401 Datasheet - 40mm, 2 Phase Hybrid Stepper Motor

I was hoping someone could explain why these values give these rotation speeds.

matrim_cauthon91:
The voltage measured across the board is about 2V.

What board, and exactly where is the measurement being made?

You need to tell us the details of your stepper motor power supply (volts and amps). If you want high speed you need a high voltage power supply - within the limit acceptable to the A4988.

Your link suggests that the motor requires 1.7 amps which is probably a bit too much for an A4988. A DRV8825 would be a better choice.

The standard Stepper library takes speed as RPM and 2000 RPM would be very high for a stepper motor. Also, for high speed it is essential to accelerate the motor so you need the AccelStepper library or you need to write your own acceleration code.

These links may be of interest
Stepper Motor Basics
Simple Stepper Code
Simple acceleration code.

...R

I am using the Arduino Uno with this EasyDriver - EasyDriver Stepper Motor Controller - RobotShop

I am making the measurements from the TP1 to GRND (next to the Step/Dir connections) on the EasyDriver.

The Power supply is 12V and 3000 mA.

Thanks for your help.

I made a mistake. You are using an Easydriver that uses the A3967 chip. (I had been thinking of a BigEasydriver). The A3697 is only capable of supplying up to 750mA so it is quite unsuitable for your 1.7 amps stepper motor.

...R