5
\$\begingroup\$

Is it possible to configure the Arduino to give me 0-10V analog input?

I realize that I can use a voltage divider. I was just wondering if I can use a larger range for the analog input.

\$\endgroup\$

migrated from stackoverflow.com Nov 8 '11 at 2:18

This question came from our site for professional and enthusiast programmers.

  • 1
    \$\begingroup\$ No, you can't. That would exceed the input's maximum rating, which is a physical limitation and can lead to damage. It is absolutely normal practice to proportionally scale the analog signal down to something that your device can handle as others have suggested here, and this is what you should be doing. Once you get the value in software, feel free to scale it back up to whatever you want. \$\endgroup\$ – Jon L Nov 9 '11 at 5:26
10
\$\begingroup\$

Input voltages can be "scaled" down to suit the Arduino's ADC input voltage range.
As Oli says, a 10V input can be scaled down with a potential divider.
In its most basic form this can be two resistors.

As shown below, the input current flows through R1 and through R2.
Voltage drop across a resistor = V = I x R
As both resistors carry identical current (= input current)
the voltage drop across each resistor is proportional to the resistor value

enter image description here

So, if R1 = R2 then the the voltage across each is equal so they each drop half the input voltage.

In the general case - input voltage is across R1+R2. Output voltage is across R2 only. So Vout = Vin x R2 / (R1 + R2)

ie the division ratio = R2 / (R1 + R2)

When R1 = R2 the division ratio is 1/2 so
a 0-10V input will be reduced to o-5 volts.

R1 and R2 can be typically 10k ohms each in this case.

Much larger values can be used but they can affect the conversion accuracy. eg 100k + 100k.
Usually it is wise to limit R2 to not more than about 20k ohm.

\$\endgroup\$
3
\$\begingroup\$

I believe the analogue pins natively take 0-5V. In which case, you simply need to use a potential divider to halve your input voltage.

\$\endgroup\$
0
\$\begingroup\$

You can modify the Arduino (ie, the assembly/pcb) with resistive dividers, op-amps, or whatever to change the input range (though it may be easier to mount these off board) by prescaling the signal before it reaches the AVR chip.

You cannot however increase the actual input range of the AVR chip itself that is on the board.

\$\endgroup\$
0
\$\begingroup\$

The resistor divider example is the easiest. If you arrange two resistors of equal value (say 1K ohm & 1k ohm), with one end attached to Ground (0v) and the other furthest end to your input, at the midpoint (ie where they are connected to each other) the voltage will equal half of the input votage. Can't do a very goo diagram here bu esserntially:-

Vinput ---///--- Voutput ---///--- Ground. Where ---///--- is each resistor.

The equation given above is correct.

Think of it as two springs where voltage is how far they are extended; If you pull on the top of both springs, the midpoint will be half the height of the top. Hence half the voltage. An easy pictorial analogy.

Mr.H.

\$\endgroup\$
  • \$\begingroup\$ This site has a built-in schematic editor which would produce a much more readable result than your ascii-art ... \$\endgroup\$ – brhans Jan 7 '16 at 15:20

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.