Arduino Forum

Using Arduino => Motors, Mechanics, and Power => Topic started by: organnoise on Jan 16, 2013, 08:24 pm

Title: Stepper Motor Vibrating
Post by: organnoise on Jan 16, 2013, 08:24 pm
Hi I have set up a circuit to control a stepper motor using an H-bridge, I followed the instructions on this website. I've seen this diagram on a couple other sites so I trust it is correct. But once I try to make the Stepper rotate it just vibrates. I have no idea what I have done wrong!

Here is the motor vibrating :

https://www.youtube.com/watch?v=WoPYHDA32Zk

Here is the Tutorial I followed:

http://itp.nyu.edu/~gg964/blog/archives/1369



I don't know what I've done wrong I've rearranged the wiring every which way and no matter how I arrange it the motor vibrates, if I slow it down to a snails pace the motor takes three steps forward and then on the 4th step it jumps back to where it was in step 1.

I have sent it a loop saying this:

1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1

Any help would be appreciated, thanks!
Title: Re: Stepper Motor Vibrating
Post by: kf2qd on Jan 16, 2013, 10:45 pm
try this pattern - 1000  0010  0100  0001

Arduino pins 2 & 3 are controlling 1 winding. pins 4 and 5(Ooops - got the second set of pins wrong...) are controlling the other winding. So the motor is buzzing becase you start in one direction with pin 2 and then immediately reverse it with pin 3.

OR - try wiring it this way - Arduino -2 to LM293 -2, Arduino -3 to LM293 -10, Arduino -4 to LM293 -7, Arduino -5 to LM293 -15, and use your original output pattern.
Title: Re: Stepper Motor Vibrating
Post by: kf2qd on Jan 16, 2013, 10:47 pm

try this pattern - 1000  0010  0100  0001

Arduino pins 2 & 3 are controlling 1 winding. pins 3 and 4 are controlling the other winding. So the motor is buzzing becase you start in one direction with pin 2 and then immediately reverse it with pin 3.

OR - try wiring it this way - Arduino -2 to LM293 -2, Arduino -3 to LM293 -10, Arduino -4 to LM293 -7, Arduino -5 to LM293 -15, and use your original output pattern.


Good rule of thumb - If a stepper motor vibrates, it is because you are not powering the phases in proper sequence. The power sequence for a bipolar motor in simple stepping looks like this - A+ B+ A- B-, you wiring has A+ A- B+ B- You need to alternate with winding A powered and then winding B powered.
Title: Re: Stepper Motor Vibrating
Post by: MarkT on Jan 16, 2013, 11:41 pm
Change the code to issue one step at a time and check the voltages going to
the windings - at least one must be wrong.
Title: Re: Stepper Motor Vibrating
Post by: kf2qd on Jan 18, 2013, 10:01 pm

Change the code to issue one step at a time and check the voltages going to
the windings - at least one must be wrong.


He is using a bi-polar motor using a double h-bridge.
Title: Re: Stepper Motor Vibrating
Post by: MarkT on Jan 19, 2013, 12:00 am


Change the code to issue one step at a time and check the voltages going to
the windings - at least one must be wrong.


He is using a bi-polar motor using a double h-bridge.


The windings should still be getting the sequence A+ B+ A- B- or the reverse whether its bipolar or unipolar
(assuming wave mode).

Vibration can be caused by the wrong sequence, by one winding being unpowered - measuring the
voltages at the windings is a foolproof way to troubleshoot.
Title: Re: Stepper Motor Vibrating
Post by: organnoise on Jan 20, 2013, 06:07 pm
This is all really helpful so thanks.

But still I've done what both of you have suggested and no luck.

kf2qd, I've put in the steps you've suggested and I've also tried this sequence:

1 0 0 0
0 0 0 1
0 1 0 0
0 0 1 0

And in both instances what happens is the motor takes 2 steps forward and two steps back

I am going to read the voltage output from each step, but I feel I've set it up correctly so I am really confused.

I guess I should note that I am trying to make the motor work using maxuino, but I've tried using the stepper example straight from the arduino library and both results are exactly the same





















Title: Re: Stepper Motor Vibrating
Post by: organnoise on Jan 20, 2013, 06:39 pm
Good news guys, I got it working!

I switched my wires from the Arduino until it was sending the proper order of phase.

I think the main problem was because I am using a stepper I got from a printer and it was hard to tell if I ad the proper leads.

I changed my pins from 0,1,5,6 to 5,6,7,8 because I noticed that if I unplugged 0 and 1 the signal from 5 6 were still making the motor move, but if I removed 5 and 6 the signal from 0 and 1 were not making the motor jerk at all, just a slight ticking.

Now it is wired:

Arduino 5 to H-bridge 2, A 6 to H-B 15,A 7 to H-B 7, and A 8 to H-B 10

and the sequence is

1 0 0 0
0 0 0 1
0 1 0 0
0 0 1 0

Thanks for your help! The info about A+ B+ A - B- especially helped me understand steppers, considering before I was guessing random sequences