3

I have an Arduino UNO. I have a sensor that has 3.3v output. To maximize ADC precision, I've jumpered the 3.3v Arduino output to the AREF and in setup have

analogReference(EXTERNAL);

I have a timer set to tick periodically. When it does, the ADC is read from A1 via

analogRead(1)

So to test the reference, I jumpered the 3.3v to the A1 input. Since the ADC is 10 bits, I expected to get values at or close to 1023. Instead, they vary between about 870-880. Any thoughts?

user3657408
  • 89
  • 1
  • 7

1 Answers1

0

On the AREF Pin there is an internal 32k resistor. So you have to put a resistor at the AREF pin in order to give it 3.3V perfect input. You can simply use a resistor along with 32k resistor and supply perfect 3.3V.

Meet Desai
  • 173
  • 1
  • 8
  • I'm afraid I don't get it. The internal resistor is the bottom leg of a voltage divider. The formula is Vout = (Vin * R1) / (R1 + R2) where R2 is the Arduino resistor. Vin is 3.3v and I want Vout to be 3.3v. Hence R1 should be zero ohms; that is, no resistor. What am I missing? – user3657408 Jul 21 '15 at 17:20
  • What you can do is take the Vin as 5v. In that case your external resistor would come up to 64kOhm. If you want to use a 3.3v supply as Vin try with values as low as 100 ohm or 50 ohm. That will not give you exactly 3.3 but your application can manage that much tolerance. – Meet Desai Jul 22 '15 at 03:10
  • But why do I need any resistor at all if I'm using 3.3 v input? It should just work. – user3657408 Jul 22 '15 at 10:53
  • Because there is an internal resistor of 32k on the AREF pin. – Meet Desai Jul 27 '15 at 04:33