Led music visualizer - help in grabbing signal

Hi, I'm trying to build up a Led Audio visualizer based on Arduino and a BT audio amplifier.

The project is composed by:

  • Bluetooth audio receiver and amplifier (KKmoon TDA7492)
  • 2 speakers
  • Arduino
  • many resistors and leds

The target is to "read" with arduino the audio signal and light on/off a rows of led depending by the signal intensity.

For test purpose, when I use the source signal coming out from the audio out (jack 3,5mm) of the laptop or mobile it works very well.

But, when I try to use the amplified signal (that is the only signal that I'll be available in the final project) coming out from the TDA7492 direct to the speakers... it doesn't work.

How can I "transform" the amplified signal to a "source" signal?

Unfortunately I've not way to "read" the source audio signal (not yet amplified) but only the amplified signal coming out from amplifier vs the speakers.

With this signal the visualizer is not work

You can amplify a signal with an operations amplifier.
This circuit is for stereo but you only need to make half of it.

Theres a cheap and dirty way i've found. I can't comment on how "proper" it is but its working
Just use the left side of the circuit for this

Its a simple voltage divider combined with a high pass filter. (Left side of MEGA chipset )

This should increase the voltage on the input keeping it about 5v which has been working fine for me so far

If anyone can tell me why this is a bad idea please do.

Its a simple voltage divider combined with a high pass filter.

Given that beats are basically low frequency why not use a low pass filter?

Grumpy_Mike:
Given that beats are basically low frequency why not use a low pass filter?

My train of thought is this. The first circuit ive posted doesnt actually filter the signal enough to create a high/low pass effect on the output. The script im using does some internal filtering (in the arduino) to determine frequency.

The analog pins only register 0-5v converting into 0-1023 using analog read.

Audio input is normaly coming in between -5v and +5v. meaning i would have to step the voltage up by 5v to get a readable signal. Also i believe negative voltage can damage analog pins? (Unconfirmed)

I couldn't find a way to build the circuit to get a stable output with a Low pass config.

Voltage either drops low (making the scripts have less to work with) or noise interferance makes it unusable...

Please if im wrong prove it to me so i can learn more.

caku:
The target is to “read” with arduino the audio signal and light on/off a rows of led depending by the signal intensity.

I dont think i actually read you post… Sorry for that. You will want to do the following

  1. Convert 3.5mm jack input to 0v-5v using a voltage divider or similar circuit.
  2. Input that 0v-5v signal into an arduino analog pin.
  3. Have you script “Analog read” the pin. Converting it from 0 - 1023 signal
  4. Divide 1023 into how many led strips you want to use. (eg. 1023 / 6 LED = 170.5)
  5. Have your script “react” every time the input changes by desired amount (170.5)

I’m trash at arduino and scripting so i am expecting to be corrected here.

Convert 3.5mm jack input to 0v-5v using a voltage divider or similar circuit.

I doubt very much if you get 0-5V from an audio jack, much more likely is +/- 1V so if you want to get to +/- 2.5V you need an amplifier not a potential divider. It needs to be biased at 2.5V to prevent it going over the limits of the pin.

It will then give you a signal that goes above and below a reading of 512. The further away from 512 it is the louder is the signal.

I'm trash at arduino and scripting

So you should not be giving advice here. This is not a blind leading the blind forum, it is for good solid advice. You might want to try and write an Instructables page if your skill are only what you show here. Very little of what you say is correct.

Grumpy_Mike:
I doubt very much if you get 0-5V from an audio jack, much more likely is +/- 1V so if you want to get to +/- 2.5V you need an amplifier not a potential divider. It needs to be biased at 2.5V to prevent it going over the limits of the pin.

It will then give you a signal that goes above and below a reading of 512. The further away from 512 it is the louder is the signal.
So you should not be giving advice here. This is not a blind leading the blind forum, it is for good solid advice. You might want to try and write an Instructables page if your skill are only what you show here. Very little of what you say is correct.

Sweet mary! i'm not surprised people avoid asking for help here. So many overly passive aggressive posters.

Firstly I never claimed any of my posts to be the "correct" way but they do work for what i've been using them for and they are cheaper and simpler to setup than op-amps.
Which might i add is what people are looking for 99% of the time. A simple circuit that can be built with resistors and capacitors and not special components that you have to order. It may only be a £2/3 for an op-amp chip but why not use what you already have lying around?

I have a draw full of resistors and capacitor yet only a handfull of chip components...

Secondly I never claimed to get 5v from an audiojack. 5V is the gain aim to get a wider readable signal from the analog input...

@caku

I've been running an analog audio input as shown in the first diagram for 10hours straight without any issues so far... With a stable PSU input the voltage divider keeps the signal stable and within the tolerace of the analog inputs. In any book i've ever read thats a win... It works and it doesn't break after long testing. If you want to run your setup 24/7 then go with the op-amp design.

Sweet mary! i'm not surprised people avoid asking for help here. So many overly passive aggressive posters.

If you post a question it will be answered but you did not. You offered an answer and then followed it up with two posts of absolute rubbish.

Then you wonder why you are shot down in flames. I think the word is snowflake.

Grumpy_Mike:
If you post a question it will be answered but you did not. You offered an answer and then followed it up with two posts of absolute rubbish.

Then you wonder why you are shot down in flames. I think the word is snowflake.

Shot down in flames? It's working bud... Are you having trouble reading words? Here let me help you.

#define Attitude 1
#define Adjusted_Attitude Attitude-1

int Is it broken = 0;

void setup() {

if (Is it broken > 0) {
Adjusted_Attitude;
}

I'll eat my words when it breaks but as i said now 12hours running smoothly... Guess i'll be moving platforms from arduino if this is what it does to people...

I get the worlds not going great right now but lets honest this is worst it's ever been for a whole generation so why be grumpy over spilt milk?

20,000 views over a retort that doesn't even make sense... and the person who asked for help has not replied. Welp....