Go Down

Topic: Can an Arduino Analog Pin Read .01 of a Volt? (Read 357 times) previous topic - next topic

ZebH

Hi all,

I am building a voltage divider with R1 = 70 and R2 = 10.
24V = 3V
18V = 2.25V
12V = 1.50V
6V = 0.75V
3V = 0.38V
1V = 0.13V
0.1V = 0.01V

The nice thing about this is you can just times the received value by 8 to get the original value before the voltage was dropped.

What I need to know is, can the Arduino's analog pin read .01 of a volt?

Thanks,

Zeb
One of the most common programming problems is a misplaced/missing bracket.

sterretje

Did you try it? That's the fun of Arduinos, easy to test this type of things.

The ADC has a 10 bit resolution (1024 steps). 5V / 1024 = 0.0049 V per step = 4.9 mV per step.

If you understand an example, use it.
If you don't understand an example, don't use it.

Electronics engineer by trade, software engineer by profession. Trying to get back into electronics after 15 years absence.

ZebH

#2
Jun 09, 2020, 08:50 am Last Edit: Jun 09, 2020, 08:54 am by ZebH
Hi sterretje thanks for your help,

The only way I can think of to test it is to use a potentiometer, but I don't have one yet! But I take it that the Arduino's analog pin can read in increments of 0.0049?

Zeb
One of the most common programming problems is a misplaced/missing bracket.

ZebH

I also wanted to check that using a voltage divider wasn't going to cause any problems with R1 = 70 and R2 = 10. Should that cause any problems?
One of the most common programming problems is a misplaced/missing bracket.

MAS3

Hi.

70 what ?

You need to check availability before you're going to plan things like this.
70 is not a standard value for resistors (68 is though).
10 is a standard value, but you need another balance if you are using 68 instead of 70.
12 and 15 are the next values, so using 12 and 68 would get close to what you've been planning.
But you need to check it still does what you've been planning.

Next, way before building, you should do some calculations.
Ohm's law states U= I * R.
U = voltage, I = current, R = resistance.

Highest voltage you mentioned, is 24 volts.
Total resistance is 80 something.
You can now calculate what current would be drawn by your setup:

U=I*R; so I=U/R

Do the calculations, and keep an eye on what your chosen components can handle.

Power (wattage): P=U*I, you will need that too
Have a look at "blink without delay".
Did you connect the grounds ?
Je kunt hier ook in het Nederlands terecht: http://arduino.cc/forum/index.php/board,77.0.html

ZebH

Hi MAS3,

Sorry the resistors are 70K and 10K. I have been using the tool on this webpage to calculate the output voltage https://bit.ly/30pkIQW.

I have not calculated the watts and current drawn so I should do that.

Thanks,

Zeb
One of the most common programming problems is a misplaced/missing bracket.

JCA34F

#6
Jun 09, 2020, 02:07 pm Last Edit: Jun 09, 2020, 02:59 pm by JCA34F
I would use a 68k in series with a 2.2k (70.2k) for R1 and test all my 10k to see if I had a 10025 Ohm for R2.
10025 / (10025 + 70200) = 0.124961047055 * 24 = 2.99906512932.
 1 / 0.124961047055 = 8.0024937656.  :)

sterretje

You did not mention the board/processor. From the 328P datasheet (emphasis added)

Quote
The ADC is optimized for analog signals with an output impedance of approximately 10 kOhm or less. If such a source is used, the sampling time will be negligible. If a source with higher impedance is used, the sampling time will depend on how long time the source needs to charge the S/H capacitor, with can vary widely. The user is recommended to only use low impedance sources with slowly varying signals, since this minimizes the
required charge transfer to the S/H capacitor.
So if you're using a 328P, I would at least divide your resistor values by 10 (7k and 1k based on your original example or even a bit less).

And next you will need to check, as mentioned, if your source can deliver sufficient current for that.
If you understand an example, use it.
If you don't understand an example, don't use it.

Electronics engineer by trade, software engineer by profession. Trying to get back into electronics after 15 years absence.

Smajdalf

I think voltage divider have equivalent resistance equal to the used resistor in parallel. From the Arduino analog input the divider acts as a voltage source with resistance less than 10k. (Exactly 700/80 ~ 9k).

DVDdoug

If you switch to the 1.1V reference you can get approximately 1mV resolution, which will be more accurate at low voltages.

Then, if you read 1023 you can switch back to the regular 5V reference and re-read.

Ron_Blain

70 Ohms + 10 Ohms in a divider, so Rtotal = 80 Ohms. If you apply 24 Volts your current will be 24 / 80 = 0.3 Amp or 300 mA. In this case with the 70 Ohms on top to 24 volts and 10 ohms on bottom to ground the 70 Ohm resistor will be dropping about 21 volts with 300 mA of current. 21 * (0.3*0.3+ = 6.3 Watts so I hope you plan on some high power (at least 10 watt) resistors.

If the divider is only going to be a divider with an output to a high impedance uC like an Arduino you may want to think about maybe 70K and 10K  That or just get a 10K pot and adjust it for what you want. I use a pair of 10K pots with an ADS1115 using differential inputs and it works just fine and I read my ADS1115 with an Arduino. Anyway, you may want to rething your resistor scheme.

Ron

ZebH

Hi all,

Thanks very much for your help!

Thanks again,

Zeb
One of the most common programming problems is a misplaced/missing bracket.

Go Up