0
\$\begingroup\$

I'm having a problem with a weird audible noise in my sound player circuit.. It's due to an interference with a LED strip.

I've used this circuit (Arduino + DFplayer + Amplified Mini Speaker) many times but since I decided to add a LED strip to the circuit, a very loud noise (which sounds like high frequency strings) appeared..

I've tried to use a 104 capacitor with 270ohm resistor to create a filter, but it didn't work.

Maybe a diode with a capacitor somewhere??

Could anyone give me some suggestions to fix this?

Many thanks in advance! Ian

schematic

simulate this circuit – Schematic created using CircuitLab

enter image description here enter image description here

\$\endgroup\$
  • \$\begingroup\$ How is the speaker amplifier powered? I think that wire is missing from your schematic... \$\endgroup\$ – Vladimir Cravero Feb 24 '17 at 14:43
  • \$\begingroup\$ Most likely your LED strip uses PWM, so it draws pulsed current. This could cause either lots of ripple in the supply, or ground noise. Please show a picture of the setup, or at least a detailed schematic of how the grounds are connected. \$\endgroup\$ – peufeu Feb 24 '17 at 15:42
  • \$\begingroup\$ The amplifier is powered by USB (5v + G)..the wire is there (usb in). \$\endgroup\$ – Chu Feb 24 '17 at 16:53
  • \$\begingroup\$ I have uploaded pictures now. \$\endgroup\$ – Chu Feb 24 '17 at 17:19
  • \$\begingroup\$ The USB lead powering the loudspeaker makes a huge ground loop via the hub. Test with a separate power supply for your loidspeaker. \$\endgroup\$ – peufeu Feb 24 '17 at 17:25
1
\$\begingroup\$

The source of the noise is the PWM controlling of the WS2812 LEDs within the stripe. Their PWM frequency is approx. \$1\,kHz\$ (some say \$400\,Hz\$), what is audible for humans.

The first fix is to add a electrolyte capacitor close to the terminal of the stripe. Chose a \$\ge470\,\mu F\$ cap with a voltage rating from at least \$\ge6\,V\$. You even can use several caps in parallel.

The next step is to filter noise on the player supply lines. Therefore use a resistor of \$\approx 100 \Omega\$ and again a cap \$\ge100\,\mu F\$ with again \$\ge6\,V\$ voltage rating. If you have inductors available replace the resistor with a solenoid. The suitable equation for determining the values is \$f_{Filter} = \frac{1\,kHz}{10} = \frac{1}{2 \cdot \pi \cdot \sqrt{L \cdot C}}\$

If you do not have inductors and there is still noise, you should consider to supply the DFplayer with a separate USB cable from the USB hub.

\$\endgroup\$
  • \$\begingroup\$ Thank you very much for your answer! I really appreciate. When you say 'put the capacitor close to the terminal', is it supposed to be in the voltage or in the ground line? I will try your solution and then let you know the outcome. Thanks. \$\endgroup\$ – Chu Feb 24 '17 at 21:33
  • \$\begingroup\$ The caps must be placed in parallel, NOT in series! Thus, connect one pin of the cap to the GND line and one pin to the VCC line. Attend to the polarity! \$\endgroup\$ – auoa Feb 24 '17 at 21:57
  • \$\begingroup\$ Hi again. I added some capacitors as you suggested, but not much noise was removed. I didn't add the 100ohm resistor as I wasn't sure where (I tried in a few places but it didn't seem to make any difference). The solution I found was to add higher values. I added a 1000uF cap which blocked most of the noise. Then I added a ground noise RCA filter between the audio line and the speaker (it wouldn't work perfectly alone). With these 2 pieces it worked, but I've ordered a few more 1000uF caps as I think if I just add two in parallel it may work without the ground noise filter. \$\endgroup\$ – Chu Mar 1 '17 at 14:07
  • \$\begingroup\$ The best result I had was to use 2x 1000uF and the ground noise filter device, which is an extra cost but whatever it has inside did the job.. Thanks. \$\endgroup\$ – Chu Mar 3 '17 at 11:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.