Audio Buzz from PWM driving LED string

Hello. I'm new here, my first Arduino project, I'm not an "electronics" guy, bit of experience but allot of this is way over my head!
I designed and made this project (schematic attached, I think, I can't see it yet?), works perfect with the exception of a low level "Buzz" through the speakers whenever the LED String (bottom left) is turned On.
I have been reading many (sooo many) discussions on what sounds like this very problem, but a solution still eludes me. I have tried filtering capacitors almost everywhere, none of them have any effect at all on the buzzing. I have rerouted wiring also with no effect.
Here's what I do know:

  • If I disconnect the LED String from the circuit, Audio is perfect, no buzzing.
  • if I turn the LED String Off programmatically (PWM=0), Audio is perfect, no buzzing.
  • the buzzing is not amplified, its always the same level, audio volume 0 or 10, doesn't matter.
  • UPDATE: I have also replaced the 12v ac supply with a 12v Battery and the buzzing problem remains the same.
    If anyone has any suggestions, I would greatly appreciate your expertise.
    (and I fully expect Angry Mike will yell at me for this post)

If you have another power supply or batteries try running the amplifier, and maybe the DFPlayer from a separate power supply. (Of course you still need a common ground.)

An/or if it is a power supply noise you can also try adding capacitor filters to the audio section with a diode like this, except where I say "To Arduno" that goes to your audio circuits:
Half-Filter

The diode keeps the capacitor from discharging into the LED circuitry so it does a pretty-good job of filtering the negative spikes on the power supply and since the voltage "holds-up" better it also helps with positive spikes.

The is about a 0.7V drop across a regular silicon diode so if the diode & capacitor work, you'll get less voltage drop (about 0.2V) with a Schottky diode in your "permanent fix".

I would replace your LM2596 and make that a 5V regulator and then power everything from that. There is no need to step 12V down to 9.7V to feed into the arduino which steps it down to 5V. The on-board regulator of the arduino can not provide very much power.

Thanks blh64. I'm not sure why I decided to feed 9v to the Arduino rather than 5v.
The LMN2596 I have is adjustable, I can turn it down to 5v and feed the Arduino and other 5v devices separately. Would that accomplish the same thing you are suggesting?
Or is there a reason I should actually "replace" the LMN2596 board with a different 5v regulator?

That will get the job done. Feed the 5V directly into the 5V on the arduino, not the Vin pin. I also did not notice any capacitors on the 5V line near each of the Vcc pins of your devices. That will help as well, including ones on your 12V devices.

Thanks Doug. I will look into those options. But you reminded me of something I was going to try an forgot. So I just tried it! I replaced the 12v ac power supply with battery power only, on the entire circuit ( just one large 12 v battery). And I ran different speakers, different speaker wire with different routing, nowhere near the rest of the wire runs. The result was exactly the same, the buzzing was still there. This makes me think it’s not coming from the power supply, and it’s not cross-wire contamination. My gut thinks it’s that darn PWM signal on the MOSFET, switching the Ground On/Off and sending noise to all the other common Grounds.
I’ve got some advice on adding capacitors to my Vcc on all devices, which I will do.

Please post clear, complete photos of your hardware.

Thanks aarg . I will do that.

It often boils down to layout.

Do you know the frequency of the buzz ?

That would be my bet. high-frequency switching

Just measured the frequency of the buzzz, 492 hz.

Looks like a PWM frequency :slightly_smiling_face:. You could change it to 30000 hertz.

Thanks everyone. It would appear that my buzzing problem is resolved, fingers crossed. After confirming that the buzz was exactly the same frequency as the PWM signal, 490 hz, I focused on doing something with that signal. As was suggested, I found some code to increase the PWM frequency above 20khz, the upper end of human hearing. No more buzzing …. that I can hear! I know it’s still buzzing away at 20khz, but it doesn’t appear to be affecting anything else, yet.
I was a little concerned about increasing the PWM frequency that high, not sure what else might be affected, and rumours of MOSFETs burning up. But so far, no problems, and no heat at all on the MOSFET. I will let the circuit run for a few days to ensure this remains stable. Then I will tweak the circuit with your suggestions, caps on all device Vcc’s, 5v to Arduino, etc.
Let you know if things are still working in a few days.
Thanks again for your ideas!

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.