Arduino:Справочник языка Arduino/Функции/Аналоговый ввод/вывод/analogReadResolution()
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Функция analogReadResolution()[1]
Описание
Эта функция — расширение Analog API для Arduino Due и Zero.
Она задает размер (в битах) значения, возвращаемого функцией analogRead(). По умолчанию оно равно 10 битам (возвращает значения в диапазоне 0-1023) — для обратной совместимости с платами на базе AVR.
Платы Due и Zero способны осуществлять 12-битное аналогово-цифровое преобразование, доступ к которому можно получить, поменяв разрешение на «12». В результате значения от analogRead() будут варьироваться в диапазоне 0-4095.
Синтаксис
analogReadResolution(bits)
Параметры
bits — разрешение (в битах) значения, возвращаемого функцией analogRead(). Может варьироваться от 1 до 32. Впрочем, если выставить в этом значении больше 12, то возвращенное значение будет не точным, а приблизительным. Более подробно об этом читайте в приложении ниже.
Что возвращает
Ничего.
Примечание
Если задать в analogReadResolution() значение, превышающее возможности платы, Arduino в ответ отправит значение, где «лишние» биты будут заполнены нулями.
Например, если вы пользуетесь Due или Zero, а в функции analogReadResolution() решили указать «16», то в итоге получите 16-битное число, в котором первые 12 бит будут содержать реальную информацию об аналогово-цифровом преобразовании, а 4 оставшихся бита будут содержать нули.
А если в analogReadResolution() задать значение, которое будет ниже возможностей платы, то недостающие биты будут просто удалены.
Впрочем, 16-битное разрешение (или другое разрешение, превышающее возможности платы) можно использовать как бы заранее. То есть вы можете написать «дальновидный» скетч, который будет автоматически, без лишней работы с кодом, управляться с девайсами, имеющими более высокое АЦП-разрешение, когда такая возможность появится на новых платах.
Пример
void setup() {
// Запускаем последовательную передачу данных:
Serial.begin(9600);
}
void loop() {
// Считываем с контакта A0 входящие данные (в дефолтном 10-битном разрешении),
// а затем отправляем их через последовательное соединение:
analogReadResolution(10);
Serial.print("ADC 10-bit (default) : "); // "АЦП-данные в 10-битном (дефолтном) разрешении : "
Serial.print(analogRead(A0));
// меняем разрешение на «12» и снова считываем данные с A0:
analogReadResolution(12);
Serial.print(", 12-bit : "); // ", в 12-битном разрешении : "
Serial.print(analogRead(A0));
// меняем разрешение на «16» и снова считываем данные с A0:
analogReadResolution(16);
Serial.print(", 16-bit : "); // ", в 16-битном разрешении : "
Serial.print(analogRead(A0));
// меняем разрешение на «8» и снова считываем данные с A0:
analogReadResolution(8);
Serial.print(", 8-bit : "); // ", в 8-битном разрешении : "
Serial.println(analogRead(A0));
// небольшая задержка, чтобы не перегружать Serial Monitor:
delay(100);
}
См.также
Внешние ссылки
Arduino продукты | |
---|---|
Начальный уровень | Arduino Uno • Arduino Leonardo • Arduino 101 • Arduino Robot • Arduino Esplora • Arduino Micro • Arduino Nano • Arduino Mini • Arduino Starter Kit • Arduino Basic Kit • MKR2UNO • TFT-дисплей Arduino |
Продвинутые функции | Arduino Mega 2560 • Arduino Zero • Arduino Due • Arduino Mega ADK • Arduino Pro • Arduino Motor Shield • Arduino USB Host Shield • Arduino Proto Shield • MKR Proto Shield • MKR Proto Large Shield • Arduino ISP • Arduino USB 2 Serial Micro • Arduino Mini USB Serial Adapter |
Интернет вещей | Arduino Yun • Arduino Ethernet • Arduino MKR1000 • Arduino WiFi 101 Shield • Arduino GSM Shield V2 • Arduino WiFi Shield • Arduino Wireless SD Shield • Arduino Wireless Proto Shield • Arduino Ethernet Shield V2 • Arduino Yun Shield • Arduino MKR1000 Bundle |
Носимые устройства | Arduino Gemma • Lilypad Arduino Simple • Lilypad Arduino Main Board • Lilypad Arduino USB • LilyPad Arduino SimpleSnap |
3D-печать | Arduino Materia 101 |
Устаревшие устройства | - |
Примеры Arduino | |
---|---|
Стандартные функции | |
Основы |
|
Цифровой сигнал |
|
Аналоговый сигнал |
|
Связь |
|
Управляющие структуры |
|
Датчики |
|
Дисплей |
Примеры, объясняющие основы управления дисплеем:
|
Строки |
|
USB (для Leonardo, Micro и Due плат) |
В этой секции имеют место примеры, которые демонстрируют использование библиотек, уникальных для плат Leonardo, Micro и Due.
|
Клавиатура |
|
Мышь |
|
Разное |