Take the 2-minute tour ×
Electrical Engineering Stack Exchange is a question and answer site for electronics and electrical engineering professionals, students, and enthusiasts. It's 100% free, no registration required.

One of my analog pins, A0, on my Arduino Uno, is not giving totally accurate results. Where as one of the other pins will do a full 0-1023 in a certain use case, the problem pin only seems to be outputting around 50-730.

Is this pin getting interference somehow, or is it perhaps defective?

share|improve this question
1  
Have you connected the two pins together so that there is indisputedly the same input to both pins? Are you still getting incorrect readings on A0 compared to the other pin? –  Andy aka May 28 '13 at 7:09
    
I just set up a test where it read exactly the same input on all of the analog pins. These are the numbers I was consistently getting: 731, 1022, 1023, 1023, 1023, 1023. A0 was either at 731 or 732 and all the other pins were at 1022 or 1023. –  Adam Dally May 28 '13 at 15:02
    
It also appears that when reading voltages off of A0 that the Atmega heats up to an desirable temperature. At first my test was putting a 1000ms delay between each of the reads, but reducing it down to 100ms keeps the board consistently hot while A0 is plugged in. –  Adam Dally May 28 '13 at 15:15
    
A desirable or undesirable temperature? Immaterial really - sounds liked you've cooked A0 somehow –  Andy aka May 28 '13 at 15:17
    
oh undesirable** and yes if it's reading solely the A0 pin it's becomes extremely hot. –  Adam Dally May 28 '13 at 15:21

3 Answers 3

The chip is defective I would say. All analogue input pins tied together produces consistent results except for A0. The chips gets warm when focussing on reading A0 - this could be an over/under voltage on the input but this has been ruled-out by the previous test. This could have happened through a static discharge or it could be a random failure - these things are very rare in my experience but they will happen once in a while for someone.

If previously that pin was used as an output (I'm not too familiar with Arduinos) maybe it got over-stressed somehow. Being that it is A0 (and not A1, 2, 3 etc) that has failed makes me suspect a previous incarnation of its use but this is also a long shot.

Buy a new one I think is the best advice or live with the defective pin if you can avoid using it. If it also doubles up as a digital output maybe you can test to see if that side of things still works?

share|improve this answer
    
A0 = D14 on the Uno, so yes, a digital write test can be done. –  Ron J. Jun 28 '13 at 13:24

The problem may be with your specific Arduino Uno board, not the microcontroller.

With the power off, check the resistance between the A0 pin and GND pin, and A0 and Vcc pin, respectively.

If either appears to be a short or (more likely) a low resistance, examine the A0 trace with a magnifier or microscope for a solder short somewhere.

The heating up of the board, and the lower-than-expected readings, lead to a possible conclusion of a short of some sort.

share|improve this answer

I had some thing similar. One analogue input was showing a constantly odd value compared to the other three analogue inputs i was using. All resistance measurements where ok.

I used a trim resistor (slider) applying the ATmega2560 reference voltage to the ADC inputs. No idea why but this only worked on 3 of the 4 ADCs.

I then used the 5V supply at the slider and - surprise - all readings where as expected. I have no idea what went wrong there. I will read the spec of the Vref - but might not find this page thereafter... just in case...

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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