Перейти к содержанию

С какой точностью Arduino измеряет напряжение?

Обновлено Редакция GAW

Ошибка измерения Arduino складывается из ошибки самого АЦП и ошибки опорного напряжения, относительно которого он меряет: U = N · Uоп/1024. Первая мала, вторая — нет.

Сам АЦП

По табл. 29-15 даташита ATmega328P абсолютная погрешность АЦП — с нелинейностью, квантованием, ошибками усиления и смещения — 2 LSB при тактовой частоте АЦП 200 кГц и 4,5 LSB при 1 МГц (типичные значения при опорном 4 В). Arduino при 16 МГц ставит предделитель 128, то есть 125 кГц (wiring.c), — это режим «2 LSB». Наш расчёт: 2 из 1024 — около 0,2 % шкалы, при опорном 5 В — около 10 мВ.

Опорное напряжение

ОпорноеДопускОшибка без калибровки (наш расчёт)
DEFAULT — питание платы от USB4,75–5,50 В по USB 2.0 ECN, на плате ещё ниже на падение в предохранителе и ключеот −5 % до +10 % относительно 5 В
INTERNAL — 1,1 В1,0–1,2 В по табл. 29-15до ±9 %
EXTERNAL — LM4040 класса B на AREF±0,2 % при 25 °Cоколо 0,2 % + ошибка АЦП ≈ 0,4 %

Ошибка опорного напрямую переходит в результат: если опорное на 5 % ниже, все показания на 5 % выше. Поэтому первым делом решают вопрос опорного, а уже потом думают о разрядах. Почему питание от USB так сильно меняет показания, объясняет ответ «Почему показания analogRead меняются при питании Arduino от USB?», а пригоден ли для этого TL431 — ответ «Можно ли использовать TL431 как опорное напряжение для АЦП?».

Как повысить точность

  1. Калибровка по двум точкам — по известным напряжениям в начале и конце шкалы: убирает ошибку опорного, усиления и смещения.
  2. Внешний источник опорного напряжения на AREF. Вызовите analogReference(EXTERNAL) до первого analogRead(): по даташиту при внешнем напряжении на AREF другие варианты опорного включать нельзя — внутреннее опорное замкнётся на внешний источник (DS40002061B, разд. 24.5).
  3. Делитель из точных резисторов, если измеряете больше опорного: допуск резисторов тоже входит в ошибку.
  4. Сопротивление источника не выше 10 кОм (разд. 24.6.1), иначе конденсатор выборки не успевает зарядиться.

Сложить все ошибки поможет калькулятор бюджета ошибок АЦП, коды и напряжения для AVR — калькулятор АЦП AVR.

Похожие вопросы

Что точнее: опорное по умолчанию или внутреннее 1,1 В?

Без калибровки ни то ни другое: питание от USB гуляет в пределах 4,75–5,5 В, а внутренний источник у конкретного экземпляра — от 1,0 до 1,2 В. Но внутренний источник стабилен во времени: измерив его один раз точным мультиметром на выводе AREF, можно записать поправку в программу и получить точность около процента.

Помогает ли усреднение нескольких измерений?

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

Сколько отсчётов составляет ошибка 1 %?

Наш расчёт: 1 % от 1024 — около 10 отсчётов. Ошибка самого АЦП, около 2 отсчётов, на этом фоне мала, поэтому начинать стоит с опорного напряжения.

Источники

  1. Microchip. ATmega48A/PA/88A/PA/168A/PA/328/P Data Sheet, DS40002061B — табл. 29-15 — 10 бит; абсолютная погрешность (INL, DNL, квантование, усиление и смещение) 2 LSB при тактовой АЦП 200 кГц и 4,5 LSB при 1 МГц, INL 0,5, DNL 0,25, ошибка усиления 2, смещения 2 LSB (типичные значения при VREF = VCC = 4 В); тактовая АЦП 50–1000 кГц; внутреннее опорное VINT 1,0–1,1–1,2 В; разд. 24.6.1 — источник не выше 10 кОм; разд. 24.5 — если к AREF подключён внешний источник, другие варианты опорного использовать нельзя: они замкнутся на внешнее напряжение
  2. Arduino. ArduinoCore-avr, cores/arduino/wiring.c (commit 11b9130) — init() — предделитель АЦП 128 при 16 МГц: тактовая АЦП 125 кГц, в пределах 50–200 кГц
  3. USB-IF. USB 2.0 Engineering Change Notice «VBUS Max Limit» — напряжение VBUS у порта с высокой нагрузочной способностью 4,75–5,50 В, у маломощного — 4,4–5,50 В
  4. Texas Instruments. LM4040 Precision Micropower Shunt Voltage Reference (SLOS456Q, revised April 2026) — LM4040B 2,5 В — начальная точность ±0,2 % при 25 °C; с учётом температурного коэффициента во всём диапазоне по сноске — ±0,85 %

Нашли ошибку?