# Three different schemes to amplify audio input, which one is correct?

I'm building an audio amplifier (prototype) with display and MCU (Arduino Nano), see photo below (not finished ;-) ).

On the display I want to show some VU-meters of the input but there are different implementations how to do this.

Some claim that you can connect the audio input directly to the pins of Arduino which I have tried but doesn't seems to work. Other claim it is not a good idea to do it that way because there is no circuit seperation or claim that it is impossible because the signal is AC and is too weak (like I just discover, just a few millivolts and Arduino can't measure that).

So I found a few solutions to amplify the signal with use of decoupling and a voltage divider. The voltage divider pull out 2.5V at maximum at a input voltage of 5. The arduino is able to measure this.

Question

The solutions I found are a little different so the question is, which one should I use? Why are they different? Which one is the best to use to show a VU-meter?

Found solutions

Resources

1. Arduino Audio Input http://duino4projects.com/audio-input-to-arduino/

3. DTMF detection library http://forum.arduino.cc/index.php?topic=121540.0

• They are all basically the same - a capacitor to decouple any source DC, something to add back a 2.5V dc to the signal and then into the ADC input of the arduino. Solution 2, however, gets the cap in the wrong place. Mar 2, 2017 at 18:04
• I can't make much sense of solution 2. Where's the analog pin? Mar 2, 2017 at 18:05
• Ah, thanks for the fast comments! @Jim, thanks for the explenation. Any idea why they are that different (component values). I think solution 3 is only for high frequencies, right? Mar 2, 2017 at 18:10
• @Vulcan: At solution 2, the pin is at "AUDIO IN ->". Mar 2, 2017 at 18:11
• The basic difference is the RC break frequencies - (3) uses 0.1uF into effectively 50k (to AC the resistors are in parallel) forming a 'high pass' filter giving 31Hz, (1) uses a 10uF into the 50k giving 0.3Hz. (3) has an input impedance of 1k0 (R1) with (1) about 60k. Mar 2, 2017 at 18:27

None of those will allow you to pickup millivolt level signals.

They will in fact reduce the level to some extent.

You can't use a resistor (or a couple of them like in a voltage divider) to amplify a signal.

Amplification requires an amplifier. This is an active device that takes a power input and a signal input and provides a stronger copy of the input as an output.

If you are working with anything but a dynamic microphone as your audio source, the level should be high enough to measure with an Arduino.

I expect you are working with line levels as usually encountered with typical consumer audio devices. The levels you've measured would be nonsensical in that setting.

A multimeter can't typically do much with an audio signal, especially the less expensive models that beginners usually start with. I think inexperience and an inadequate tool have mislead you as to the signal level in your circuit.

Stop, back up, and hit google and search for circuits for interfacing an Arduino to an audio signal. DO NOT look for your presumed solution (voltage divider) because it will lead you to the wrong thing.

There are numerous questions on this site alone about how to get audio into an Arduino. Look for them. Read up on "operational amplifiers" while you are at it.

• Thanks for the answer, take a look at "operational amplifiers". What I don't understand is that you are saying it is impossible but many examples use similar/same circuit to input audio. Do you think they do it because it is the wrong way to do it? Mar 3, 2017 at 14:48
• You are looking at the wrong thing. If your signal is too weak (as you claim it is) then the circuits you have looked at won't help. If the circuits you have listed work for somebody else, then it is because they are solving a problem other than a too weak signal.
– JRE
Mar 3, 2017 at 19:52
• I think your assumption is incorrect, just implement the 3th one only with a 10uF capacitor and seems to be to do the job just fine. Not sure about the 1K parallel resistor, maybe it is not required but input is very stable. Added some resources to the question, similar example is used to build a PWM amplifier (Class-D theory). I searched on google "operational amplifiers" and google came up with some opamps solutions. It is not clear to me these solutions will give me the voltage measurements I want. Mar 3, 2017 at 23:10
• My assumption is correct. Those passive circuits are not amplifiers. If they work for you, then your assumption of millivolt level signals is incorrect and there is something else wrong that these circuits correct.
– JRE
May 11, 2017 at 9:10

well...

Door #1 is an output "headphones" so we can exclude that.

Door #2, has some potentiometer to adjust the bias for some reason which just seems wrong... unless something else is happening after.

Door #3, has the correct biasing and a.c. coupling with an appropriate drain resistor on the input to ensure the decoupling capacitor is drained.

• Thanks for the answer. Well I think 1 and 3 are very similar except the input resistor. "Headphones" is just a headphone jack, an input and not an output. Mar 2, 2017 at 18:37
• That 10K in series is going to seriously attenuate your signal though..esp the low end. Mar 2, 2017 at 19:45

I would start with looking up pre amp (pre amplifier) circuits using op amps in standard configurations (which are a "design classic" that the electronics designer uses routinely). If you aren't concerned about phase, the inverting configuration is a bit easier to work with. You're looking at four resistors, a decoupling cap and an op amp.

Your basic parameters are; what input impedance do I want? And what gain do I want? The first answer is "at least 10k". The second one is the difference between the input voltage and the best level for your Arduino. You then plug the answers into your standard op amp circuit and away you go.