We have developed an Atmega328p based Kit. We want to read some analog sensor values in the application. But analog readings always returns 1023. Even If we connect GND pin with analog pin, it gives 1023.

Here the schematic diagram has been attached.

enter image description here

We tried with both Arduino analogRead() function and microc function adc_Read(). Both adc reading always returns 1023.

We have also followed these Q&As below:

Q&A StackExchange

Q&A StackOverflow

Q&A AvrFreak

But no luck yet.

Is there any bugs in our schematic?

Your suggestions and helps are appreciated.

Thanks in advance.

  • \$\begingroup\$ Is your AREF really tied to ground on your physical circuit? Do you have your code configured to use the external reference? Because that would do it. \$\endgroup\$
    – justing
    Oct 19, 2015 at 4:03
  • \$\begingroup\$ Yes. AREF is physically connected to GND. No we haven't configured external reference. Do we have to set EXTERNAL instead of DEFAULT. \$\endgroup\$
    – Jeyanth90
    Oct 19, 2015 at 5:26
  • \$\begingroup\$ Why would you connect AREF to ground ? A 1 uF decoupling cap to ground is a better idea. The internal ADC needs a reference, it is your choice to use the internal (then decouple AREF) or use an external reference, then connect that to AREF. Look at some examples how to use the ADC, it is very easy to use. \$\endgroup\$ Oct 19, 2015 at 7:32

1 Answer 1


As FakeMoustache mentioned, the problem was in connecting AREF directly to GND. After we connect the AREF to GND via 1uF decoupling capacitor, it works fine.

  • \$\begingroup\$ @m.Alin when the internal (bandgap) reference is used AREF needs to be connected only to a cap - not to VDD. \$\endgroup\$
    – kabZX
    Oct 19, 2015 at 12:15

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.