How to read Analog Sensor Data in Arduino Uno Board
Reads an analog input on pin 0, converts it to voltage, and prints the result to the Serial Monitor. Graphical representation is available using Serial Plotter (Tools > Serial Plotter menu).
Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.
Potentiometer
analogRead()
Reads the value from the specified analog pin. Arduino boards contain a multichannel, 10-bit analog to digital converter. This means that it will map input voltages between 0 and the operating voltage(5V or 3.3V) into integer values between 0 and 1023. On an Arduino UNO, for example, this yields a resolution between readings of: 5 volts / 1024 units or, 0.0049 volts (4.9 mV) per unit. See the table below for the usable pins, operating voltage and maximum resolution for some Arduino boards.
The code reads the voltage on analogPin and displays it.
int analogPin = A0; // potentiometer wiper (middle terminal) connected to analog pin 3
// outside leads to ground and +5V
int val = 0; // variable to store the value read
void setup() {
Serial.begin(9600); // setup serial
}
void loop() {
val = analogRead(analogPin); // read the input pin
Serial.println(val); // debug value
}
The map()
function uses integer math so will not generate fractions, when the math might indicate that it should do so. Fractional remainders are truncated, and are not rounded or averaged.
Syntax
map(value, fromLow, fromHigh, toLow, toHigh)
Parameters
value
: the number to map.
fromLow
: the lower bound of the value’s current range.
fromHigh
: the upper bound of the value’s current range.
toLow
: the lower bound of the value’s target range.
toHigh
: the upper bound of the value’s target range.
Returns
The mapped value.
Leave a Reply
You must be logged in to post a comment.