Hey guys, i want to make my WS2811 Led strip reactive to Bass of the music i am listening to.
The WS2811 strip is controlled by my arduino Nano. The arduino cannot read negative voltages.
I came up to 2 possible methods:
1. Using one of those tiny Microphones
2. Reading the Signal coming out of the Aux jack of my pc.
The 1st method is not really accurate because of resonances in my Room, which is why i chose the 2nd method.
There, i was offered a popular method - The MSGEQ7 IC, which is great, but also REALLY hard to get, since there are lots of fakes.
Because of that, i had to start tinkering to be able to Read the audio signal.
To achieve what i want, i need to apply a DC offset at half the arduinos voltage Reading Range ( it can read 0V-5V, so DC offset = 2.5V), and additionally Filter the signal to only get Bass.
I came up with this circuit:
first we got a coupling capacitor, which combined with the 11k resistor builds a fixed highpass Filter. After that, 2.5V of the arduino are being added as DC offset. Then, the signal gets filtered with the RC configuration, to only get the Bass frequencies.
In theory, this should work, but practically, the arduino reads peak to peak voltages of around 200mV, which is way too low, since the signal input features peak to peak Voltages of ~3V. The RC filters lower the Signal by -6db ( ~ 50% ), so the Arduino SHOULD measure peak to peak of 1.5V, which it does not.
The code definitely is not the problem, since it only is the analogRead function and that value lowered by 512 ( the DC offset being subtracted ).
Any thoughts?
greetings from Germany
The WS2811 strip is controlled by my arduino Nano. The arduino cannot read negative voltages.
I came up to 2 possible methods:
1. Using one of those tiny Microphones
2. Reading the Signal coming out of the Aux jack of my pc.
The 1st method is not really accurate because of resonances in my Room, which is why i chose the 2nd method.
There, i was offered a popular method - The MSGEQ7 IC, which is great, but also REALLY hard to get, since there are lots of fakes.
Because of that, i had to start tinkering to be able to Read the audio signal.
To achieve what i want, i need to apply a DC offset at half the arduinos voltage Reading Range ( it can read 0V-5V, so DC offset = 2.5V), and additionally Filter the signal to only get Bass.
I came up with this circuit:
first we got a coupling capacitor, which combined with the 11k resistor builds a fixed highpass Filter. After that, 2.5V of the arduino are being added as DC offset. Then, the signal gets filtered with the RC configuration, to only get the Bass frequencies.
In theory, this should work, but practically, the arduino reads peak to peak voltages of around 200mV, which is way too low, since the signal input features peak to peak Voltages of ~3V. The RC filters lower the Signal by -6db ( ~ 50% ), so the Arduino SHOULD measure peak to peak of 1.5V, which it does not.
The code definitely is not the problem, since it only is the analogRead function and that value lowered by 512 ( the DC offset being subtracted ).
Any thoughts?
greetings from Germany