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?

  • cmnybo@discuss.tchncs.de
    link
    fedilink
    English
    arrow-up
    5
    ·
    1 year ago

    Try adding a large, low ESR capacitor across the power rails on your board. Preferably a polymer electrolytic if you have some.

      • draz@lemmy.world
        link
        fedilink
        English
        arrow-up
        2
        ·
        edit-2
        1 year ago

        Caps are definitely the first thing to try. To add on, the higher your frequency, the smaller caps you’ll need. At 10kHz you’ll need around 200uF of decoupling but at 50kHz you’d only need around 40uF. The smaller capacitance means you can find caps with better ESR, or just fit into a smaller space in general.

        The drawback of higher frequency is that you’ll be charging and discharging the gate of the MOSFET more often, which could mean heating it up and hitting thermal limits quicker. There’s also a tradeoff within the MOSFET itself between low on-resistance and lower required gate charge - for slow switching you can find a FET with low Rds and high gate charge since youd be switching less often, but for very high frequency applications the amount of energy you put into charging and discharging the FET (mostly since the FET will spend a longer time in its linear region) can outweigh the savings of the lower resistance. Yay tradeoffs!

        • nucleative@lemmy.worldOP
          link
          fedilink
          English
          arrow-up
          1
          ·
          1 year ago

          Thanks for typing this up! This helps me understand a lot more about what is going on.

          I may have purchased too large of cap for the first try: 470uF. I bought it online so still waiting for arrival. I’ll get some in the 40uF to 200uF range for more testing