stepper motor makes noise while movement

Hello All,

I have trying to operate a stepper motor by setting HIGH and LOW on the clock signal with different delays and also have tried using AccelStepper Library but haven't been able to get rid of the noise. This noise is present only when I run the motor using Arduino Mega 2560 but when using the Nanopro software from Nanotec there is no sound at all.

Stepper Motor : http://en.nanotec.com/fileadmin/files/Datenblaetter/Schrittmotoren/ST4118/L/ST4118L3004-A.pdf

Stepper Motor Driver : Nanotec - Precise and Reliable Motion Control Solutions

Power Supply : 24V 3A

Thanks!

What sort of noise?

Are you using the same stepper driver with the Mega and with the Nanopro software?

What hardware is the Nanopro software running on?

...R

It's a very loud and irritating noise. I am running on full step mode, have also tried half step mode.

Yes I am using the same driver for both mega and nanopro software on a Windows 8 machine.

youtube video might help?

Or answer the question about what kind of noise in a useful way. We get that you don't want the
noise, we don't get what kind of noise it is (and there are several kinds it could be).

[ my suspicion is the nanopro is always microstepping, but I'm guessing ]

pankajbh:
It's a very loud and irritating noise.

Yes. But what does it sound like?

I am using the same driver for both mega and nanopro software on a Windows 8 machine.

How does the Windows machine communicate with the driver?
Do you know what commands the Windows machine sends to the driver?

How does the Mega communicate with the driver?
Does the Mega send the same commands to the driver? (probably not)

...R

#include <AccelStepper.h>

// Define a stepper and the pins it will use
AccelStepper stepper (1, 22, 23); // Defaults to AccelStepper::FULL4WIRE (4 pins) on 2, 3, 4, 5

void setup()
{  
  pinMode(24, OUTPUT);
  digitalWrite(24, HIGH);
  // Change these to suit your stepper if you want
  stepper.setMaxSpeed(1000);
  stepper.setAcceleration(50000);
  stepper.moveTo(5000);
}

void loop()
{
    // If at the end of travel go to the other end
    if (stepper.distanceToGo() == 0)
      stepper.moveTo(-stepper.currentPosition());

    stepper.run();
}

I have attached some pictures showing the settings on Nanopro and also pictures of signal read from motor winding, when using Nanopro and Arduino. Probably, this will help understanding my problem...

Images from Reply #5 so we don't have to download them. See this Image Guide

...R

pankajbh:
Probably, this will help understanding my problem...

Afraid not.

How about simple answers to the 5 questions in Reply #4?

...R

Hi,
Can you please post a copy of your circuit, in CAD or a picture of a hand drawn circuit in jpg, png?
How are you powering the stepper?

Tom.. :slight_smile:

Please tell us what is sounds like or record the noise and post that.

@pankajbh, If you are not prepared to answer my questions I don't see how I can help.

It would also help if you could respond more quickly to comments that people make.

Your diagram is very faint but it seems that the PC sends serial data to the driver board. If you know the format of that data you could probably generate the same data with your Mega. That is why I posed the questions that you have not answered.

...R

@Robin2, I am really sorry!

This manual explains in details what commands are being send:

http://en.nanotec.com/fileadmin/files/Handbuecher/Programmierung/Programming_Manual_V2.7.pdf

I also used the same driver board to operate these two stepper motors, and it works without any problem or noise:

Sorry, but I am lazy and I don't plan to read a 250 page manual.

I was hoping you could provide details of the specific commands that Windows sends to the driver to get it to do the simple test you have on YouTube. Then we could consider how to send the same commands from your Mega.

...R

Hi,
Have you got the signal gnd of the stepper driver connected to the gnd of the arduino?
All I see in the diagram is the three control signals but no gnd connection.

Tom.... :slight_smile:

The noise in that video is white noise AFAICT, indicating perhaps it is running in PID mode
with too large a D value (derivative terms are almost always the noisiest thing) - could it
be that the "cascading position controller" is operating when driven by Arduino and not when
driven by PC?

Another source for such noise is the current-control hysteresis hardware if running in free
mode (not at a fixed frequency). This noise derives from the current sensor ultimately. However
it seems unlikely that this would only occur driven from PC and not Arduino since current
control should be happening all the time for a microstepping driver.

Its a very complex stepper/BLDC motion controller you have there - the answers are much
more likely to be available from the people who sell it I think.