Функция analogRead()

Функция считывает значение с указанного аналогового входа. Большинство плат Arduino имеют 6 каналов (8 каналов у платы Mini  и Nano, 16 у Mega) c 10-битным аналого-цифровым преобразователем (АЦП). Напряжение  поданное на аналоговый вход, обычно от 0 до 5 вольт будет преобразовано в значение от 0 до 1023, это 1024 шага с разрешением 0.0049 Вольт. Разброс напряжение и шаг может быть изменен функцией analogReference().

Считывание значение с аналогового входа занимает примерно 100 микросекунд (0.0001 сек), т.е. максимальная частота считывания приблизительно 10,000 раз в секунду.

Синтаксис

analogRead(pin)

Параметры

pin: номер порта аналогового входа с которого будет производиться считывание (A0..A5 для большинства плат, 0..7 для Mini и Nano и 0..15 для Mega)

Плата Рабочее напряжение Выход Возвращаемое значение

Uno

5 Вольт

A0 .. A5

10 бит

Mini, Nano

5 Вольт

A0 .. A7

10 бит

Mega, Mega2560, MegaADK

5 Вольт

A0 .. A14

10 бит

Micro

5 Вольт

A0 .. A11*

10 бит

Leonardo

5 Вольт

A0 .. A11*

10 бит

Zero

3.3 Вольт

A0 .. A5

12 бит**

Due

3.3 Вольт

A0 .. A11

12 бит**

MKR Family boards

3.3 Вольт

A0 to A6

12 бит**

* - A0 до A5 обозначены на платах, А6 до А11 находятся на пинах 4,6,8,9,10 и 12
** - По умолчаниею analogRead() возвращает значение с разрешением 10 бит, для увеличения битности до 12 используйте команду analogReadResolution()

Замечание

Если аналоговый вход не подключен, то значения возвращаемые функцией analogRead() могут принимать случайные значения.

Пример
int analogPin = 3;     // номер порта к которому подключен потенциометр
int val = 0;           // переменная для хранения считываемого значения

void setup()
{
  Serial.begin(9600);              //  установка связи по serial
}

void loop()
{
  val = analogRead(analogPin);     // считываем значение
  Serial.println(val);             // выводим полученное значение
}
Смотрите также

Справочник языка