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

Тензодатчики и весы на HX711: мост, подключение, калибровка

Под нагрузкой тензодатчик выдаёт единицы милливольт, и весы получаются точными, только если правильно возбудить мост, оцифровать сигнал и откалибровать ноль и наклон. Разбираем по документам TI, Microchip и Avia: что значит 2 мВ/В, как подключить датчик к HX711, сколько граммов на самом деле различают 24 бита и что мешает больше шума АЦП.

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

Тензодатчик веса (load cell) — металлический упругий элемент с наклеенными тензорезисторами, включёнными мостом Уитстона. Под нагрузкой элемент чуть деформируется, сопротивления плеч меняются, и между средними точками моста появляется разность в единицы милливольт, пропорциональная силе. Чтобы получить из неё граммы, нужны три вещи: возбуждение моста, АЦП с большим усилением и калибровка каждого экземпляра.

Коротко

  • Чувствительность тензодатчика — в мВ/В: типично 1–3 мВ/В, при 2 мВ/В и возбуждении 5 В полная нагрузка даёт 10 мВ.
  • Допуск чувствительности — ±15–20 %, баланс нуля — до ±0,3 мВ/В: без калибровки гирей весы врут на десятки процентов.
  • HX711 питает мост от того же AVDD, что и АЦП: измерение логометрическое, и точность опорного напряжения не нужна.
  • Шкала канала A HX711 при усилении 128 — ±0,5 · AVDD/128, при 5 В около ±20 мВ; шум — 50 нВ ср. кв. при 10 выборках/с.
  • Температурный дрейф датчика (0,036 % шкалы/°C у LCL816G) и ползучесть обычно ограничивают весы сильнее, чем шум АЦП.
  • Безопасная перегрузка — 150 % номинала: выше неё возможны повреждения датчика, а 200 % в примере TI — предельная перегрузка.

Мост, мВ/В и что написано в паспорте датчика

В тензодатчике веса обычно стоит полный мост — все четыре плеча активные: два растягиваются, два сжимаются. По TI такой мост вчетверо чувствительнее моста с одним активным элементом и не имеет собственной нелинейности, свойственной четверть-мосту (SBAA532A, разд. 2.1). Выход моста пропорционален напряжению возбуждения, поэтому чувствительность задают в милливольтах на вольт:

Uвых=S⋅Uвозб⋅FFном,U_\text{вых} = S \cdot U_\text{возб} \cdot \frac{F}{F_\text{ном}},

где S — номинальный выход (мВ/В), F — нагрузка, Fном — номинальная нагрузка. Параметры двух датчиков из документов производителей микросхем:

ПараметрПример TI (датчик на 2 кг)Omega LCL816G (Microchip AN717)
Номинальный выход2,0 мВ/В ± 15 %2 мВ/В ± 20 %
Баланс нуля±10 % шкалы (±0,2 кг)±0,3 мВ/В
Сопротивление моста1000 Ом1200 ± 300 Ом
Возбуждениедо 15 В5–12 В
Безопасная перегрузка150 % (3 кг)150 %
Предельная перегрузка200 % (4 кг)—
Невоспроизводимость±0,05 % шкалы (±1 г)—
Влияние температуры на выход±0,05 % шкалы/°C (±1 г/°C)0,036 % шкалы/°C
Влияние температуры на ноль±2,0 % шкалы/°C (±40 г/°C; так в табл. 4-1)0,036 % шкалы/°C

Что из этого следует для весов:

  • Наклон. Допуск ±15 % означает, что «10 мВ» на полной нагрузке у конкретного экземпляра — от 8,5 до 11,5 мВ (SBAA532A, разд. 4.5). Это ошибка усиления, и её убирает калибровка гирей.
  • Ноль. ±0,3 мВ/В у LCL816G при 5 В — до ±1,5 мВ без нагрузки, 15 % шкалы; в примере TI — ±10 % шкалы. Это смещение, и его убирает тарирование.
  • Дрейф и ползучесть. Изменение нуля и наклона с температурой, нелинейность, гистерезис и ползучесть калибровкой по двум точкам не убираются, а ползучесть по TI не калибруется вообще (разд. 4.6–4.8). Они и определяют реальную точность весов.
  • Перегрузка. Выше безопасных 150 % номинала датчик можно повредить; в механике весов ставят упоры, которые принимают нагрузку раньше.

Возбуждение и логометрическое измерение

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

