Hey all so I have a 5m ws28012b 12v LED strip and wanted to change the colors of it based on audio frequencies captured by a microphone.
First off what hardware components would I need to accomplish this? Would just a microphone, LED strip and an arduino UNO work?
Also how would I go about writing the code for this? Also I want the light to stay on the last color it was on if its not detecting any significant sound.
You need an amplifier on the microphone to get it up to 2.5V peak to peak and then AC couple ( that is using a capacitor ) to connect it to an analogue input. Also have a 10K resistor going from this input to ground and another from the input to 5V.
I would suggest that you use the millis timer to measure the time between zero crossings. Map that to a colour and shift all your existing colours up one pixel and put the new colour in the first pixel. This will give you a colour equilivent of a scope.
You need an amplifier on the microphone to get it up to 2.5V peak to peak and then AC couple ( that is using a capacitor ) to connect it to an analogue input.
Not sure what peak to peak means. Will this work?
What type of capacitor would I need?
What about this tutorial? if I just copied thir circuit would I be able to accomplish what I'm trying?
Yes the 7 band equaliser is a good place to start.
Most Instructables are crap, keep away from that web shite.
That particular idiot does not even know you have to have a resistor in seriese with an LED.
I want to use only one LED strip. In the tutorial I noticed each band is separated to a different pin on the Arduino. Is it possible for this shield to separate the bands through one pin? Ultimately I want to associate a specific range of the frequency to a certain color and have the color change when the frequency changes. Is that possible using just one pin?
Is it possible for this shield to separate the bands through one pin?
Yes, you just have to change the software slightly so that one of the channels starts setting the LEDs from half way.
Ultimately I want to associate a specific range of the frequency to a certain color and have the color change when the frequency changes. Is that possible using just one pin?
My question is if i want to utilize all the 7 bands since they are separate pins on the MSGEQ7 IC (each pin is a different band i presume), Can/do I connect them all to DATA on my ws2812b? I only want to use one strip and have the spectrum shield change its colors based on frequencies. Again all i want to do is have the lights constantly on, then change color based on the frequency. Thanks Again!
utilize all the 7 bands since they are separate pins on the MSGEQ7 IC
No, all the seven bands come out of the same pin on a sequence governed by the digital inputs to the chip. This one pin produces an analogue signal that must be connected to a single analogue input of the Arduino.
Yes what you want to do is perfectly possible using just one data line for the LED control.
But it's too complicated for me to reverse engineer. Can you help me out with the code part? Essentially I want the whole strip to be on the same color, but change color based on Frequency. The code here does this fancy thing where if goes through all the Pixels when the sound disappears.