Go Down

Topic: ADC problem (Read 879 times) previous topic - next topic

saharul


I have simple problem but don't know how to solve.  i try example program as below but find out the ADC read from 300 to 893 but  not 0 to 1023. i connect 10K potentiometer and LED in series to AN0. i use MEGA 2560. Any idea?

Analog input, analog output, serial output

Reads an analog input pin, maps the result to a range from 0 to 255
and uses the result to set the pulsewidth modulation (PWM) of an output pin.
Also prints the results to the serial monitor.

The circuit:
* potentiometer connected to analog pin 0.
   Center pin of the potentiometer goes to the analog pin.
   side pins of the potentiometer go to +5V and ground
* LED connected from digital pin 9 to ground

created 29 Dec. 2008
modified 9 Apr 2012
by Tom Igoe

This example code is in the public domain.

*/

// These constants won't change.  They're used to give names
// to the pins used:
const int analogInPin = A0;  // Analog input pin that the potentiometer is attached to
const int analogOutPin = 9; // Analog output pin that the LED is attached to

int sensorValue = 0;        // value read from the pot
int outputValue = 0;        // value output to the PWM (analog out)

void setup() {
  // initialize serial communications at 9600 bps:
  Serial.begin(4800);
}

void loop() {
  // read the analog in value:
  sensorValue = analogRead(analogInPin);           
  // map it to the range of the analog out:
  outputValue = map(sensorValue, 0, 1023, 0, 255); 
  // change the analog out value:
  analogWrite(analogOutPin, outputValue);           

  // print the results to the serial monitor:
  Serial.print("sensor = " );                       
  Serial.print(sensorValue);     
  Serial.print("\t output = ");     
  Serial.println(outputValue);   

  // wait 2 milliseconds before the next loop
  // for the analog-to-digital converter to settle
  // after the last reading:
  delay(2);                     
}

AWOL

Lose the pot, and connect the analogue pin directly to either 5V or 0V.
What values do you get?
"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.

Nick Gammon

http://www.gammon.com.au/electronics

Grumpy_Mike

Edit that post and put in the code tags.


Quote
i connect 10K potentiometer and LED in series to AN0. i use MEGA 2560.


Is NOT

Quote
* potentiometer connected to analog pin 0.
   Center pin of the potentiometer goes to the analog pin.
   side pins of the potentiometer go to +5V and ground

saharul

Thanks AWOL

connect to 5V =1023
connect to gnd =0

frank26080115

try bit-shifting your sensorValue by 2 to the right instead of using map
Freelance engineer, consultant, contractor. Graduated from UW in 2013.

Nick Gammon

I would be paying attention to what Grumpy_Mike said.
http://www.gammon.com.au/electronics

Go Up