Stepper motor won’t turn once loaded - Arduino Uno

I can’t get a stepper motor to rotate a load that it should have enough torque to rotate. The load is a 3’ x 3’ x 2” table, with the stepper motor centered underneath. I have a 51204 thrust bearing between the motor and the table to reduce friction as much as possible. The table can be turned with a light touch, and when set in motion it continues to glide for some time before coming to a stop. I had a simple flange bushing machined which connects the motor shaft to the table. The motor shaft is secured using a set screw.

I’m using a 5V 1A DC power supply. I used the code and circuit from the MotorKnob example on the arduino website. I got a Texas Instruments SN754410NE dual H-bridge as instructed, since my motor is bi-polar. I modified the circuit to make it actually work (added one wire connecting the two +5V outside rails of the breadboard) and i successfully got the motor spinning ok by itself, and with the flange bushing attached. Everything seemed ok.

However, when i assemble the table, it does not behave as expected. I’ve fiddled with the setSpeed function: at 10RPM or less almost nothing happens, at 30-40 RPM it starts turning very slightly, then stops moving, then when the motor stops it sort of repositions itself and jiggles the table. Above 60RPM very little motion occurs. I’ve tried adding more steps (the motor is 1.8 degree, so 200 steps), but that has little effect either. I also tried setting it to step one at a time, with a delay between single steps, but this sometimes worked and sometimes did not. the motor gets the load moving, but then the load keeps moving, sometimes forward, sometimes as if the motor is trying to keep position. When it’s time for the next step, often the load is already spinning, which i wonder if is causing it to miss steps. This stepper motor can theoretically output 490mNm, Which should be more than enough to turn this table (estimated weight of 30lbs), but so far I haven’t been able to make it work with the standard stepper.h library. I’m aiming to eventually be able to turn ~500lbs on the table, and my math suggested that this motor should produce enough torque to rotate that weight 180 degrees in ~30 seconds (including allowing for friction of bearing). Any suggestions/hints/comments?

Stepper Motor: Trinamic Motion Control GmbH QSH4218-51-10-049

Circuit:
https://www.arduino.cc/en/uploads/Tutorial/bipolarKnob_schlg.png

Code: have used various. The motor runs fine with no load, i just can’t get it to behave as expected when attached to the table. I’ve been using code from these two examples, with tweaks to the variables:
https://www.arduino.cc/en/Tutorial/MotorKnob
https://www.arduino.cc/en/Tutorial/StepperOneStepAtATime

I was reading up about how if the voltage profile for the stepper is not properly aligned for the particular motor, it may turn weakly (or not at all) from <>here<>. Could that be what is happening here?

I have a sneaking suspicion that i’m going to have to modify (or re-write) the stepper.h library to try and make this work. On that note, I’m wondering if it could be something related to the speed setting. Although this is a shot in the dark, I really don’t know where to start modifying the library code. Any suggestions/hints/tips?

I’ve got an A4988 driver board now, I’ll try using it tomorrow, but i have a feeling my problems are in timing the motor control.

And lastly, if you had to design a system to rotate a table like this, would you go with a stepper motor? the rotation only has to be 90 degrees once every 24 hrs.

Thanks in advance!

I'm using a 5V 1A DC power supply

That is totally inadequate for the motor. The TI Hbridge is also not a good choice, as it has a Darlington output which will consume up to 4V of the power supply voltage.

Use the A4988 driver, with a 12-24V power supply capable of supplying more than 1 ampere continuously. Be sure to set the current limit on the A4988 driver to 1 ampere/phase or less.

I agree with @jremington.

You may get some useful background info in Stepper Motor Basics

...R

But firstly you need to realise that your table has lots of moment of inertia, so you definitely
need to use AccelStepper library, not Stepper, and use setAcceleration so the speed is ramped
up slowly enough.

Trying to suddenly increase the (angular) speed with a large load like that requires lots more torque
than just the motor shaft - MoI increases with the mass and with the square of the radius.

Torque = MoI x angular acceleration.
(units Nm, kg.m^2, rad/s^2)

Thanks for the quick replies! I'll attempt it with the A4988 and the accelstepper library now.

At this moment, I don't have a larger power supply, so I'll try with what I have until i can get a larger one.

@Robin2, i had a read through that stepper motor basics post, some really solid information there. thanks for putting that together.

I'll let you guys know how i do.

Scott

I'll try with what I have until i can get a larger one.

It won't work.

ah yes @jremington. I was just reading about the A4988, needs at least 8V for maximum operating voltage. Looks like power supply upgrade is my first priority.

Considering I'm heading back to the drawing board anyway, how would you guys go about rotating a load like this? The ultimate goal is to motorize the rotation of a tower farm (picture attached). The farm needs to rotate 90 degrees per day. We are assuming a maximum weight of 500lbs soaking wet. I calculated the moment of inertia by dividing the shape of the farm into two cubes, and used the formula for rotating a cube around its axis, I = 1/12m*(w2+l2). I then summed the moments for the two cubes. I calculated the moment of inertia as 19.85 kgm2.

The speed of rotation can be very slow, if it takes a minute to complete it's rotation that's fine. Slower may be better in fact.

I realized that if this thing isn't sitting perfectly flat, the moment of inertia will increase substantially. it would be nice to have the rotation work even if the farm is 1 or 3 degrees out of level.

Any thoughts you have would be valuable. Thanks for your help, you guys are an incredible community.

farm_large.jpg

From the moment of inertia and the required angular acceleration (including friction) you can calculate the required torque.

Without bothering to think much about that calculation, to start and stop the rotation of 500 pounds will require a larger motor, with a gear train.

Turning 90 degrees in a day doesn't require anything but very low speeds and acceleration, friction is
going to dominate. You will probably only need a tiny motor and some decent reduction gearing.

skyle:
The ultimate goal is to motorize the rotation of a tower farm (picture attached). The farm needs to rotate 90 degrees per day. We are assuming a maximum weight of 500lbs soaking wet.

I don't see a need to use a stepper motor for this. I would use a low-geared DC motor and (if necessary) a microswitch to detect each 90 deg position. Maybe the screen-wiper motor from a crashed car would be suitable.

...R

@Robin2 thanks. I would like to avoid building a custom gear train/belt drive due to the extra cost involved, could I direct drive the table with a low geared DC motor? I'm going to look into this option more.

Scott

skyle:
I would like to avoid building a custom gear train/belt drive due to the extra cost involved,

That is why I suggesed the screen-wider motor. It has a slow-running gear system built-in.

...R

Hello gentlemen, hope you had a good holiday season.

I've got myself a windshield wiper motor from a local wrecker, will take it out and get it mounted to the load today. I'll also confirm that it does work under no load as well.

I attempted to find out just how much torque the average wiper motor puts out. The one i have is from a 1999 Ford Explorer. I couldn't find datasheets or any precise information, the best I could find was anecdotal discussion that a motor running a 22" wiper would produce about 20 Nm of torque. Does that sound about right, or does anyone know where i might find detailed specifications?

Thanks!

Less than 20Nm I suspect, that would be enough to break the wiper if there was an obstacle.

Here's a rough guide to torque for humans:

0.1Nm - finger and thumb twisting something small
1Nm - whole hand twisting, as with a screwdriver
10Nm - turning a steering wheel with both hands.

Any motor putting out 20Nm would easily cause injury too, I suspect wiper motors generate about
5Nm, less likely to snap the blade when icy.