Go Down

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

#### Personne

##### Oct 25, 2014, 06:40 pm
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

#1
##### Oct 25, 2014, 09:22 pm
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

#2
##### Oct 26, 2014, 12:48 pm
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

#3
##### Oct 26, 2014, 07:13 pm
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

#4
##### Oct 26, 2014, 07:37 pm
Quote
Am I to understand that "myStepper.step(2048)", it's a drive with half step ?
No.

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

#5
##### Oct 29, 2014, 07:58 pm
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

#6
##### Oct 29, 2014, 08:05 pm
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

#7
##### Nov 05, 2014, 08:33 pm
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

#8
##### Nov 05, 2014, 09:27 pm
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

#9
##### Nov 07, 2014, 11:33 pm
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