Сейчас ваша корзина пуста!
analogReadResolution()
analogReadResolution() — это расширение аналогового API для семейств Zero, Due, MKR, Nano 33 (BLE и IoT) и Portenta.
Задает размер (в битах) значения, возвращаемого analogRead(). По умолчанию оно равно 10 битам (возвращает значения в диапазоне 0-1023) для обеспечения обратной совместимости с платами на базе AVR.
Платы семейства Zero, Due, MKR и Nano 33 (BLE и IoT) имеют 12-разрядный АЦП, доступ к которому можно получить, изменив разрешение на 12. Это вернет значения из analogRead() в диапазоне от 0 до 4095.
Portenta H7 оснащен 16-разрядным АЦП, который допускает значения в диапазоне от 0 до 65535.
Синтаксис
analogReadResolution( bits )Параметры
bits - определяет разрешение (в битах) значения, возвращаемого функцией analogRead(). Вы можете установить это значение в диапазоне от 1 до 32. Вы можете установить разрешения выше поддерживаемых 12 или 16 бит, но значения, возвращаемые analogRead(), будут приближенными
Возвращает
Ничего не возвращает
Пример
Код показывает, как использовать АЦП с различными разрешениями.
void setup() {
Serial.begin(9600);
// открываем последовательное соединение
}
void loop() {
// считываем входные данные на A0 с разрешением по умолчанию (10 бит) и отправляем его по последовательному соединению (выводим в монитор)
analogReadResolution(10);
Serial.print("ADC 10-bit (default) : ");
Serial.print(analogRead(A0));
// изменяем разрешение на 12 бит и считываем A0
analogReadResolution(12);
Serial.print(", 12-bit : ");
Serial.print(analogRead(A0));
// изменяем разрешение на 16 бит и считываем A0
analogReadResolution(16);
Serial.print(", 16-bit : ");
Serial.print(analogRead(A0));
// изменяем разрешение на 8 бит и считываем A0
analogReadResolution(8);
Serial.print(", 8-bit : ");
Serial.println(analogRead(A0));
// небольшая задержка, чтобы не перегружать последовательный монитор
delay(100);
}
Примечание
Если вы установите для значения analogReadResolution() значение, превышающее возможности вашей платы, плата Arduino будет выдавать отчет только с максимальным разрешением, дополняя лишние биты нулями.
Например: использование Due с analogReadResolution(16) даст вам приблизительное 16-битное число, первые 12 бит которого содержат реальные показания АЦП, а последние 4 бита дополнены нулями.
Если вы установите для значения analogReadResolution() значение, меньшее, чем возможности вашей платы, дополнительные младшие биты, считываемые с АЦП, будут отброшены.
Использование 16-битного разрешения (или любого разрешения, превышающего реальные аппаратные возможности) позволяет создавать эскизы, которые автоматически обрабатывают устройства с АЦП с более высоким разрешением, когда они станут доступны на будущих платах, без изменения строки кода.

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