So I'm pretty brand new to Arduino's in general so I do apologize if its a simple mistake. But basically I'm trying to use the <Stepper.h> library to control my NEMA 14 motor on an arduino with a CNC shield and a A4988 driver. Specifically at this moment I am testing out this code:

 Stepper Motor Control - one step at a time

 This program drives a unipolar or bipolar stepper motor.
 The motor is attached to digital pins 8 - 11 of the Arduino.

 The motor will step one step at a time, very slowly.  You can use this to
 test that you've got the four wires of your stepper wired to the correct
 pins. If wired correctly, all steps should be in the same direction.

 Use this also to count the number of steps per revolution of your motor,
 if you don't know it.  Then plug that number into the oneRevolution
 example to see if you got it right.

 Created 30 Nov. 2009
 by Tom Igoe


#include <Stepper.h>

const int stepsPerRevolution = 200;  // change this to fit the number of steps per revolution
// for your motor

// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);

int stepCount = 0;         // number of steps the motor has taken

void setup() {
  // initialize the serial port:

void loop() {
  // step one step:

Now unfortunately when I run this code I can hear the motor whirring, but it doesn't revolve. I'm guessing that either I wired the motor incorrectly, or because I'm using a CNC shield the pins in the code should be different. Also, I've checked the voltage going into the driver in accordance with this website. I've also attached pictures below of my setup to just to make everything clear:

  1. Picture of CNC shield atop Arduino board with wires connected as follows: CNC shield

  2. Picture of Stepper motor I'm using: NEMA 14 Stepper motor

  3. Specifications of the NEMA 14 motor I'm using: Can be seen here

I'm sorry for the convoluted post but I am kind've stuck so any help would be greatly appreciated and if there's any more info needed to help clarify my problem I will update the post or reply to your comments. Thanks!

  • please, no pictures of text ... add the actual code to your post and delete the picture of the code – jsotola Jan 8 at 3:07
  • I didn't check your motor / driver, but you could check first if you are initialising myStepper correctly; also see here. What are the specs of your motor and shield? – ocrdu Jan 8 at 3:21
  • Sorry, changed the picture to the provided code from the stepper library examples – Geo Jan 8 at 3:45
  • The specs of the motor are outlined in the post at the very end, but to sum it up its a bipolar motor with 200 steps/rev. Also the code is provided code from the library so I don't think its incorrect, but I can try to change the initialization to what you linked and will update. Thanks. – Geo Jan 8 at 3:49
  • Edit: It was not the initialization, so I think it has to do with wiring or pins addressed. – Geo Jan 8 at 4:04

I would first check with a multimeter which pins from the the shield have voltage. Draw on a piece of paper the sequence of pin activated by the driver and check your motor connection. Probably you have just inverted two wires, this would also explain the whirring sound.

  • Interestingly enough, I think my wiring was correct, but the stepper library code that I was using didn't like the fact I was using a CNC shield because when I used code that needed no library and just hand-coded the pin steps it worked. Thanks for the reply though! – Geo Jan 8 at 20:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.