Приветствую Вас ГостьПятница, 03.05.2024, 08:25

AVR & ARDUINO




Каталог статей

Главная » Статьи » Справочник

analogReadResolution()

Описание

analogReadResolution() - функция, расширяющая API для работы с аналоговыми величинами для Arduino Due.

Функция устанавливает размер (в битах) значения, которое возвращает analogRead(). Для обратной совместимости с платами на базе AVR-микроконтроллеров эта размерность, по умолчанию, составляет 10 бит (диапазон чисел 0-1023).

В состав Due входит 12-битный АЦП, задействовать возможности которого можно путем изменения размерности до 12 бит. Это позволит функции analogRead() возвращать значения в диапазоне от 0 до 4095.

Синтаксис

 analogReadResolution(bits);

Параметры

bits - размерность значения (в битах), возвращаемого функцией analogRead(). Может быть в пределах от 1 до 32. Допускается задавать размерность больше 12, но в этом случае значения, возвращаемые analogRead(), будут подвергаться аппроксимации. См. примечание ниже.

Возвращаемые значения

Нет

Примечание

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

Например: при вызове analogReadResolution(16), Arduino Due будет выдавать аппроксимированное 16-битное число, первые 12 бит которого будут содержать фактические показания АЦП, а последние 4 бита будут заполнены нулями.

Если же размерность, указанная в функции analogReadResolution(), меньше максимально возможной, то младшие биты значений, возвращаемых АЦП, будут отбрасываться, тем самым снижая точность.

Использование размерности 16 бит (или любой другой, превышающей возможности текущего устройства) способствует легкой переносимости кода и позволяет программам автоматически поддерживать АЦП большей разрядности на будущих устройствах, которые будут использовать улучшенную точность АЦП и при этом не потребуют никаких исправлений.

Пример

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);
}

Смотрите также:

Описание аналоговых входов

analogRead()


Справочник

Материалы взяты с официального сайта проекта Arduino и представлены по лицензии Creative Commons Attribution-ShareAlike 3.0 License.



Источник: http://arduino.cc/en/Reference/AnalogReadResolution
Категория: Справочник | Добавил: magi (28.01.2015)
Просмотров: 1409 | Теги: Due | Рейтинг: 0.0/0
Всего комментариев: 0
avatar
Поиск
Вход на сайт
На правах рекламы

Мы переезжаем на сайт Arduino по-русски