1
\$\begingroup\$

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?

\$\endgroup\$
8
  • \$\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, 2014 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, 2014 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, 2014 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, 2014 at 21:13
  • \$\begingroup\$ That is correct. \$\endgroup\$
    – user207421
    Mar 26, 2014 at 21:20

1 Answer 1

2
\$\begingroup\$

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.

\$\endgroup\$
7
  • \$\begingroup\$ Can you explain what is mean by blocking the average 0V level of the input signal? \$\endgroup\$
    – Nyxynyx
    Mar 26, 2014 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, 2014 at 21:19
  • \$\begingroup\$ Vdd/2 + 2 * (-1V) = 0.5V (okay) Vdd/2 + 2 * 1V = 4.5V. (less so for a an LM358) \$\endgroup\$ Mar 26, 2014 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, 2014 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, 2014 at 1:57

Your Answer

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

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