Функция 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); // выводим полученное значение }