Sound sensors for LED project

Hello
I am planning to get a sound sensor for my project and would like to ask if anyone has any useful advice please.
At the moment my plan is to have three LED strips (I am using a ws2812b) that will react to music, nothing super-accurate, just a fun lamp; but I was thinking to have the three strips reacting to low mid and high frequency for example, or have one strip for the beat. Something of this sort.
What sensors would be most indicated for such project? Many thanks!

There are some microphone modules with an amplifier with AGC (maybe MAX9814 ) for Arduino, but I have never used one. For decomposing the sound into frequency bands, maybe mathematically with an FFT, but a few years ago I never managed to get such a library to work. I strongly recommend a hardware variant with an MSGEQ7 chip - it's cheap, easy to work with and I had no problems with it.

I would also mention MSGEQ7 chips. But be aware that there are many fakes. How to tell fake MSGEQ7 parts.

FYI - You can run a line-level or headphone-level single directly into the MSGEQ7 (or into an Arduino analog input as long as you take care of the negative half of the AC audio signal). With a direct input, your effect won't be messed-up by acoustic noise or sounds in the room. The sound sensors also tend to be sensitive to electrical noise, making it hard to sense quiet sounds.

if you want to use a sound sensor/microphone board, there are 3 or 4 kinds:

The most common type puts-out a biased analog audio signal. it's a mic & preamp with a biased output so you don't feed the negative half of the audio signal voltage into the Arduino (which can damage it). This is the kind you want. I have the SparkFun 12758. (But I use a direct audio connection for my lighting effects.)

There is another type with an envelope follower (AKA peak detector) output. It puts-out a varying DC voltage proportional to the loudness. It's easy to use but you loose the frequency information.

Another type has an adjustable threshold and it puts-out a digital 1 when the sound goes over the threshold, and otherwise puts-out a digital 0.

Another type puts-out digital audio. It would work for you, but it requires a library to read the digital audio, and it won't work with the MSGEQ7.

...Just to get started, you might want to take a look at my World's Simplest Lighting Effect.

Hi All

Thank you very much for all your suggestions. I will look into it and update this post when I have made my choice :stuck_out_tongue_winking_eye:.

very helpful!

For this project I am planning to use a sensor as I don't want to run audio cables to it. However, I am planning to build something more speficially for music in the future (when time will allow...) and for that I will definitively need more definition. I would prefer not to have cables around though, and I suppose that the AGC suggested by @flashko may come handy there.... although clearly not as good as running a line level signal direct....

Bluetooth? So there are no cables and it won't be affected by ambient noise.

That's a good idea, I initially didn't think it was suitable because my speaker are already Bluetooth but it looks like there devices that can split the audio signal to different Bluetooth receives... I have never done it before...

Just want to share this in the forum:
I have found a module that is great for my project :

It has 3 different outputs: envelope (an analogue represantation of the audio amplitude), gate (digital output triggered by the amplitude exceding a certain threshold) and audio output.
It think it's brilliant! I am not sure if I will use it as I initially intended as the first attempts (without bothering with splitting frequencies) are giving me quite good results. However, the audio output could be used for FFT or to feed into an MSGEQ7.
I want to finish this project asap, so I will probably leave the MSGEQ7 for now, but this module definitively offers many options.... :stuck_out_tongue_winking_eye:

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