"Pulsing"/ "Knocking" Sound Produced by H Bridge

Drive a 4-wire bipolar stepper motor or a pair of DC motors from your Arduino. [Product page]
Post Reply
ScopeAV
Posts: 3
Joined: Tue Jun 30, 2015 3:29 am

"Pulsing"/ "Knocking" Sound Produced by H Bridge

Post by ScopeAV » Tue Jun 30, 2015 4:22 am

Hi Guys

I am using a Freetronics Eleven Board with a H Bridge Shield to control a bipolar stepper motor. The stepper is an Anaheim Automation 17Y202S-LW4. The program that I've written to control the motor seems to function normally but I'm experiencing what I can only describe as a rapid pulsing or knocking sound coming from the motor (tried two separate motors so am reasonably sure that it's not a motor fault). I am also confident that the sound is not mechanical as running the motor by itself (not connected to any drive pulleys etc) produces the same issue. While this sound is not that bad in itself -particularly if the motor is suspended in "free air", it resonates badly through the aluminium framing to which it is attached. Unfortunately, it is something that I can't afford to live with as the product I am making is intended for sale to market.

The following information may also be helpful:
[*] program is written to simply drive a stage (linear ball bearing) back and forth along one axis
[*] I've tried adjusting the motor speed and this has just changed the frequency of the pulse/knock
[*] I've adjusted the current limit from 0.6A to 1.2A to 2A with no change
[*] I initially thought that this may be due to the speed of loops in my code so I wrote a simple code as shown below to test this theory. It produced no change with the pulse/knock still being there.
[*] I previously tested the exact same mechanical set up with the Ocean Controls Step Pulser and EasyDriver and experienced no knocking or pulsing whatsoever.
[*] I'm using the standard pins on the H-Bridge (4,7,3,2) with Enable pins 5 and 6 as per the example code shown in the H Bridge guide.

Simple code as referred to above:

Code: Select all

void loop() {

             
              digitalWrite(enableA, HIGH);
              digitalWrite(enableB, HIGH);
              myStepper.step(500);
 
              digitalWrite(enableA, LOW);
              digitalWrite(enableB, LOW);
             
             
             delay(2000);
              
              digitalWrite(enableA, HIGH);
              digitalWrite(enableB, HIGH);
              myStepper.step(-500);
              
              digitalWrite(enableA, LOW);
              digitalWrite(enableB, LOW);
 
              delay(2000);
              
              resetWatchdog();
 }
void resetWatchdog() {
  digitalWrite(watchdog, HIGH);
  delay(20);
  digitalWrite(watchdog, LOW);
}

I'm interested in whether this sound is being produced by the H-Bridge itself and if there is any way to eliminate this. My only alternative is to use a different driver as far as I can tell.

Thanks for your help
Sean

andrew
Freetronics Staff
Freetronics Staff
Posts: 978
Joined: Sun Jul 14, 2013 7:06 am
Location: Melbourne, Australia
Contact:

Re: "Pulsing"/ "Knocking" Sound Produced by H Bridge

Post by andrew » Tue Jun 30, 2015 7:37 am

You haven't copied in the entire sketch, however try setting your steps/revolution variable to 200 in the "Stepper myStepper..." function.
For example:

Code: Select all

/*
 Based on example by Tom Igoe included in Arduino IDE
 at File -> Examples -> Stepper -> stepper_oneRevolution

 Modified to suit pinouts of Freetronics HBridge Shield
*/

#include <Stepper.h>

const int stepsPerRevolution = 200;  // change this to fit the number of steps per revolution
                                     // for your motor

// initialize the stepper library using the default pins on the HBridge Shield:
Stepper myStepper(stepsPerRevolution, 4, 7, 3, 2);

void setup() {
  // set the speed at 200 rpm:
  myStepper.setSpeed(200);
  // initialize the serial port:
  Serial.begin(9600);
}

void loop() {
  // step one revolution  in one direction:
   Serial.println("clockwise");
  myStepper.step(stepsPerRevolution);
  delay(1000);
  
   // step one revolution in the other direction:
  Serial.println("counterclockwise");
  myStepper.step(-stepsPerRevolution);
  delay(1000); 
}

Things
Posts: 36
Joined: Mon Aug 26, 2013 3:47 pm
Location: Cairns, Australia
Contact:

Re: "Pulsing"/ "Knocking" Sound Produced by H Bridge

Post by Things » Thu Jul 02, 2015 12:21 am

Stepper motors will always produce noise, it's how they work. You'd either need to switch out to a different kind of motor, try and reduce the vibrations, or just deal with the noise. That said, the noise shouldn't be _excessive_.

However, perhaps the reason the other drivers didn't make noise was because they allowed microstepping - which essentially allows you to PWM the motor between steps, thus giving a much less defined "step".

ScopeAV
Posts: 3
Joined: Tue Jun 30, 2015 3:29 am

Re: "Pulsing"/ "Knocking" Sound Produced by H Bridge

Post by ScopeAV » Thu Jul 02, 2015 6:03 am

Sincere thanks for both replies. It looks like I've missed the fact that the H Bridge doesn't microstep and I believe that this is what is causing the pulsing/knocking sound. I will change my code and install the Easy Driver to see if I can eliminate the knock.

Thanks again
Sean

Things
Posts: 36
Joined: Mon Aug 26, 2013 3:47 pm
Location: Cairns, Australia
Contact:

Re: "Pulsing"/ "Knocking" Sound Produced by H Bridge

Post by Things » Thu Jul 02, 2015 10:22 am

Not sure which pins the H-bridge uses, but if it's on PWM pins you may be able to implement crude microstepping yourself if you're feeling adventurous. Keep in mind that microstepping will reduce torque significantly.

ScopeAV
Posts: 3
Joined: Tue Jun 30, 2015 3:29 am

Re: "Pulsing"/ "Knocking" Sound Produced by H Bridge

Post by ScopeAV » Fri Jul 03, 2015 6:48 am

The H Bridge uses pins 4,7,3,2 as standard so it doesn't look like I can do this easily. It's unfortunate as there's a lot to like about the H Bridge shield. I last night replaced the H Bridge with an Easy Driver and the offending sound was completely eliminated. The unit sounded really good -quiet and smooth.

I'll be heading in the direction of sourcing a Pololu DR8825 driver board as I'd rather avoid complicated programming if I can. Will be sticking with the Freetronics Eleven though.

Sincerely appreciate all of the help.

Thanks
Sean

Post Reply