Ток моста. У моста 350 Ом при 5 В — 14,3 мА (SBAA532A, разд. 4.2), у моста 1000 Ом — 5 мА, это больше тока самого HX711 (1,4 мА аналоговой части со стабилизатором). Для батарейных весов мост выключают между измерениями: у HX711 высокий уровень на PD_SCK дольше 60 мкс выключает микросхему, а при встроенном стабилизаторе — и питание датчика.

Четыре и шесть проводов

Четырёхпроводный датчик: два провода возбуждения (E+ и E−) и два сигнальных (S+ и S−). По проводам возбуждения течёт весь ток моста, и их сопротивление уменьшает напряжение на самом мосту. В примере TI мост 350 Ом от 5 В и провода по 1 Ом дают ошибку 0,6 % (SBAA532A, ур. 17). Ток через сигнальные провода ничтожен, их сопротивление не важно.

Шестипроводный датчик добавляет две линии SENSE, подключённые к верху и низу моста. По ним опорный вход АЦП видит напряжение прямо на мосту — это кельвиновское подключение, и ошибка от проводов возбуждения исчезает (разд. 3.3). Для датчика на коротком кабеле разница мала: у моста 1000 Ом провода по 0,1 Ом дают около 0,02 % (наш расчёт), что заметно меньше допуска наклона и снимается калибровкой — если сопротивление проводов не меняется с температурой.

Цвета проводов у производителей датчиков разные: назначение каждого провода берут из паспорта своего датчика, а не из таблицы для «типичного» датчика.

Подключение к HX711

HX711 — 24-битный сигма-дельта АЦП Avia с усилителем на входе, рассчитанный именно на мост: вход канала A подключают к средним точкам моста напрямую, а встроенный стабилизатор питает и АЦП, и датчик.

Подключение тензодатчика к HX711 и микроконтроллеруМост тензодатчика из четырёх тензорезисторов R1–R4: верх моста (E+) соединён с выводом AVDD (3) микросхемы HX711; напряжение AVDD 2,6–5,5 В даёт встроенный стабилизатор HX711 с внешним транзистором (рис. 1 даташита) или внешний источник, низ (E−) — с общим проводом, как и вывод AGND (5). Средние точки моста идут на вход канала A: S+ — на INA+ (8), S− — на INA− (7). Вывод DVDD (16) питается от того же источника, что и микроконтроллер; выводы PD_SCK (11) и DOUT (12) соединены с двумя выводами микроконтроллера.Тензодатчик (мост)R1R2R3R4HX71124 бита, ×128AVDD3INA+8INA−7AGND5DVDD16PD_SCK11DOUT12МКVCCGPIOGPIOGNDAVDD 2,6–5,5 В: стабилизатор HX711 (рис. 1) или внешний источникE+S+S−E−тактыданные2 мВ/В при AVDD = 5 В — 10 мВ на полную нагрузку; шкала канала A при ×128 — ±20 мВ
Тензодатчик и HX711 по рис. 1 даташита Avia: мост питается от AVDD (вывод 3) — встроенного стабилизатора HX711 или внешнего источника, выходы моста — на канал A (INA+ и INA−), PD_SCK и DOUT — к двум выводам микроконтроллера
Вывод HX711Куда
AVDD (3)E+ датчика и аналоговая часть АЦП
AGND (5)E− датчика, общий провод
INA+ (8), INA− (7)S+ и S− датчика
DVDD (16)питание микроконтроллера: по Avia DVDD берут от того же источника
VSUP (1), BASE (2), VFB (4)встроенный стабилизатор с внешним транзистором, или VSUP — к AVDD либо DVDD (к большему), VFB — на общий провод
PD_SCK (11), DOUT (12)два вывода микроконтроллера

Напряжение AVDD. Со встроенным стабилизатором UAVDD = 1,25 В · (R1 + R2)/R2, и оно должно быть хотя бы на 100 мВ ниже VSUP. Шкала канала A при усилении 128 — ±0,5 · AVDD/128, при 5 В это ±19,5 мВ (в даташите округлено до ±20 мВ); канал B с усилением 32 — ±80 мВ.

Синфазное напряжение. Входы должны лежать в пределах от AGND + 1,2 В до AVDD − 1,3 В. Средние точки моста — около AVDD/2: при AVDD = 5 В это 2,5 В, внутри диапазона 1,2–3,7 В; граница наступает при AVDD = 2,6 В (наш расчёт: 1,3 В при пределах 1,2–1,3 В).

Чтение. Когда DOUT падает в ноль, данные готовы; 24 импульса PD_SCK выдвигают код старшим битом вперёд в дополнительном коде, а 25-й, 26-й или 27-й импульс выбирает следующее измерение: 25 — канал A ×128, 26 — канал B ×32, 27 — канал A ×64. Высокий уровень PD_SCK — не дольше 50 мкс, иначе при 60 мкс микросхема уходит в выключение. Подробности протокола и тайминги — в карточке HX711.

