Analogreadresolution

analogReadResolution () - это расширение аналогового API для Arduino Due и Zero.


Из Arduino - AnalogReadResolution:

Описание

analogReadResolution () - это расширение аналогового API для Arduino Due и Zero.

Задает размер (в битах) значения, возвращаемого функцией analogRead(). По умолчанию он равен 10 битам (возвращает значения в диапазоне от 0 до 1023) для обратной совместимости с платами на базе AVR.

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

Синтаксис

analogReadResolution(bits)

Параметры

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

Возврат

- Нет.

Примечание

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

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

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

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

Пример

void setup() {
  // open a serial connection
  Serial.begin(9600); 
}

void loop() {
  // read the input on A0 at default resolution (10 bits)
  // and send it out the serial connection 
  analogReadResolution(10);
  Serial.print("ADC 10-bit (default) : ");
  Serial.print(analogRead(A0));

  // change the resolution to 12 bits and read A0
  analogReadResolution(12);
  Serial.print(", 12-bit : ");
  Serial.print(analogRead(A0));

  // change the resolution to 16 bits and read A0
  analogReadResolution(16);
  Serial.print(", 16-bit : ");
  Serial.print(analogRead(A0));

  // change the resolution to 8 bits and read A0
  analogReadResolution(8);
  Serial.print(", 8-bit : ");
  Serial.println(analogRead(A0));

  // a little delay to not hog serial monitor
  delay(100);
}

Вопросы, связанные с [analogreadresolution]:

  • 1