Функція analogReadResolution()

Документація

analogReadResolution()


analogReadResolution() є розширенням аналогового API для Arduino Due та Zero.

Встановлює розмір (у бітах) значення, яке повертається функцією analogRead(). За замовчуванням використовується 10 біт (повертає значення між 0 та 1023) для зворотної сумісності з платами на базі AVR.

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

Синтаксис

analogReadResolution(біти)

Параметри

біти: визначає розмірність (в бітах) значення, яке повертається функцією analogRead (). Ви можете встановити 1 та 32. Можна встановити розмірність вищу за 12, але значення, що повертає analogRead() будуть наближені. Деталі у примітці нижче.

Повертає

Нічого.

Примітка

Якщо Ви встановлюєте значення 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) : ");
  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);
}


Повернутись до головної

Коментарі 0

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.