Скорость и установление. Вывод RATE выбирает 10 или 80 выборок/с. После включения, смены канала или усиления первый достоверный результат появляется через 400 мс при 10 выборках/с и через 50 мс при 80. При 10 выборках/с HX711 одновременно подавляет помехи 50 и 60 Гц и шумит меньше: 50 нВ против 90 нВ ср. кв.

Сколько граммов различают 24 бита

Пример: датчик на 5 кг, 2 мВ/В, AVDD = 5 В, канал A ×128.

  1. Сигнал. Полная нагрузка — 2 мВ/В · 5 В = 10 мВ, то есть 2 мкВ на грамм.
  2. Код. Шаг АЦП — 19,53 мВ / 2²³ ≈ 2,33 нВ, на грамм приходится около 860 кодов, а на полную нагрузку — около 4,3 миллиона. Цифр много, но младшие из них — шум.
  3. Шум. 50 нВ ср. кв. при 10 выборках/с — это 1/200 000 от 10 мВ, около 0,025 г. Но стабильную последнюю цифру определяет размах шума, а не среднеквадратичное значение (SBAA532A, разд. 5.2), и он в несколько раз больше. Avia размах не приводит; у TI ADS1232 при тех же условиях — 17 нВ ср. кв. и 110 нВ размаха, то есть около 91 000 отсчётов, свободных от шума, на 10 мВ, или 0,055 г на 5 кг.
  4. Дрейф. Датчик с дрейфом выхода 0,036 % шкалы/°C, как LCL816G, на 5 кг уходит на 1,8 г при изменении температуры на градус — в 30–70 раз больше шума АЦП (наш расчёт).

Вывод: разрешение АЦП с запасом, весы ограничивает датчик — температура, ползучесть, механика. Число делений шкалы задают по дрейфу и повторяемости датчика, а не по разрядности HX711. Усреднение нескольких отсчётов уменьшает шум, но не дрейф.

АЦП для мостаHX711ADS1232 (TI)
Усиление и шкала при 5 В×128 ±20 мВ, ×64 ±40 мВ, канал B ×32 ±80 мВ×1 ±2,5 В, ×2 ±1,25 В, ×64 ±39 мВ, ×128 ±19,5 мВ
Скорость10 или 80 выборок/с10 или 80 выборок/с
Шум при ×128, 10 выборок/с50 нВ ср. кв.17 нВ ср. кв., 110 нВ размаха
Каналы2 дифференциальных2 (ADS1234 — 4)
Питание, температура2,6–5,5 В, −40…+85 °C2,7–5,3 В, −40…+105 °C
Особенностивстроенный стабилизатор для мостадатчик температуры, калибровка смещения по команде

У обеих микросхем нет регистров: канал, усиление и скорость задают выводы и число тактов. Для бюджета погрешности всего тракта пригодится калькулятор погрешности АЦП, а для моста на внешнем измерительном усилителе — калькулятор усилителя.

Тарирование и калибровка гирей

TI предлагает три уровня калибровки: по одной точке (только смещение), по двум точкам (смещение и наклон) и кусочно-линейную по таблице — для нелинейных систем и калибровки по температуре (SBAA532A, разд. 5.5). Для весов обычно хватает двух точек, прямой y = Mx + B:

  1. Прогреть весы под питанием, дать устояться механике.
  2. Без груза усреднить несколько десятков отсчётов — это код тары C0.
  3. Положить гирю известной массы mэт, лучше не меньше трети шкалы, и усреднить код C1.
  4. Коэффициент k = mэт/(C1 − C0), масса m = k (C − C0); C0 и k сохранить в EEPROM.

Пример с числами из предыдущего раздела: тара C0 = 120 000, гиря 1000 г даёт C1 = 980 000. Тогда k = 1000 г / 860 000 ≈ 1,163 мг на код, а код 550 000 соответствует 1,163 · 430 000 ≈ 500 г.

// Two-point calibration of a load cell read through HX711 (24-bit two's complement)
typedef struct { int32_t zero; float grams_per_count; } scale_cal_t;

static int32_t hx711_sign_extend(uint32_t raw) {
    // HX711 outputs 24 bits MSB first; extend bit 23 to a 32-bit signed value
    return (raw & 0x800000u) ? (int32_t)(raw | 0xFF000000u) : (int32_t)raw;
}

