A LM358AN op-amp is choosen to amplify a AC input signal by a gain of 2.0. The input signal ranges from -1V to +1V and from 0 mA to 16.7 mA. The amplified signal will be read by an analog pin of Arduino (10-bit ADC)

How should the input resistance values and feedback resistance values be selected? I understand if the resistances are too high, there will be input noise which I do not want. However power consumption should be as low as possible, since it will be running off batteries. So would it make sense to choose R_feedback = 2k and R_input = 1k for the inverting confifguration.

enter image description here

Between inverting and non-inverting, since only the RMS of the signal will be used, inverting the polarity does not matter. So would it be wiser to go with inverting, since it is better at rejecting common-mode noise?

  • \$\begingroup\$ You should be able to read the signal to within 2mV if you just sent it straight into the ADC according to the specs you gave. 2Vpp/2^10. Why would you add complication and potentially noise to your signal? I don't really foresee the ADC input cap being terribly different than the input capacitance on the op-amp. \$\endgroup\$ – horta Mar 26 '14 at 20:13
  • 1
    \$\begingroup\$ @horta The ADC can read 0-5V, but the input signal is -1 to +1V. To make use of the ADC resolution, I am thinking of amplifying the input signal by 2 and biasing that by 2.5V, so the amplified signal swings between 0.5V - 4.0V. Right now the unamplified signal is swinging between 1.5V and 3.5V after adding a +2.5V bias. \$\endgroup\$ – Nyxynyx Mar 26 '14 at 21:06
  • \$\begingroup\$ 1k and 2k are very low values, almost the lowest that you would use in a high current low noise audio application. I would multiply by at least ten, more if your current limitations dictate. \$\endgroup\$ – user207421 Mar 26 '14 at 21:09
  • \$\begingroup\$ @EJP if the resistors are too low, are we consuming much more power but getting lesser noise in return? \$\endgroup\$ – Nyxynyx Mar 26 '14 at 21:13
  • \$\begingroup\$ That is correct. \$\endgroup\$ – user207421 Mar 26 '14 at 21:20

As far as I'm aware the ADC on an arduino requires 0V to 5V as the range of input and because you have a signal that is -1V to +1V, you need to centre it about 2.5V. If the signal is purely AC then that is easily done with a potential divider and capacitor: -

enter image description here

Note C1, R1 and R2. C1 blocks the average 0V level of the input signal and R1 and R2 set the input side to the op-amp at half-Vdd. You probably don't need the op-amp - just feed the junction of R1 and r2 into the arduino. This is just a convenient circuit I found that is useful for explaining C1, R1 and R2 action.

  • \$\begingroup\$ Can you explain what is mean by blocking the average 0V level of the input signal? \$\endgroup\$ – Nyxynyx Mar 26 '14 at 21:16
  • 1
    \$\begingroup\$ If your input signal ranges from -1V to +1V and is AC in nature it has an average signal value of 0V. This is my assumption about your input signal because you never really explained what it was and measuring RMS of an AC waveform is usually a more useful quantity than the AC + DC RMS value. \$\endgroup\$ – Andy aka Mar 26 '14 at 21:19
  • \$\begingroup\$ Vdd/2 + 2 * (-1V) = 0.5V (okay) Vdd/2 + 2 * 1V = 4.5V. (less so for a an LM358) \$\endgroup\$ – Spehro Pefhany Mar 26 '14 at 21:36
  • \$\begingroup\$ @Spehro Or... use an op-amp with rail-to-rail capabilities BUT my advise is don't use an op-amp - keep it simple. \$\endgroup\$ – Andy aka Mar 26 '14 at 21:48
  • \$\begingroup\$ In the circuit shown, if the point between R1 and R2 is 2.5V and the input signal is at 0V, wouldn't a gain of 2 already push the amplifier output to 5.0V, which is the upper limit of Arduino's ADC? \$\endgroup\$ – Nyxynyx Apr 4 '14 at 1:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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