analogRead() / Arduino
Описание
Считывает значение с указанного аналогового вывода. Плата Arduino содержит 6-канальный (7-канальный на платах MKR, 8 на Mini и Nano, 16 на Mega), 10-разрядный аналого-цифровой преобразователь. Это означает, что он преобразует входные напряжения от 0 до 5 вольт в целые значения от 0 до 1023. Это дает разрешение между показаниями: 5 вольт / 1024 единицы или, 0,0049 вольта (4,9 мВ) на единицу. Входной диапазон и разрешения могут быть изменены с помощью analogReference()
.
Для чтения аналогового входа требуется примерно 100 микросекунд (0,0001 с), поэтому максимальная скорость считывания составляет около 10000 раз в секунду.
Синтаксис
analogRead(pin)
Параметры
pin: номер аналогового входа, значение с которого необходимо прочитать (от 0 до 5 на большинстве плат, от 0 до 6 на MKR, от 0 до 7 на Mini и Nano, от 0 до 15 на Mega).
Возвращает
int
(от 0 до 1023).
Пример кода
Код считывает напряжение с analogPin
и отображает его.
int analogPin = 3; // ползунок потенциометра (средний вывод) подключен
// к аналоговому выводу 3, крайние выводы – к земле и +5В
int val = 0; // переменная для хранения значения показаний
void setup()
{
Serial.begin(9600); // настройка последовательного порта
}
void loop()
{
val = analogRead(analogPin); // прочитать входной вывод
Serial.println(val); // значение для отладки
}
Примечания и предупреждения
Если вывод аналогового входа ни к чему не подключен, значение, возвращаемое analogRead()
, будет колебаться в зависимости от ряда факторов (например, значений других аналоговых входов, как близко ваша рука к плате, и так далее).