void scale_calibrate(scale_cal_t *c, int32_t code_empty, int32_t code_ref, float ref_grams) {
    c->zero = code_empty;
    c->grams_per_count = ref_grams / (float)(code_ref - code_empty);
}

float scale_grams(const scale_cal_t *c, uint32_t raw) {
    return c->grams_per_count * (float)(hx711_sign_extend(raw) - c->zero);
}

Тару пересчитывают и в работе: кнопка «ноль» снова запоминает C0, а медленный уход нуля при пустой платформе программа может отслеживать сама. Если датчик стоит в помещении с меняющейся температурой, калибровку повторяют при разных температурах или ставят датчик с меньшим дрейфом.

Типичные ошибки

  • Перепутаны S+ и S−. Код уменьшается под нагрузкой — меняют провода местами или знак коэффициента.
  • Синфазное напряжение вне диапазона. Мост питается от отдельного источника, не от AVDD, и средние точки выходят за пределы AGND + 1,2 В … AVDD − 1,3 В — код искажается. Для HX711 мост питают от AVDD.
  • Длинный высокий уровень PD_SCK. Прерывание посреди чтения растягивает импульс дольше 60 мкс, и HX711 выключается. Чтение делают с запретом прерываний или аппаратно.
  • Паразитные термопары. Спай разных металлов на входе — клемма, разъём — даёт термо-ЭДС, меняющуюся с температурой: TI называет её одним из источников смещения (разд. 4.4). Входные цепи делают симметричными и держат при одной температуре.
  • Калибровка маленькой гирей. Ошибка массы гири и шум делятся на малую разность C1 − C0; берут гирю на треть шкалы и больше.
  • Ожидание граммовой точности от разрядности. 24 бита — это не 16 миллионов делений: шум, дрейф и ползучесть оставляют от них в лучшем случае десятки тысяч.

Несколько датчиков

Платформенные весы часто собирают из нескольких мостов. TI разбирает параллельное соединение нескольких четырёхпроводных мостов на одном канале АЦП с логометрической опорой (SBAA532A, разд. 6.7): АЦП меряет общий сигнал, ток возбуждения растёт пропорционально числу мостов. Если датчики нужны раздельно, берут второй канал АЦП или ADS1234 с четырьмя входами; канал B HX711 с усилением 32 Avia предлагает для второго сигнала, например контроля батареи.

Другие датчики — в разделе «Датчики», термины — в статьях «Тензодатчик» и «Мост Уитстона».

Частые вопросы

Что значит 2 мВ/В у тензодатчика?

При номинальной нагрузке выход моста — 2 мВ на каждый вольт возбуждения: при 5 В это 10 мВ на всю шкалу датчика. Значение задано с допуском — ±15 % в примере TI и ±20 % у Omega LCL816G, — поэтому реальный выход может быть от 8,5 до 11,5 мВ при ±15 % и от 8 до 12 мВ при ±20 %, и каждые весы калибруют гирей.

Как откалибровать весы на HX711?

По двум точкам. Без груза запоминают код C0 — это тара. Затем кладут гирю известной массы m и читают код C1. Коэффициент k = m / (C1 − C0), а масса любого груза — k · (C − C0). Калибруют после прогрева, гирей не меньше трети шкалы и при той же температуре, при которой будут взвешивать: ноль и наклон датчика дрейфуют с температурой.

Сколько граммов различают весы на HX711 с датчиком на 5 кг?

По шуму HX711 — доли грамма: при 2 мВ/В и AVDD = 5 В полная нагрузка даёт 10 мВ, а шум HX711 при 10 выборках в секунду — 50 нВ ср. кв., то есть 1/200 000 шкалы, около 0,025 г. Но показание, которое не дрожит, определяется размахом шума, а он в несколько раз больше, и ещё сильнее мешает температурный дрейф датчика: у LCL816G 0,036 % шкалы на градус — около 1,8 г/°C для 5 кг.

Чем шестипроводный тензодатчик лучше четырёхпроводного?

Двумя линиями SENSE, которые измеряют напряжение прямо на мосту. По проводам возбуждения течёт ток моста — 14,3 мА у моста 350 Ом при 5 В, — и сопротивление проводов уменьшает напряжение на мосту: по 1 Ом в каждом проводе дают ошибку 0,6 %. Шестипроводная схема подаёт напряжение с моста на опорный вход АЦП, и эта ошибка исчезает. Для датчика на коротком кабеле достаточно четырёх проводов.

Почему показания весов медленно ползут под постоянным грузом?

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

