Curious about failed audio input circuit

I tried to built a small pre-amp to use an electret mic as an audio input sensor for a project, but I am not getting the readings that I want from it. Full disclosure, I put the schematic together about a year ago, and only just recently got the PCB made. I thought it would be OK (everything else is working fine), but I didn’t do my due diligence on checking it out :stuck_out_tongue:

My project uses a 3.3V Arduino core, so I put together a really simple pre-amp based on a 2n2222 to amplify the electret mic signal for analog reading. Trouble is, every reading I get is over 1000 (returned by analogRead())! I now know that I maybe should have gone the extra step and used an op-amp, but I’m just curious about why this didn’t work.

Its been a couple years since I’ve had any analog circuitry course work, so I don’t quite know what is wrong with the schematic attached. Can someone give me some insight about why I am getting nearly maxed out readings at all times with this?

Typically you need to capacitance couple the mic signal to the amp stage and then bias the amp stage into it's linear operating range like this example ( which would probably have to be tweaked for 3.3vdc operation)



Change R2 to 2k, 10k is too high for most electrets IIRC.

How are you coupling that signal into the Arduino?. I would certainly hope you have a DC blocking capacitor, 1 - 4R7 uF would be an appropriate range.


The other guys are essentially right in their comments. The reason your A/D is reading near max is specifically because the NPN is not turned on hard enough. If you would read the voltage on the base you'd see it's very low - somewhere around 1V or less, no doubt because the electret is pulling it down.

Re d_e's comment, you might not want to AC couple the output because then the signal to the A/D will be going negative half the time. I would rather fiddle with the R values [base and emitter Rs], and bias the collector to near Vcc/2, and DC-couple it to the A/D.