Go Down

Topic: Why my stepper motor does 2 revolution instead 1? (Read 5820 times) previous topic - next topic

Personne

I use 2 steppera and a L293D driver:
ST 28 (12V) et
http://www.gongchang.com/Stepping_Motor_ST28-dp2768811/
28 BYJ - 48 - (5V)
http://www.seeedstudio.com/depot/Gear-Stepper-Motor-12V-p-335.html

Step: 5.625°
Gearbox ration 1/64

I use "stepper_oneRevolution" starter kit program.

With these 2 motors, I calculated that I would need 4096 steps per revolution, but to do 1 revolution, i must write 2048 step in this program ("myStepper.step(2048);".

Why?

Grumpy_Mike

Quote
Why?
Because one of the parameters in your calculation is wrong.
It could be the gear ratio, or the step angle, or your driver could be in half step mode, or you software is not counting what you think.

MarkT

Those motors have about 2048 steps.  They are billed as 4096 steps, but if you read carefully
that is HALF-steps they are talking about.

Note that the gearbox ratio is not an exact power of two - many threads on this topic exist!
[ I will NOT respond to personal messages, I WILL delete them, use the forum please ]

Personne

Am I to understand that "myStepper.step(2048)", it's a drive with half step ?
Also with is i do 1 revolution and with 4096 steps two revolution, thats my problem.

Grumpy_Mike

Quote
Am I to understand that "myStepper.step(2048)", it's a drive with half step ?
No.

It is the specification of your motor that is misleading.

Quote
Also with is i do 1 revolution and with 4096 steps two revolution, thats my problem.
No your problem is your calculations are based on wrong data. That is all that is wrong.

Personne

In spite of your remarks, I do not still understand.

1 implusion -> 1 step -> 5.625/64°

so

4096 implusion  -> 4096 steps -> 5.624°/64*4096 = 360 °

"myStepper.step(2048);" pour que le moteur fasse un tour au lieu de 4096 pas?

So why, in the example program "stepper_oneRevolution", I have to register " myStepper.step (2048); " so that the engine makes 1 revolution instead of 4096 steps?

Furthermore for the attached program, every implusion generates an angular movement of 5.625 °/64, I would thus need to make 1 revolution: 1024 cycles * 4 impulses * 5.625 °/64 to make 1 revolution yet I have to register 512 cycles in my loop.

Grumpy_Mike

Quote
In spite of your remarks, I do not still understand.
OK try this:-

1 implusion -> 1 step -> 5.625/64°

This is wrong, it is an incorrect reading of the data sheet, it refers to half steps not the full steps your code and driver are giving.

As Mark said:-

Those motors have about 2048 steps.  They are billed as 4096 steps, but if you read carefully
that is HALF-steps they are talking about.

Personne

Grumpy_Mike, can you help me, to understand, why it's 2048 steps? Where do you read in specification motros, that it's a half stepper?

I read 5.625° by step, so

1 implusion -> 1 step -> 5.625/64°

and

4096 implusion  -> 4096 steps -> 5.624°/64*4096 = 360 °
 

Grumpy_Mike

Quote
Grumpy_Mike, can you help me, to understand, why it's 2048 steps?
I doubt it.

I have already told you that it is how the motor is built and that your error is a fundamental wrong reading of the data sheet.

There is nothing else to explain.

MarkT

These motors have about 2048 steps per revolution.  The finest resolution you can
drive a unipolar motor naively is in half-steps, so you can get about 4096 distinct
positions through 360 degrees.

There are 3 commonly used stepping modes for unipolar motors, driving one
winding at a time (full steps), driving two windings at a time (full steps) or alternating
between driving one winding and two windings (half steps).
[ I will NOT respond to personal messages, I WILL delete them, use the forum please ]

Go Up