stepper only vibrating, not moving

hello,

i’ve found a few posts on the subject, but none of them had a solution, so i’m trying again (i swear i’ll post the solution, if i find it :wink:

problem:
we’ve wired up the motor, run some standard example code. though the stepper doesn’t rotate - it just kind of vibrates, and seems as its attempting to move, but somehow stuck? it also got quite warm/hot.

picture:

setup:
stepper motor (SM-42BYG011-25)
arduino uno
easy driver 4.4

code i found in an example

//Following is the code:
#define DIR_PIN 2       //STEPPER PIN
#define STEP_PIN 3       //STEPPER PIN

void setup() { 
  pinMode(DIR_PIN, OUTPUT);
  pinMode(STEP_PIN, OUTPUT); 
}

void loop(){
  digitalWrite(DIR_PIN,HIGH);
  for(int i=0; i < 100; i++){
    digitalWrite(STEP_PIN, HIGH);
    delayMicroseconds(1000);
    digitalWrite(STEP_PIN, LOW);
    delayMicroseconds(1000);
  }
}

attempted solutions:
apart from quadruple-checking all wires and connections, i’ve tried switching the combination of wires that go from the breadboard to the stepper, but with no luck.

question:
am i doing someting wrong? is this a sign that something (stepper controller, motor) is broken?

any help would be MUCH appreciated :slight_smile:

thanks!

Is GND of the driver connected to the Uno GND? Yep!

Are you sure you have the right motor outputs to the correct stepper wires?

If it's getting too warm then the current going to the motor must be high. Try turning down the potentiometer then slowly bringing the current back up. Also, check you don't have a loose or bad connection going from the board to the motor.

Looking at the video someone did, 100 steps would be very little movement?

This video here:

http://www.youtube.com/watch?feature=player_detailpage&v=SCyGM2Tp37w#t=132

mentions 3200 steps, and it only does one rev.

That sounds like a 200 step per rev (1.8 degree) motor in 1/16th step mode (200*16=3200). The Big Easy Driver, for instance, defaults to 1/16th steps unless you tell it otherwise (http://bildr.org/2012/11/big-easy-driver-arduino/). 3200 steps sounds like a lot, but you should still see plenty of motion with 1/16th steps if the circuit is set up correctly.

garnitchique, the second link from google, when I search for "easy driver 4.4" is a page to more information than you can poke a stick at.

http://www.schmalzhaus.com/EasyDriver/

Reading that, it says

It defaults to 8 step microstepping mode. (So if your motor is 200 full steps per revolution, you would get 1600 steps/rev using EasyDriver.)

Is this what you are seeing?

There are 24 ways to wire up 4 wires, and only 8 of these will work. The key thing is that each winding's pair of wires goes to the same output channel. Normally you'd call them A and B, and the wires A+/A-/B+/B-.

I have those motors and I am driving them with the Pololu A4988 driver boards. There is a very clear wiring diagram here http://www.pololu.com/catalog/product/1182

Presumably the wiring must be the same for all driver boards.

...R

thank you all so much for the replies. i'm currently AFL (away from lab) but i'll look at all your suggestions next week. esp. the tiny default step size is something i haven't considered.

hello everyone, so it looks like i've had everything wired up correctly but the easy driver is somehow busted. i might have read the following note of caution a bit too late: "Do not connect or disconnect a motor while the driver is energized."

thank you all still, learning about the microstepping modes has been specially helpful.

I was having the same problem and when I decided to change the micro stepping i fried my BED. I added 10k resistors and am now messing with the code.
my set up:

my current code:

#include <AccelStepper.h>
#include <Stepper.h>
#define motorSteps 25000     // change this depending on the number of steps
                           // per revolution of your motor
#define motorPin1 8
#define motorPin2 9

// initialize of the Stepper library:
Stepper myStepper(motorSteps, motorPin1,motorPin2); 

void setup() {
  // set the motor speed at 60 RPMS:
  myStepper.setSpeed(60);
  
  // Initialize the Serial port:
  Serial.begin(9600);
  
}

void loop() {
  // Step forward 25000 steps (one rotation):
  Serial.println("Forward");
  myStepper.step(25000);
    delay(500);

  // Step backward 25000 steps (one rotation):
  Serial.println("Backward");
  myStepper.step(-25000);
    delay(500);

}

it’s running supper slow again. if any one has ideas on changing the speed I’ll take them lol

It looks like that board supports micro-stepping. You have no connections to the MSx connections. what is the board's default step size?

Have you tried writing some code to send steps directly without using the libraries?

Are those libraries compatible with that driver board? As far as I know some of the libraries are written to work with a h-bridge that would have 4 connections to the Arduino - one for each wire to the motor.

...R

yessir I got it from this site:

http://bildr.org/2012/11/big-easy-driver-arduino/

In the end it says adjust microstepping but that's it, no procedure just do it. I grounded the MS 1,2,3 pins to ground and I believe that's how I Fried my first driver. Now I will have each one go to a 10K resistor then to ground, so three 10k resistors total I only have doubts, should it go to arduino ground? or driver power ground?

I researched and I found that they come with a 1/16 step by default, I think it might be so for mine since it looks like 25000 turns one time, 200*16=3200 so I don't know how to check it's status. Should I connect MS 1,2,3 to arduino pins and send them LOW?

I may have sent it directly without the library in the beginning but that was Monday, everything is a fusing together, I finally gave up on searching and posted this, (enter frustration here lol) I will seek the code/format and get back to you with the status of the mission given. Thank you for the guidance, Immensely appreciated.

I do not know how to check it's compatibility, I saw many people using it and saying BEDs were compatible, and one who did their own library which made me a bit jelly but the input the time so I'm glad someone knows how to do this, it means I can too.

yeah one of my friends is making a project with an ARM and h-bridge, I couldn't get the item so i'm stuck till Monday.

I am making a self balancing robot but I can't find any guidance other than balancing robot for dummies http://forum.arduino.cc/index.php?topic=8871.0 on Pg 7 someone mentioned that they have seen it done with servos and DC but not steppers... nov 17, 2010...

should I just buy DC motors and it's driver? http://www.pololu.com/product/708 http://www.pololu.com/product/1443

I saw many people give up and buy new hardware and it worked... I don't want to quit but I want it done in 8 days...

Again thank you for your time and guidance.

I had a look at the BILDR link and the Sparkfun website for the Big Easy Driver and the datasheet that Sparkfun links to and the Allegro A4988 datasheet (all of which you could also have done !)

Yes the Big Easy Board seems to have all the MSx pins pulled high to give 1/16th stepping. Connecting all three directly to ground will give single stepping and won't cause any problems. All the grounds should be connected to each other.

When you figure out how to use it that should be an excellent board for driving stepper motors. It is very similar to the Pololu A4988 driver board except that the Pololu defaults to single stepping. A H-bridge would not be nearly so good.

...R

i too have the same problem :( plz help :~ :~ https://www.youtube.com/watch?v=Do9ORbQ-33M

Can you post your wiring diagram and your code?

And links to the specifications for the motor and driver board that you are using.

...R

berrylite:
i too have the same problem :frowning: plz help :~ :~
- YouTube

Power down, unplug motor and use a multimeter to check the windings are connected
correctly - a bipolar motor has two windings, and you must connect one winding to
the A outputs, the other to the B outputs or it cannot work.

Usually bipolar driver outputs are labelled A+/A-/B+/B-

Im sure its just the output pins combination for the motor drive conection. Check out the data sheet or test with a multimeter to find the 2 pairs of coils.

I guess the POs got it working or have given up (after more than 2 years :) )