Analogreadresolution
Из 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]:
- Аналоговое считывание не дает правильной формы сигнала, как у осциллографа У меня есть этот код, который извлекает аналоговые входные значения с клемм A0, A1 и A2 Arduino mega 2560. Но когда я рисую данные, он не дает нужной формы сигнала. Желаемая форма сигнала…
- Разрешение micros() для Portenta H7 Есть ли способ узнать разрешение micros() для Arduino Portenta H7. Я проверил другие платы, например, Nano, которая упоминается как 4 uS. Однако я не смог найти ни одного для Portenta H7. Есть ли…
- Чтение сигнала 4-20 мА на ардуино Я хочу считать аналоговый сигнал 4–20 мА с расходомера 24 В. Я читал, что самый простой способ - преобразовать его в сигнал 1-5 В с помощью резистора 250 Ом. Дело в том, что я хочу, чтобы мое…
- Arduino против 12-битного АЦП 12-битный АЦП даст нам около 1,2 мВ на шаг: <pre 5 / 4096 = 0,00122 Но если мы дадим Arduino эталонное напряжение 1,2 В, мы получим 1,1 мВ на шаг: 5 / 4096 = 0.00122 Означает ли это…
- Как мне измерить аналоговый сигнал на моем Arduino Mega, который имеет как положительное, так и отрицательное напряжение? У меня есть сигнал, который колеблется от -70 мВ до 50 мВ. Как мне заставить Arduino прочитать это? В конечном итоге я пытаюсь построить график данных в реальном времени, чтобы это выглядело так. …
- 1