Arduino:Справочник языка Arduino/Функции/Аналоговый ввод/вывод/analogReadResolution(): различия между версиями
Myagkij (обсуждение | вклад) Нет описания правки |
Нет описания правки |
||
(не показано 5 промежуточных версий 1 участника) | |||
Строка 7: | Строка 7: | ||
==Описание== | ==Описание== | ||
Эта функция — расширение | Эта функция — расширение [[Analog API]] для [[Arduino:Продукты/Продукты Arduino/Плата Arduino Due|Arduino Due]] и [[Arduino:Продукты/Продукты Arduino/Плата Arduino Zero|Zero]]. | ||
Она задает размер (в битах) значения, возвращаемого функцией analogRead(). По умолчанию оно равно 10 | Она задает размер (в битах) значения, возвращаемого функцией [[Arduino:Справочник языка Arduino/Функции/Аналоговый ввод/вывод/analogRead()|analogRead()]]. По умолчанию оно равно 10 [[бит]]ам (возвращает значения в диапазоне 0-1023) — для обратной совместимости с платами на базе [[AVR]]. | ||
Платы | Платы [[Arduino:Продукты/Продукты Arduino/Плата Arduino Due|Due]] и [[Arduino:Продукты/Продукты Arduino/Плата Arduino Zero|Zero]] способны осуществлять 12-битное аналогово-цифровое преобразование, доступ к которому можно получить, поменяв разрешение на «12». В результате значения от [[Arduino:Справочник языка Arduino/Функции/Аналоговый ввод/вывод/analogRead()|analogRead()]] будут варьироваться в диапазоне 0-4095. | ||
==Синтаксис== | ==Синтаксис== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
analogReadResolution(bits) | analogReadResolution(bits) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 21: | Строка 21: | ||
==Параметры== | ==Параметры== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
bits — разрешение (в битах) значения, возвращаемого функцией analogRead(). Может варьироваться от 1 до 32. Впрочем, если выставить в этом значении больше 12, то возвращенное значение будет не точным, а приблизительным. Более подробно об этом читайте в приложении ниже. | bits — разрешение (в битах) значения, возвращаемого функцией analogRead(). Может варьироваться от 1 до 32. Впрочем, если выставить в этом значении больше 12, то возвращенное значение будет не точным, а приблизительным. Более подробно об этом читайте в приложении ниже. | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 27: | Строка 27: | ||
==Что возвращает== | ==Что возвращает== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
Ничего. | Ничего. | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 33: | Строка 33: | ||
==Примечание== | ==Примечание== | ||
Если задать в analogReadResolution() значение, превышающее возможности платы, | Если задать в '''analogReadResolution()''' значение, превышающее возможности платы, [[Arduino]] в ответ отправит значение, где «лишние» [[бит]]ы будут заполнены нулями. | ||
Например, если вы пользуетесь | Например, если вы пользуетесь [[Arduino:Продукты/Продукты Arduino/Плата Arduino Due|Due]] или [[Arduino:Продукты/Продукты Arduino/Плата Arduino Zero|Zero]], а в функции '''analogReadResolution()''' решили указать «16», то в итоге получите 16-битное число, в котором первые 12 бит будут содержать реальную информацию об аналогово-цифровом преобразовании, а 4 оставшихся бита будут содержать нули. | ||
А если в analogReadResolution() задать значение, которое будет ниже возможностей платы, то недостающие биты будут просто удалены. | А если в '''analogReadResolution()''' задать значение, которое будет ниже возможностей платы, то недостающие биты будут просто удалены. | ||
Впрочем, | Впрочем, 16-битное разрешение (или другое разрешение, превышающее возможности платы) можно использовать как бы заранее. То есть вы можете написать «дальновидный» [[скетч]], который будет автоматически, без лишней работы с кодом, управляться с девайсами, имеющими более высокое [[АЦП]]-разрешение, когда такая возможность появится на новых платах. | ||
==Пример== | ==Пример== | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
void setup() { | void setup() { | ||
// Запускаем последовательную передачу данных: | // Запускаем последовательную передачу данных: | ||
Строка 82: | Строка 82: | ||
<references /> | <references /> | ||
{{Навигационная таблица/ | {{Навигационная таблица/Портал/Arduino}} | ||
[[Категория:Справочник языка Arduino]] | [[Категория:Справочник языка Arduino]] | ||
[[Категория:Функция]] | [[Категория:Функция]] |
Текущая версия от 11:28, 8 июля 2023
Содержание | Знакомство с 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.
|
Клавиатура |
|
Мышь |
|
Разное |