analogRead()

Считывает значение с указанного аналогового вывода. Платы Arduino содержат многоканальный 10-разрядный аналого-цифровой преобразователь. Это означает, что он преобразует входные напряжения в диапазоне от 0 до рабочего напряжения (5 В или 3,3 В) в целочисленные значения в диапазоне от 0 до 1023. Например, на Arduino UNO это дает разрешение между показаниями: 5 Вольт / 1024 единицы или 0,0049 вольт (4,9 мВ) на единицу. Смотрите таблицу ниже, в которой указаны используемые контакты, рабочее напряжение и максимальное разрешение для некоторых плат Arduino.

Диапазон входного сигнала может быть изменен с помощью analogReference(), в то время как разрешение может быть изменено (только для плат Zero, Due и MKR) с помощью analogReadResolution().

На платах на базе ATmega (UNO, Nano, Mini, Mega) для считывания данных с аналогового входа требуется около 100 микросекунд (0,0001 с), поэтому максимальная скорость считывания составляет около 10 000 раз в секунду.

Версия платы
(микроконтроллера)
Рабочее напряжение Используемые пины Максимальное Разрешение
UNO R3 5 Volts A0 to A5 10 bits
UNO R4 (Minima, WiFi) 5 Volts A0 to A5 14 bits**
Mini 5 Volts A0 to A7 10 bits
Nano, Nano Every 5 Volts A0 to A7 10 bits
Nano 33 (IoT, BLE, RP2040, ESP32) 3.3 Volts A0 to A7 2 bits**
Mega, Mega2560, MegaADK 5 Volts A0 to A14 10 bits
Micro 5 Volts A0 to A11* 10 bits
Leonardo 5 Volts A0 to A11* 10 bits
Zero 3.3 Volts A0 to A5 12 bits**
Due 3.3 Volts A0 to A11 12 bits**
GIGA R1 WiFi 3.3 Volts A0 to A11 16 bits**
MKR Family boards 3.3 Volts A0 to A6 12 bits**

* На плате нанесены обозначения от A0 до A5, от A6 до A11 доступны соответственно на выводах 4, 6, 8, 9, 10, и 12

** Разрешение analogRead() по умолчанию для этих плат составляет 10 бит, для совместимости. Вам нужно использовать analogReadResolution(), чтобы изменить его на более высокое разрешение.

Синтаксис

analogRead( pin )

Параметры

pin - номер аналогового входа для считывания Arduino

Возвращает

Аналоговое значение на выводе. Хотя оно ограничено разрешающей способностью аналого-цифрового преобразователя (0-1023 для 10 бит или 0-4095 для 12 бит). Тип данных: int.

Пример

Код считывает напряжение на аналоговом выводе и отображает его (считывается значение потенциометра).

int analogPin = A3; 
// токосъемник потенциометра (средняя клемма) подключена к аналоговому контакту 3, внешние выводы заземлены и + 5 В

int val = 0;  
// переменная для хранения прочитанного значения

void setup() {
    Serial.begin(9600); 
    // Запуск по Serial со скоростью 9600
}

void loop() {
    val = analogRead(analogPin); 
    // считайте входной PIN-код
    
    Serial.println(val); 
    // вывод значения
}

Примечание

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

Тип функции

Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *