this post was submitted on 05 Oct 2023
17 points (100.0% liked)

Ask Electronics

3316 readers
1 users here now

For questions about component-level electronic circuits, tools and equipment.

Rules

1: Be nice.

2: Be on-topic (eg: Electronic, not electrical).

3: No commercial stuff, buying, selling or valuations.

4: Be safe.


founded 1 year ago
MODERATORS
 

My project is a "breathing" white 12v LED strip controlled by an esp32 on a dev board, and switched with an IFLZ44N mosfet.

In my video you can see it working but also hear the power supply complaining.

I'm using the LEDC Arduino library which allows me to select the frequency and resolution for PWM.

If I set the frequency too low the whine is extreme, but at this setting it's the best I've been able to achieve, which is about 9000Hz. Unfortunately you can still hear the sound from across the room!

It is a cheapo solid state power supply that claims it can output 12v up to 25A. I tried my desktop supply and it emits some whine too, so I don't think replacing the power will totally fix this.

Is there a technique for tuning the frequency or even just masking it somehow?

you are viewing a single comment's thread
view the rest of the comments
[–] BigDanishGuy@sh.itjust.works 2 points 1 year ago* (last edited 1 year ago) (1 children)

Are the changes in pitch alone, or does the amplitude change as well?

What happens if you set the frequency to something extremely low? I know that 50Hz is unusable, it will flicker, but does something still hum at 50Hz? What about if you increase the frequency in steps until you approach 200Hz?

Your multimeter couldn't measure anything when you went to 25kHz? That may be an issue of the microcontroller not supplying enough current to charge the gate capacitance on the mosfet in time, or not drain it fast enough to turn it off. If you disconnect the esp from the rest of the circuit, can you measure something then?

If yes, then you'll want to use a push pull pair for driving the mosfet. Or get a mosfet driver, but a bc547/bc549 pair and a bit of passives will be fine, available in through hole, and considerably cheaper.

If no, then either the esp can't go that fast in this implementation (was it a software PWM?) or your multimeter doesn't work in that range.

[–] nucleative@lemmy.world 2 points 1 year ago (1 children)

Interesting suggestions, I would not have tried such low frequencies except based on your suggestion and it turns out that going very low, below 1000Hz and even down to 100Hz causes the power supply whine to almost entirely go away. I also have a 470uF capacitor in between the power rails now too.

This range is a usable - there is no visible flickering even at very low duty cycles.

From what I understand in the reference guides the LEDC library attaches directly to the 80mhz or 40mhz esp32 hardware clock for PWM. Intuitively I'd have guessed that higher frequency would always mean less discernable audible feedback, but seems not in this case.

[–] BigDanishGuy@sh.itjust.works 1 points 1 year ago (1 children)

This range is a usable - there is no visible flickering even at very low duty cycles.

Before deciding on the frequency, and then mounting the strip in a position where the LEDs are directly observable, you should try moving the LEDs fast relative to your eyes. Eg. take the end of the strip and wave it from side to side. You may notice flicker at frequencies below 200Hz.

[–] nucleative@lemmy.world 1 points 1 year ago

Ok, good thinking. I settled on 1000Hz and also made it something in remotely reconfigure should the need arise. That combined with the other suggestions, and getting a better power supply has made the system whisper quiet now.