0

Noise and Vibration from stepper motor
Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.

Noise and Vibration from stepper motor

by Shovels on Fri Nov 08, 2013 2:55 am

Hi,

I am using the Arduino UNO R3 and Adafruit motor shield (http://playground.arduino.cc/Main/AdafruitMotorShield) to control my VT-21 stepper motor stage from micronix (http://www.micronixusa.com/motion/produ ... prodid=146) it is 200 steps/rev, i have ran the "stepper test" sketch from the Adafruit Motor Shield library and changed it to suit 200 steps/rev with microstepping and the motor does turn but it turns extremely rough and noisy. I have powered the Arduino with a separate power supply. Does anybody know why this would be??

Also is there a way to adjust the microstepping resolution, or what is the resolution used when i do a microstep move?

Also my eventual goal is to control the motor using Labview and incorporate the stages Limit switches into my system but i would firstly like to get the motor running smoothly and reliably using the arduino IDE.

Any help is greatly appreciated, Thanks!
Shovels
 
Posts: 3
Joined: Thu Nov 07, 2013 3:13 am

Re: Noise and Vibration from stepper motor

by adafruit_support_bill on Fri Nov 08, 2013 6:57 am

What speeds are you trying to run it at? Does it run any smoother in DOUBLE or INTERLEAVED mode?

Some users have successfully modified the microstep table to achieve 32-step microstepping.

adafruit_support_bill
 
Posts: 81919
Joined: Sat Feb 07, 2009 10:11 am

Re: Noise and Vibration from stepper motor

by Shovels on Sat Nov 09, 2013 2:07 pm

Thank you for your reply.

I have tried it at a number of speeds such as the default of 10rpm from that same example and all the way up to 100rpm. It moves (with a struggle)at all these speeds but it is still extremely noisy and loud and vibrates a lot when it does. (I have tried a different motor same results)
No interleaved and double give similar and I would say worse results.

Any other ideas I can't seem to figure this out?

How would I go about changing the microstep resolution to 32 microsteps?

Thanks
Shovels
 
Posts: 3
Joined: Thu Nov 07, 2013 3:13 am

Re: Noise and Vibration from stepper motor

by adafruit_support_bill on Sat Nov 09, 2013 2:32 pm

Not sure what would be causing the problem. Is your power supply appropriate for the motor rating?

The microstep curve is defined near the beginning of AdafruitMotorShield.cpp. You would need to change the MICROSTEPS constant to 32 and define a 32-step curve.

code]
#if (MICROSTEPS == 8)
uint8_t microstepcurve[] = {0, 50, 98, 142, 180, 212, 236, 250, 255};
#elif (MICROSTEPS == 16)
uint8_t microstepcurve[] = {0, 25, 50, 74, 98, 120, 141, 162, 180, 197, 212, 225, 236, 244, 250, 253, 255};
#endif
[/code]

adafruit_support_bill
 
Posts: 81919
Joined: Sat Feb 07, 2009 10:11 am

Re: Noise and Vibration from stepper motor

by Shovels on Sat Nov 09, 2013 2:34 pm

I am wondering if it is something to so with the current? Is there a way to control the amount of current supplied to the motor or does it just draw whatever it requires?

Thanks
Shovels
 
Posts: 3
Joined: Thu Nov 07, 2013 3:13 am

Re: Noise and Vibration from stepper motor

by adafruit_support_bill on Sat Nov 09, 2013 2:45 pm

This controller (and all the other Arduino motor shields), uses a fairly simple H-bridge that outputs a constant voltage. The current draw is determined by the impedence of the coils. At the start of a step the impedence is higher due to the inductance of the coil. This limits the torque somewhat. More sophisticated "constant current" controllers use a much higher voltage (several times the motor's rated voltage) to achieve more torque at the start of the step, but use current limiting to keep the current to a safe level.

www.pololu.com has some reasonably priced constant-current stepper drivers that might perform better for your application.

adafruit_support_bill
 
Posts: 81919
Joined: Sat Feb 07, 2009 10:11 am

Re: Noise and Vibration from stepper motor

by adafruit_support_bill on Wed Nov 13, 2013 7:28 am

One more thing to try: On lines 337-338 of AdafruitMotorShield.cpp, change the '17' to '16' as below and see if it works with less vibration:
Code: Select all | TOGGLE FULL SIZE
  MC->setPWM(PWMApin, ocra*16);
  MC->setPWM(PWMBpin, ocrb*16);

adafruit_support_bill
 
Posts: 81919
Joined: Sat Feb 07, 2009 10:11 am

Please be positive and constructive with your questions and comments.