Функція 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