Источники

  1. Texas Instruments. Lizon B., Wu J. A Basic Guide to Bridge Measurements (SBAA532A, February 2022, revised March 2024) — разд. 2.1 — четверть-, полу- и полный мост, полный мост без собственной нелинейности; разд. 3.1 — логометрическое измерение не зависит от точного VREF и возбуждения, шум возбуждения сокращается; разд. 3.2 — четырёхпроводное подключение, ур. 17: при 350 Ом и 5 В ток 14,3 мА, провода по 1 Ом дают ошибку 0,6 %; разд. 3.3 — шестипроводное: линии SENSE как кельвиновское подключение; табл. 4-1 — пример датчика на 2 кг: 2,0 мВ/В ± 15 %, безопасная перегрузка 150 %, предельная 200 %, невоспроизводимость ±0,05 % шкалы (±1 г), влияние температуры на выход ±0,05 % шкалы/°C и на ноль ±2,0 % шкалы/°C (±40 г/°C), баланс нуля ±10 % шкалы (±0,2 кг), сопротивление моста 1000 Ом; разд. 4.1 — типично 1–3 мВ/В, 2 мВ/В при 5 В — 10 мВ; разд. 4.2 — 120, 350 и 1000 Ом; разд. 4.4 — смещение от разброса плеч, паразитных термопар и входных токов АЦП; разд. 4.5 — ±15 % — от 8,5 до 11,5 мВ, калибруется; разд. 4.6–4.8 — нелинейность и гистерезис калибруются плохо, ползучесть не калибруется; разд. 5.2 — эффективное и свободное от шума разрешение, NFC, пример ADS1235: 0,16 мкВ размаха на 10 мВ — 62 500 отсчётов; разд. 5.5 — калибровка по одной и двум точкам, y = Mx + B; разд. 6.7 — несколько мостов параллельно на одном канале
  2. Microchip. Baker B. C. AN717: Building a 10-bit Bridge Sensing Circuit using the PIC16C6XX and MCP601 Operational Amplifier (DS00717A, 1999) — табл. 1 — тензодатчик Omega LCL816G: 896 г, возбуждение 5–12 В, номинальный выход 2 мВ/В ± 20 %, баланс нуля ±0,3 мВ/В, температурный дрейф нуля и выхода 0,036 % шкалы/°C, компенсированный диапазон −5…+50 °C, сопротивление 1200 ± 300 Ом, безопасная перегрузка 150 %
  3. Avia Semiconductor. HX711 24-Bit Analog-to-Digital Converter (ADC) for Weigh Scales, V2.0; архивная копия официального файла с aviaic.com в Wayback Machine, снимок 19 августа 2019 года — с. 1 — канал A ×128 и ×64 (±20 и ±40 мВ при AVDD 5 В), канал B ×32, встроенный стабилизатор питает АЦП и датчик, 10 и 80 выборок/с, подавление 50 и 60 Гц, ток меньше 1,5 мА и меньше 1 мкА в выключении, 2,6–5,5 В, рис. 1; с. 2 — табл. 1, выводы SOP-16; с. 3 — табл. 2: полная шкала ±0,5 · AVDD/GAIN, синфазный вход AGND + 1,2 В … AVDD − 1,3 В, установление 400 и 50 мс, шум 50 и 90 нВ ср. кв. при ×128, дрейф смещения ±6 нВ/°C, усиления ±5 ppm/°C, ток аналоговой части 1400 мкА, цифровой 100 мкА; с. 4 — VAVDD = VBG · (R1 + R2)/R2 не меньше чем на 100 мВ ниже VSUP, канал B ±80 мВ; дополнительный код, насыщение на 800000h и 7FFFFFh; DOUT в нуле — данные готовы, 25–27 импульсов PD_SCK, табл. 3; с. 5 — PD_SCK в единице дольше 60 мкс — выключение вместе с датчиком при встроенном стабилизаторе
  4. Texas Instruments. ADS123x 2- and 4-Channel, 24-Bit, Delta-Sigma ADCs for Bridge Sensors (SBAS350H, June 2005, revised June 2025) — разд. 1 и 3 — усиление 1, 2, 64, 128 и полная шкала ±2,5 В, ±1,25 В, ±39 мВ, ±19,5 мВ, 10 выборок/с с подавлением 50 и 60 Гц и 80 выборок/с, 2,7–5,3 В, −40…+105 °C, датчик температуры, калибровка смещения по команде, управление выводами без регистров; табл. 6-1 и 6-2 — при AVDD = VREF = 5 В и ×128: 17 нВ ср. кв. и 110 нВ размаха при 10 выборках/с, 44 и 247 нВ при 80

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