I'm using an Arduino to read an analog signal from an electret microphone. Here is the circuit:

enter image description here

But I will be powering it with 5V from the Arduino,

So would this work okay? Thanks!

  • 3
    \$\begingroup\$ R3 & R4 should NOT be equal. As Steven notes, the output cannot go to V+. When powered from 5V the output will go from almost 0 to +2 to +3 V, so ICI pin 3 wants to be set t about 1.5V, maybe less. So make say R4 = 10k and R5 = 22k. This sets pin 3 at R4/(R3+R4 x V+ = 10/32 x 5 = 1.6V. \$\endgroup\$
    – Russell McMahon
    Commented Oct 12, 2011 at 12:58
  • 1
    \$\begingroup\$ @Russel: You are right, but this can also be fixed by using the right opamp, like a MCP602x for example. Those go rail to rail and then R3 and R4 should be equal. \$\endgroup\$ Commented Oct 17, 2011 at 16:59

3 Answers 3


The critical part is the opamp. The LM358 is not an RRIO (Rail-to-Rail I/O) opamp, which here means that the output voltage will be a few volts shy of the supply voltage, so don't expect it to go higher than about 3V. On the lower side there's no problem, the datasheet specifies an output low level of 5mV typical.
So if you keep the amplification to a decent level (controlled by R5) this should work. You can also set the virtual ground to 1.5V (halfway the output range) instead of 2.5V, by choosing R3=22k. This will give you an output voltage swing of 3Vpp, instead of 1Vpp.

As an alternative to the LM358 you might use a rail-to-rail output opamp, like the LMV321. You can then leave R3=10k. (Rail-to-rail input isn't required since the input stays around the virtual ground.)

  • \$\begingroup\$ Is the LM358 really RRIO? It just says rail-to-rail output in the datasheet. (Which should be sufficient here.) \$\endgroup\$ Commented Oct 12, 2011 at 13:14
  • \$\begingroup\$ @leftaroundabout - it isn't, like I said in my answer. Not even rail-to-rail output. Look for "output voltage swing" in the datasheet. \$\endgroup\$
    – stevenvh
    Commented Oct 12, 2011 at 13:23
  • \$\begingroup\$ Sorry, I meant the LMV321 of course. \$\endgroup\$ Commented Oct 12, 2011 at 13:33
  • \$\begingroup\$ @leftaroundabout - you're right, it's only RR output, not input. I'll fix my answer. \$\endgroup\$
    – stevenvh
    Commented Oct 12, 2011 at 13:39

Your basic topology looks OK. Please fix the schematic to include the component values directly. It's annoying and error-prone to have to look over at the side to see what value each component is.

Some comments on the circuit:

  1. Check the datasheet for the microcphone. R1 should possibly be lower, especially with a lower supply voltage.

  2. I didn't look up a LM358, but you have to make sure the opamp runs well from only a single ended 5V supply. For 5V, you usually want a CMOS rail to rail input and output opamp. Microchip makes some nice ones for that voltage. The MCP602x might be a good choice.

  3. You should add a cap to ground at the opamp positive input. You want this to essentially be a DC level close to 1/2 the supply voltage. Your DC level is right, but as you have it now it will also get 1/2 of the noise on the supply. A 1µF cap to ground will squash most of the noise nicely.

  4. R2 is too low and will load down the microphone output too much. You therefore won't get the gain you expect. Use a lower R1 (check microphone datasheet) and a higher R2, then R5 about 100 times R2 to give you a top gain of 100. If you want more gain, use a additional gain stage. Don't try to make this single stage give you more than 100x voltage gain.


Keep in mind that the gain for this circuit shifts your frequency response slightly, it's only about 15hz but feels a little sloppy. The microphones I use generally require a much higher gain.


Also, if there's no additional stages remove the cap to the next stage or You'll only be able to measure half the signal as it swings around vcc/2 and the cap removes the dc component.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.