Geared Stepper Motor

You could calculate the number of actual steps from theoretic steps using:

  unsigned long actual_steps = theoretical_steps * 283712 / 4455 ;

and then you'll only ever be 1/4000 of a revolution out (which is less than the 1/1000 requirement).

It is indeed an annoying gear ratio!

I'm trying to make a second hand ( that is not constant speed but is 1 RPM). It will therefore make many revolutions over time. I will have to do a time correction because not all delays of code will be accounted for. I don't want to make a position correction also. I could but it will eat up a lot of code space.

@Stolfa - Are you sure about this? Any updates? My test results differ from yours.

This is the correct way to calculate the overall ratio?
(22X26X31X32)/(9X9X10X11) = 63.68395
Maybe the formula is correct, but the counting is wrong?
It's off by 1/2% from 64:1. That's 2 degrees every revolution.
It's suspicious that the experimental results vary between 4072 and 4080.
If it were skipping steps the results would be >4096.

Ouch, gear ratios should be given as exact, otherwise its a misleading spec. Particularly important for stepper motors...

Microstepping doesn't give the accuracy you might expect, under load 1/4 of a step movement is to be expected at max torque. Microstepping gives smooth motion and much less noise/vibration and risk of mis-stepping, but only somewhat more accuracy and only at light loads and only if the motor poles are accurately positioned....

I believe 64:1 is the exact answer according to my tests. I wish we could all be in agreement.
Anyone disagree with 64:1?

I have been goofing around with two of these motors for the last couple of days. I couldn't figure out what I was doing wrong because 4096 steps went just over one revolution. I wrote a sketch that manually steps the motor using the 8 step sequence found here: http://arduino-info.wikispaces.com/SmallSteppers

After much trial and error, i came up with approximately 4076 steps per shaft revolution. (Eyeballing it) Which is close to what Stolfa said.

I will run it for 1000+ revolutions and see if it is a few degrees off, which I am pretty sure it will be. 20 degrees off in 4 million steps isn't too bad though...

It is the REALLY TEDIOUS speed that is bugging me.

Edit: I ran it for 4076000 steps and it is ahead of my zero mark by about 5 degrees, not the 20 degrees that your calculations say.

Also, ( 283712/4455) can be reduced to 25792/405. Not that it matters much...

I too was not successful in attaining accuracy with this geared stepper. I tried many values at a painfully slow stepping rate with a perhaps .5 oz. load. Could never get it to be at it's rotational starting point after feeding it values of 4096 and various values either side of that. Very nice powerful little guy, especially considering it's motor/driver package price and availability. - Scotty

So that's 2 people that show 4076 steps. Another user where his results vary.
Maybe they have a different model or manufacturer?
Maybe there are making a mistake?
Does anyone else measure exactly 4096 steps per turn like me?

I can see this thread has been read about 1200x. Only 2 people with these funny results?

I have two of these motors and will set up a test the next few days. Want to make a turntable for a 3d scanner so it would be really helpful if i could return to zero....

Thank you for verifying. I'm sure you will find no problems and be able to return to zero.

Did you try it?

Uau,
I was testing a 28BYJ-48 and I observed the same behaviour: a full turn was not 4096 steps (using half-step excitation mode), but something closer to 4076.

I carried out several tests running 100 turns (in order to adjust the decimals) and I calculated a gear box ratio of 63,6828125 ...
Obviously, the calculations of Stolfa are quite more precise, and answers one doubt I had about my experiments: why was the ratio so strange?

Finally, I would like to ask all you an additional question about this motor: I have two of them and in both of them the shaft have some play (clearence) of about 7.25º, what also render this motor as usefulness for precision works :frowning:

Have someone also realized that in his motors?

PD: This motor is mainly used to move the doors of the aircond machines ... in this scenario high precision is not a must ...

According to Stolfa the motor requires 64*((22263132)/(991011)) steps for a full revolution. This fraction simplifies to 1650688/405. Therefore 405 turns are needed to get back to the initial starting position.

Having played around with this stepper for a couple of days, my results show an inconsistent undershoot similar to the previous posts.
Maybe this could be a power supply problem ?
Perhaps any future posters could post the type of supply they are feeding ULN2003.
For my part, I was using 2 paralelled 9V (PP3) batteries.

For high-precision geared motors anti-backlash gears are normally used (where spring-loaded gears remove all
the slack in the mechanism).

Adding a hi-res shaft-encoder after the gearbox would allow accurate positioning without needing to worry about
slack or the precise gear ratios...

I just received a new 10-pk of these 28BYJ-48 5VDC stepper motors and tested one to see if maybe a different manufacturer would use a slightly different gear ratio, some being 4096:1 and some being 4075.7728... I set the stepper motor sketch up so that it rotates for 4076 steps, pauses for 3 seconds, then repeats; a period of about 15.3 seconds. Depending on which ratio is in the gear box it either exceeds a revolution by 0.22271 steps or it is short a revolution by 20.2271... steps. If the gear ratio is 74075.7728.. the paused point of the shaft will precess one revolution in 79 hours. If the gear ratio is 4096:1 then the pause should precess in the other direction and make one revolution in 51 minutes. Right now it's on course for about a 79 hour precession. There may be another source of these motors with a 4096:1 ratio. If you know of one; let me know.

Dave

I can't believe there are so many motors that are not 4096:1. Why?
Does anyone else have the 4096 ratio?

I only just got my Uno a week or so ago, so I'm still somewhat new to this. I ordered a kit from ebay with a 5v 28BYJ48 stepper included. It didn't come with a data sheet, but it seemed similar to the others online.

I tested it as accurately as I could with no tools and some arduino codes (mostly the oneRevolution example) and for it to do a full revolution with the standard stepper.h library, I have to use "2046" as my stepsPerRevolution value. I assume the way I have it wired means it's doing full steps vs half steps or something, but even doubling that would result in 4092 instead of 4096. Additionally, when I use setSpeed(2), it seems to take about 28 seconds rather than 30 to complete a full circle.

Any help with this would be fantastic, though I know it's not the point of this thread. But my motor does have an unusual number of steps to go full circle. I haven't tested to see if it's exactly one circle, nor have I opened it to check the gear ratios, but hopefully it helps.

sbright33,

I popped off the face of a 28BYJ I had and found the following:

I highlighted the gear teeth with a red dot and show the teeth/gear. My gear ratio is:
(31322622)/(111099) = 283712/4455 = 25792/405 = 63.68395... If anyone can show 64:1 please similarly pop the face and count teeth. Can anyone find anything but the above ratio of gear teeth. The face is replaceable with a little added Vaseline inside. All motors I've seen pictures of have three intermediate shafts (the shaft ends show through the case) for a total of 4 gear reductions. It is conceivable that someone may have (40402020)/(10101010) = 64 or similar. Yes, there is some slop in the nylon gears but I'm using it for a clock so I'm only driving it in one direction. I am driving it many revolutions so I do need to know the ratio precisely. If someone can show me a 64:1 eBay gear source I'd be delighted! Right now for me the total number of steps are (64 * 25792)/405 = 4075.7728395... Therefore I step 4075 steps for one revolution and add an additional step every 313 out of 405 revolutions (313/405 = 0.7728395.. the decimal remainder of 4075.772...). Unfortunately I make an array named correction[404] = {1,0,1,1,1,0,.... 0,1,1,1} to decide if a correction step is needed. It's messy but it keeps the second hand pointing up at 12 o'clock.