I just got my Phidgets motor (3269_3) and my driver is Cytron MD13S. I just hooked up everything and my motor is making a whining noise when it’s controlled by PWM. On a direct DC voltage by buttons MA and MB it’s working really quietly and not whining at all but when it’s driven by PWM it starts whining.
My guess is that I need to change the PWM frequency? I tried with 490Hz and 3921Hz and it’s still whining… Then I tried it with 122Hz and it’s a lot quieter.
On cytron site, this is written
Speed control PWM frequency up to 20KHz (Actual output frequency is same as input frequency)
But in Arduino files, there are options to change frequency to 3921Hz and 31372Hz. 3921Hz is whining and 31372 is 50% higher than the maximum PWM frequency for Cytron driver.
There are also some official Phidgets DC drivers and they are operating at 20kHz to 25kHz.
So, on which PWM frequency do you guys make your Phidgets work quietly?
these whinnings are a very subjective concept… I find that they make too much noise, my cabins are silent, I don’t hear them from other cabins… If you ever find the solution, I will surely apply it … In the meantime, I turn up the sound of the radio.
Maybe a small capacitor and a resistor to deplete it again, on the pwm line. Would off course give some delay in action. Resistor must be big enough to avoid overload of nano output.
I can’t record the video now but I found someone’s video on youtube showing that whining sound
You can hear at about 1:25 on that youtube video that whining sound I also have when motor is running on low PWM.
It’s kinda “normal” for motor to whine when it’s on PWM signal and human ear can’t hear above 20kHz so it’s maybe better to increase PWM frequency. Also, phidghet’s driver is running on 25kHz and our Arduino nano in default configuration is running on 490Hz
And motor is producing exactly 490Hz sound noise when it’s not on 100% PWM
So, did anyone try to play with Arduino PWM generator to make it quieter?
Those are “default” PWM frequencies
//TCCR1B = TCCR1B & B11111000 | B00000001; // set timer 1 divisor to 1 for PWM frequency of 31372.55 Hz
//TCCR1B = TCCR1B & B11111000 | B00000010; // set timer 1 divisor to 8 for PWM frequency of 3921.16 Hz
//TCCR1B = TCCR1B & B11111000 | B00000011; // set timer 1 divisor to 64 for PWM frequency of 490.20 Hz (The DEFAULT)
//TCCR1B = TCCR1B & B11111000 | B00000100; // set timer 1 divisor to 256 for PWM frequency of 122.55 Hz
//TCCR1B = TCCR1B & B11111000 | B00000101; // set timer 1 divisor to 1024 for PWM frequency of 30.64 Hz
But you can make any PWM frequency with playing with Arduino timers. Did anyone try something like that and got a quite motor or maybe even more stable motor or something like that?
I’m not sure you can add a capacitor to PWM line because Cytron driver expect PWM signal so it can switch on/off transistors (or MOSFETs). If you “flatten” that PWM signal with a capacitor it will be always on or always off…?
Wait until you try off a battery until you sink too much time trying to solve this, AC to DC converters can sometimes add to noise issues. Not sure if you have a lab one, or just an simple one but most affordable ones leak some ripple.
Also give the 24v wiring a try, I use the 12/24 converter and have not heard the high pitch noise, mostly just the planetaries turning.
It’s DC/DC (step-down converter), not the lab one…
Ok, I’ll try it with battery but the main question, I think, is still unanswered?
Should we try to change the PWM frequency to the one recommended by the manufacturer? I mean, if it’s recommended to run on 25000Hz and we are running it on 490Hz, there probably should be some noticeable changes? Like more stable work, more power, silent work, etc?
Keep in mind that if a higher pwm frequency will increase switching losses in the mosfets on the cytron. The mosfets will get warmer when used with a higher pwm frequency.
The whine is always going to be proportional to the frequency, no? So reducing the PWM frequency will reduce the whine, but not sure how it affects the torque. At a certain point there must be diminished returns when increasing frequency.