I have a Saitek yoke that I put the motors and electronics from a MS force feedback joystick into. Works great. I also modded a set of Saitek rudder pedals into a FFB device.
While the yoke motors are practically silent, my DIY rudder pedals are not. They whine like a Banshi.
I'm using a MEGA2560 and a BTS7960 to drive a 16:1 geared 775 motor; and using Mobiflight to control it. The motor is usually held in a stalled state with varying levels of torque being applied via a PWM signal.
I was wondering if there is some sort of device I could use to "absorb" the whine. Maybe capacitors???
The pedals work great but the wife says the whine's gotta go. And I thought my 6900XT was whiny...
Thanks for any input.
John
Maybe change the PWM frequency to above the range of hearing? I have heard that suggested to quiet loud motor whine. Do a search for "arduino mega change pwm frequency".
Here is a thread that talks about changing PWM frequency to quiet a motor.
Are you sure you can hold this type of motor stalled ?
Thank you for the links. The first one sounds like the way to go. It was stated that different pins run at different PWM frequencies. Does the MEGA have native high frequency pins? It's OK if the motor is weaker with the higher freq. as I have headroom in the upper range of the PWM signal. Time for more research...
Arduino 2560 has 12 pins supporting PWM. They are from 2 to 13 included.
the PWM default frequency is 490 Hz for all pins, with the exception of pin 13 and 4,
whose frequency is 980 Hz (I checked with an oscilloscope).
980 Hz is still way within the audio frequencies, so that won't help.
Using the search phrase you provided, I found that the frequency can be changed. How To Change PWM Frequency Of Arduino Mega (etechnophiles.com)
I'm reading up on it to see if I can add the fix to the Mobiflight sketch. There doesn't seem to be an option near the 20khz range. There is one for 31khz, but that may be too high for a DC motor. Only one way to find out (that doesn't include a bunch of high level math).
I've posted the question in the Mobiflight forum regarding the best way to increase the PWM frequency.
I was reading about the use of a low pass filter. I can't seem to determine if I can use 2 in a bi-directional motor. I would still need to increase the PWM frequency, but all the PWM noise would be gone.
Not sue what the RC of the system would be. Or if it would be cost effective on such a large current.
Typical PWMs for motors are 4k, 8k, 16k, etc - 16k is often high enough as the mechanics of a motor act as a low pass filter and most peoples' hearing is much less sensitive at top frequencies.
The underlying PWM hardware can be configured for a wide range of frequencies, but then the full scale value is no longer 255, so you can't used analogWrite() conveniently.
It seems that there is not a frequency available in the range I'm looking for. It jumps from about 4khz to 31khz. There is no "middle ground" frequencies. Took a little while for me to understand why, but I get it.
I tried the 4kHz. I couldnt hear it but my wife can, so its a nogo. I didn't try 31kHz because I've read it's much too high of a fequency to run a DC motor. I may give it a go though. I ordered an Uno board because the 5 an 6 pin can be run at 15.6kHz, which is above the wife's range of hearing.
I would suggest that you try the TimerOne or TimerThree library.
They will perform the timer register settings you need to get frequencies different from what can be achieved with just prescaler changes.
There are TimerOne and TimerThree library examples ("Fan Speed") for 25KHz pwm which will show you what to do.
I bought the Uno and raised the D9 andD10 pins to 7.8 kHz, then 15.6 kHz. At 7.8 the motor is strong but has a high pitch whine (says my wife). At 15.6 neither of us can hear it but the motor is weak. I'm trying to determine if there is some kind noise filter that can be used with a bi-directional motor that can quiet it down at 7.8. Or a way to make the motor more powerful at 15.6. Ideas?
The BTS7960 has a programmed slew-rate, depending on a resistor on the PCB - if this isn't set for fast slew rate this might be compromising the ability of this chip to work with 16kHz PWM. I can imagine some of the poor designers of cheap BTS7960 boards got this wrong (lots of cheap hobby stuff is like this...) Perhaps a close-up shot of the module you have might be able to confirm if this is the case?
Here's one of the motor controller, one of the assembly, and one of the motor. I'm experimenting with caps. 470uf takes all the force from the motor. a 4.7uf does (mostly) nothing. I think it quiets it down a little. They are bi-polar 25 volt caps. I'm going to get a range of them at 50v to try. It would be cool if I could just solder in different resistors on the motor controller though.
Please excuse the cable management. I've been doing a lot of work on the pit.
Hi,
The last picture of the motor, is that a polarised electrolytic capacitor, and how have you got it wired because I assume the motor goes forward and reverse.
This means in one direction you will have the electrolytic capacitor under going reverse polarity, which is not good.
What value is it?
Tom...
Nobody seems to read anymore...
Sorry, first coffee of the morning hasn't cleared the haze yet.
Tom..
Oh, I see. You're on the bottom of the world. And I was thinking you may be two sheets into it. ;D
Two weeks out after isolation from Covid too.
Have you lifted the motor out of the assembly and seen if the whine disappears?
You may need some sound isolation in the motor mount.
Tom...
PS, What make and model spec is the yoke motor?
Large caps (>100n) across a PWM-controlled motor is a bad idea.
This shorts out the (12volt?) square wave that the mosfets are generating.
Leo..