Arduino

Buy | Download | Getting Started | Learning | Reference | Hardware | FAQ

Blog » | Forum » | Playground »

Reference Language (extended) | Libraries | Comparison | Changes

## analogRead()

#### Description

Reads the value from the specified analog pin. The Arduino board contains a 6 channel (8 channels on the Mini and Nano), 10-bit analog to digital converter. This means that it will map input voltages between 0 and 5 volts into integer values between 0 and 1023. This yields a resolution between readings of: 5 volts / 1024 units or, .0049 volts (4.9 mV) per unit.

It takes about 100 us (0.0001 s) to read an analog input, so the maximum reading rate is about 10,000 times a second.

#### Syntax

analogRead(pin)

#### Parameters

pin: the number of the analog input pin to read from (0 to 5 on most boards, 0 to 7 on the Mini and Nano)

#### Returns

int (0 to 1023)

#### Note

If the analog input pin is not connected to anything, the value returned by analogRead() will fluctuate based on a number of factors (e.g. the values of the other analog inputs, how close your hand is to the board, etc.).

#### Example

    int analogPin = 3;     // 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
    }

#### See also

- analogWrite()
- Tutorial: Analog Input Pins
- RCtime

Reference Home

Corrections, suggestions, and new documentation should be posted to the Forum.

The text of the Arduino reference is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.

Edit Page | Page History | Printable View | All Recent Site Changes