Подключение тензодатчиков к arduino

Содержание

Тензодатчики и НХ711. Руководство пользователя.

Общие сведения:

Тензодатчики (типа «мост» и типа «полу-мост») и микросхема HX711 — связка, которая позволит создавать устройства для измерения веса или давления, оказываемого на поверхность датчика, а затем передавать эти показания (с высокой точностью) на плату Arduino.

Видео:

Спецификация:

Спецификация HX711

  • Разрядность АЦП: 24 бит;
  • Коэффициент усиления:
    • Вход А: 64 или 128;
    • Вход В: 32;
  • Частота измерений: 10/80 Гц;
  • Напряжение питания: 5В;
  • Потребляемый ток: до 10 мА;
  • Размеры: 34мм х 21мм;

Спецификация тензодатчиков мостовых

  • Максимальный вес: 1/5/10/20 кг;
  • Отверстия под винты: M4/M5 (подходит под винт с потайной головкой);
  • Размеры: 14мм х 14мм х 80.5мм;

Спецификация тензодатчика полумостового

  • Максимальный вес: 50 кг;
  • Размеры: 34мм х 34мм х 9мм;

Подробнее о плате HX711:

Микросхема HX711 позволяет с высокой точностью получать показания веса или давления, оказываемого на тензодатчик (он же — тензорезистор).

Микросхема имеет 2 канала считывания показания счётчика: А и В:

  • Канал А имеет возможность выбора коэффициента усиления: 64 или 128.
  • Канал В имеет фиксированный коэффициент усиления, равный 32.

Это позволяет подключать к микросхеме HX711 до 2 независимых тензодатчиков! Однако, следует помнить, что чем выше коэффициент усиления, тем выше точность измерения показаний.

Подробнее о датчиках:

Тензорезистивные датчики предназначены для создания на их основе весов, датчиков давления или концевых датчиков.

В основе своей конструкции имеют тонкоплёночные резисторы, которые изменяют своё сопротивление при деформации.

Существует 2 версии данных датчиков:

  • 1 — те, в которых резисторы объединены в мост, подключённый непосредственно к АЦП, который фиксирует изменения значений резисторов. Датчики выполнены из алюминия, имеют форму бруска с 4 отверстиями на одной плоскости и особым сдвоенным отверстием на другой. При установке датчике в рабочее положение необходимо жёстко закрепить одну его сторону, а на вторую установить (при необходимости) платформу для завешивания грузов. Имеют на выходе из датчика 4 провода.

Схема устройства и подключения мостового датчика к микросхеме HX711:

Схема устройства и подключения полу-мостового датчика к микросхеме HX711:

Для 1 тензодатчика:

Для 4 тензодатчиков:

Обратите внимание на то, что если полученные значения имеют отрицательный знак, то вам следует поменять местами датчики, подключенные к выводам А+ и А —

Следует также отметить, что показания тензодатчиков зависят от температуры окружающей среды — при разных температурах показания могут отличаться. Помните это и используйте «тарирование» (обнуление значений датчика) каждый раз при резких перепадах температуры. Если же работа датчика предполагается в условиях перепада температур в известном диапазоне, то вы можете воспользоваться одним из датчиков температуры и создать таблицу зависимости калибровочного коэффициента ( calibration_factor ) от температуры.

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

Микросхема HX711

На плате есть два разъёма – P1 и P2, на которых имеются следующие обозначения:

Разъём P1

  • GND — земля;
  • VCC — питание 5В;
  • DT, SCK – информационные выводы;

Разъём P2

  • E– , E+ — питание тензорного моста;
  • A– , A+ — подключение канала А;
  • В– , В+ — подключение канала В;

Тензодатчик (мостовой)

У данного тензодатчика 4 выходных провода:

Провода тензодатчика Выводы микросхемы HX711
Красный провод E+
Чёрный провод E-
Зелёный провод A-
Белый провод A+

Тензодатчик (полумостовой)

У данного тензодатчика 3 выходных провода:

Провода тензодатчика Выводы микросхемы HX711
Красный провод E+
Чёрный провод E-
Белый провод A+
Провода тензодатчика Выводы микросхемы HX711
Зелёный провод A-

HX711

Данная плата подключается к Arduino по 4 проводам:

Выводы микросхемы HX711 Выводы Arduino
GND GND
VCC 5V
DT любой цифровой вывод (указывается в скетче)
SCK любой цифровой вывод (указывается в скетче)

Подключение HX711 к Arduino можно осуществить одним из 2 способов:

  1. Напрямую к плате Arduino/Piranha UNO:
  2. К одному из шилдов для подключения:

Питание:

Входное напряжение 5В, подаётся на выводы Vcc (V) и GND (G).

Источник

Весы на Arduino, HX711 и тензодатчика

Автор: Сергей · Опубликовано 12.09.2021 · Обновлено 18.02.2022

Датчик веса (тензодатчик) является очень важным элементом во многих проектах Arduino. Измеряя вес, можно отследить массу, а затем выполнить некоторое действие, например можно сделать дозатор жидкости или произвести расчет массы меда в улий за лето и так далее. В статье расскажу как с помощью Arduino UNO, платы HX711 и тензодатчика собрать весы.

Технические параметры HX711:

► АЦП собран на микросхеме: HX711;
► Разрядность АЦП: 24-бит;
► Коэффициент усиления канала A: 64 или 128;
► Коэффициент усиления канала B: 32;
► Скорость измерений: 10 измерений в секунду (Гц) или 80 измерений в секунду (Гц);
► Напряжение питания: 2,6 – 5,5 В;
► Потребляемый ток:

На плате есть два разъема JP1 и JP2, которые имеют следующие обозначения:

Назначение контактов, разъема JP1:
E+, E- — источник питания;
A-, A+ — дифференциальный вход канала A;
B-, B+ — дифференциальный вход канала B.

Назначение контактов, разъема JP2:
VCC, GND — источник питания;
DT, SCK — информационные шины.

Общие сведенья об тензодатчиках

Существуют несколько видов тензодатчиков: пневматические (газовые), гидравлические (жидкостные) и резистивные (тензометрические), в статье расскажу о резистивных тензодатчике.
Резистивный тензодатчик содержит тензометрические датчик, который изменяет свое сопротивление при воздействии силы. Сам датчик плоский и имеет небольшие размеры, его помещают между пластинами, когда на них действует сила датчик деформируется, следствие чего меняется его сопротивление. Это значение очень маленькое и микроконтроллеру очень трудно измерить показания, поэтому тензодатчики подключают в мостовую схему (так называемую мост Уитстона).

Суть заключается в том, что если мы имеем одинаковое сопротивление на всех тензодатчиках (1 кОм), то ток не проходит через центр моста и это называют балансировка моста. Но если какой либо из тензодатчиков испытывает давление, то изменится сопротивление. Это приведет к дисбалансу моста, и появится напряжение между точками 1 и 2.

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

Схему подключения можно посмотреть ниже:

Второй вариант, датчик содержит один тензодатчик и собран виде делителя напряжения (полумост), для подключения к HX711 необходимо объединить несколько и собрать мостовую схему, это позволяет увеличить измеряемый вес (например взять четыре датчика по 50 кг, получим 200 кг). Датчик выполнен из алюминия в виде квадрата, в центре находится выступающая часть с тензодатчиком. При установке датчика, необходимо закрепить боковые стенки, а центральная часть должна свободно прогибаться.

Схема подключения, полумост с дополнительными резисторами:

Схема подключения двух тензодатчика:

Схема подключения четырех тензодатчика:

Так же, надо не забывать, что показания тензодатчиков зависит от окружающей температуры. Это надо учитывать при разработке своих проектах и производить калибровку каждый раз когда происходит резкой перепад температуры или с помощью датчика температуры, добавлять калибровочный коэффициент.

Подключение тензодатчика к Arduino

Необходимые детали:
► Arduino UNO x 1 шт.
► Тензодатчик для весов до 50 кг x 4 шт.
► Модуль 24-битного АЦП/ЦАП для тензодатчиков на HX711 x 1 шт.
► Провод DuPont, 2,54 мм, 20 см, F-M (Female — Male) x 1 шт.
► Кабель USB 2.0 A-B x 1 шт.

Описание:
В примере покажу как подключить четыре тензодатчика на 50 кг к Arduino UNO, полученные данные будем отправлять в последовательный порт.

Подключение:
Первым делом подключаем четыре тензодатчика к плате HX711, для этого согласно схеме ниже, из четырех датчиков собираем мостовую схему и соединяем провода E+ и E-, а затем A+ и A+. Теперь осталось подключить HX711 к Arduino, для этого подключаем Vcc и GND от HX711 к выводам 5В и GND на Arduino, затем подключаем вывод DT от HX711 к 2 на Arduino и вывод SCK к 3 на Arduino, схема собрана. Для удобства приведу схему подключения ниже.

Так же не забываем, что внутренняя часть тензодатчика должна быть свободна, крепить его необходимо с помощью боковых стенок.

Установка библиотек:
Для работы с модулем необходимо установить библиотеку «HX711», для этого, перейдите в Скетч —> Подключить библиотеку —> Управление библиотеками.

В строке поиска введите «HX711», найдите библиотеку «HX711 by Rob Tillaart» и установите данную библиотеку.

Программа калибровки:
Первым делом необходимо откалибровать тензодатчики, чтобы получить калибровочный коэффициент. Для этого берем любой предмет с известным весом, предмет должен касаться всех четырех тензодатчиков, если габариты не позволяют, необходимо положить пластину. Далее копируем скетч, в параметре weight_of_standard указываем вес предмета, в моем случаи это стакан весом 350 грамм.

Источник

Подключение тензодатчика к плате Ардуино

Каждый человек, так или иначе, старается облегчить свой быт и труд. Для чего во все времена использовались различные вспомогательные механизмы или прирученные животные. В наше время, функции управления первыми, и некоторые возможности вторых возлагаются на компьютеры. Существуют и миниатюрные их варианты, предназначенные в первую очередь, для управления различными устройствами. Причем речь идет не только о бесконечном и однообразном повторении установленных изначально действий, но и об участии в процессе определенной логики. Которая, в свою очередь, опирается на текущее состояние различных внешних факторов. Мы говорим о микроконтроллерах — ограниченных ресурсами компьютерах, возможностей которых тем не менее достаточно для получения информации с чувствительных устройств — датчиков, обработки ее и передачи определенных команд конечным исполнителям.

В разрезе темы статьи речь пойдет о популярной платформе Arduino, аналого-цифровом преобразователе HX711 и подключаемых к нему тензодатчиках.

Зачем все это необходимо

Упомянутая связка позволяет создать на основе микроконтроллера систему определяющую давление или вес на поверхности чувствительного элемента. Практическое применение аналогичная конструкция имеет на птичниках, когда происходит поштучное взвешивание проходящих живых куриц или уток. Для процедуры в Агро секторе предусмотрен узкий коридор движения особей с датчиком прохождения единицы и платформой определения массы. Кроме названой ниши, точность устройства вполне позволяет его использовать в торговле, связывая разработанные на основе тензометрических сенсоров весы с кассовым аппаратом или компьютером-посредником, ведущим бухгалтерию.

Пригодится аппарат и пасечникам — объединив весы с передатчиком Bluetooth или GSM-модемом можно контролировать «налет» веса пчел в различные периоды года. Достаточно знать чистую массу улья. Все что выше, как раз и будет воск, пчелы и мед.

Принцип работы тензодатчика

Вообще, на рынке присутствуют три варианта тензодатчиков. Емкостные, на основе пьезоэлементов, и использующие упругие резисторы Уитстона. У последних фамилия указывает не марку модели, а имя изобретателя.

В любом случае, работа сенсора построена на изменении характеристик элемента при деформации. В емкостных, соответственно, повышается или уменьшается энергетическая вместимость детали, для пъезо- кристаллических варьируется проходящий ток, а резистивные — регулируют сопротивление участка цепи. Так как наиболее доступны последние из списка, они и будут рассмотрены в теле статьи.

Сенсоры настоящего типа присутствуют на рынке в полу- и мостовом варианте исполнения. Главное отличие, что первые можно применять раздельно на одной линии. А если конкретно — включение 4 полу мостовых датчиков в конструкцию единых весов дадут большую точность, чем двух полноформатных.

С виду — тензодатчик Ардуино выглядит как своеобразный алюминиевый брусок, с крепежными отверстиями. На его гранях видно размещенные там тонкопленочные резисторы, на которые собственно и помещается платформа с грузом. Количество выходов — 3 в случае полу мостовых и 4 у полных. Две линии используются для питания, остальные с целью передачи аналоговой информации на исполняющее устройство.

Для удобства монтажа преимущественно используют 4-х проводную схему подключения как более современную. При выборе тензодатчиков важно обращать внимание на метрологические характеристики. Для высокоточного весового оборудования используют класс точности не ниже C3. Чтобы быть уверенным в качестве продукции рекомендуем выбирать тензометрические датчики с гарантией. Для надёжной работы мы советуем купить тензодатчик Sierra.

На одной из граней обычно указан максимально допустимый вес нагрузки.

Характеристики оборудования, его настройка, примечания

Здесь начать стоит непосредственно с преобразователя аналогового сигнала в цифровой, а конкретно с платы-посредника между Arduino и тензодатчиками — HX711:

  • Частота обработки входящих сигналов: от 10 до 80 раз в секунду.
  • Питание: 2.5–5.5 В при 10 мА.
  • Минимальное напряжение на входе:

40мВ

  • Количество каналов: 2
  • Усиление по входящей линии A: 64, 128
  • Усиление по входящей линии B: 32
  • Разрядность исходящего канала: 24 бита.
  • Ширина на длину платы: 21×34 мм
  • Основное назначение устройства в конвертации объема поступающего тока в бинарный формат. Причем чувствительность аппарата непосредственно зависит от установленного режима усиления линии:

    Коэффициент Пиковый ток
    32 ± 80 мА
    64 ± 40 мА
    238 ± 20 мА

    В тех случаях, когда на вход АЦП поступает ток меньше нижней границы диапазона, на его выходе будет выдано 800000h, а если больше верхней — 7FFFFFh.

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

    Один из немногих дельных советов для таких случаев, выясненный при помощи интернет, — использовать для питания ровно 5 В в отношении датчиков и самого АЦП, а также снизить частоту определения до 10 Гц. Кроме того, пользователи названой платы применяют линейные фильтры на вводе и рекомендуют делать больший упор в конструкциях на канал B — он менее шумный. Также хорошим стабилизатором показаний будет опрос 10 значений и вывода среднего. Вариантом можно применить сборки на основе АЦП HX710A. Названый конвертер дополнительно оснащен сенсором температуры, корректирующим выходные данные.

    К Ардуино преобразователь соединяется четырьмя контактами, два из которых питание, а остальные применяются в деле передачи данных:

    Arduino HX711
    5V VCC
    GND GND
    DT Цифровой вывод
    SCK Цифровой вывод

    Закончив с конвертером аналога в цифру для Ардуино, перейдем к характеристикам, которыми обладают сами тензодатчики:

    • Критичная измеряемая масса: 50 кг.
    • Размеры: 9×34×34 мм.

    На выходе полу мостового тензодатчика три провода, которыми он подключается к HX711. Классически они имеют следующее цветовое разделение:

    Контакт Цвет
    А+ Белый
    E- Черный
    E+ Красный
    • Предельный вес: 1–20 кг.
    • Габариты: 14×14×80.5 мм.

    У мостового детектора четыре исходящих контакта, имеющих следующую цветовую дифференциацию:

    Контакт Цвет
    А+ Белый
    E- Черный
    E+ Красный
    A- Зеленый

    На обоих видах резистивных детекторов присутствуют отверстия под крепежные болты M4/5.

    Схемы соединения и скетчи

    Сами тензодатчики подключаются по схеме в зависимости от их типа — полу-, или мостового, а также общего количества чувствительных элементов. На плате HX711 размещены два аналоговых входа, соответственно к АЦП можно присоединить или четыре половинчатых детектора или два полных.

    Соединение с единичным датчиком полумоста

    Соответственно скетч его калибрующий и опрашивающий:

    // Указываем соответствующие контакты, к которым присоединен сенсор
    #define pSCK 2
    #define pDT 3
    #include «HX711.h»
    HX711 HX711ctl; // создаем объект
    float CF = -0.6; // поправочный коэффициент подобранный к конкретным датчикам
    float UNC,GR; // Унции и граммы
    void setup() <
    Serial.begin(57600);
    HX711ctl.begin(pDT, pSCK); // инит детектора
    HX711ctl.set_scale(); // — //
    HX711ctl.tare(); // Очистка показаний детектора
    HX711ctl.set_scale(CF); // Настройка поправочного значения
    >
    void loop() <
    UNC = HX711ctl.get_units(10); // Делаем 10 проб и получаем усредненное значение
    GR = UNC * 0.035274; // Конвертация унция → грамм
    Serial.print(«Volume: «);
    Serial.print(GR);
    Serial.println(» Gr»);
    >

    Соединение с четырьмя полумостовыми тензодатчиками

    По причине того, что в цепях с участием HX711 важным фактором служит только физическое соединение чувствительных элементов, никакого отличия от предыдущего скетча по получению показаний — нет.

    Соединение с одним мостовым тензодатчиком

    Опять же, и для представленной схемы скетч изменений не требует. Есть только у некоторых специалистов замечание, по вычислению и установке CF — переменной поправки:

    void setCF() <
    HX711ctl.set_scale(); // — //
    HX711ctl.tare(); // Очистка показаний датчика
    const WOS = 200; // вес платформы
    float CFM[10],CF=0,CR=0.035274;
    for (int j=0;j

    Соответственно изменится и остальной код:

    // Указываем соответствующие линии, к которым присоединен детектор
    #define pSCK 2
    #define pDT 3
    #include «HX711.h»
    HX711 HX711ctl;
    float UNC,GR; // Унции и граммы
    void setup() <
    Serial.begin(57600);
    HX711ctl.begin(pDT, pSCK); // инит детектора
    HX711ctl.set_scale(); // — //
    HX711ctl.tare(); // Очистка показаний датчика
    setCF(); // Настройка поправочного значения ← измененная часть
    >
    void loop() <
    UNC = HX711ctl.get_units(10); // Делаем 10 проб и получаем усредненное значение
    GR = UNC * 0.035274; // Конвертация унция → грамм
    Serial.print(«Volume: «);
    Serial.print(GR);
    Serial.println(» Gr»);
    >

    Библиотека HX711.h

    Все сказанное ранее описывает всего несколько команд управляющих HX711. Далее представлен их полный список с расшифровкой. Нужно только напомнить, что инициализация подключаемого модуля проводится так:

    #define DT A0
    #define SCK A1
    #include «HX711.h»
    HX711 scale; // структура через которую будет идти обращение

    Название Параметры по порядку На выходе Описание
    begin() A1 — Вывод Ардуино, где DT,

    A3 — разрядность датчика 32(B), 64 или 128(A). По умолчанию 128

    Ничего Инициализация
    is_ready() Ничего True — готов, False — не готов Тест состояния АЦП
    set_gain() 32,64,128 Ничего Установка значения усиления
    read() Ничего Сырое значение АЦП Возвращает «чистый» ответ HX711 без поправочных сведений
    read_average() Сколько делать проб Возвращает среднюю цифру от выполненных проб (унция) Получить усредненные данные
    get_value() Сколько делать проб На выходе средняя масса (унция) без упаковки Получение поправленного значения без веса упаковки
    get_units() Сколько делать проб Усредненная поправленная масса (унция) Возвращает массу с учетом упаковки и поправочных значений.
    Tare() Сколько делать проб Масса упаковки (унция) Получение массы упаковки
    set_scale() Коэффициент Ничего Задание значения корректировки
    get_scale() Ничего Значение Получение текущего значения заданного set_scale()
    set_offset() Вес (унция) Ничего Ручная установка веса упаковки
    Get_offset() Ничего Масса (унция) Запрос установленного вручную параметра упаковки
    power_down() Ничего Ничего Перевести HX711 в состояние «сна»
    power_up() Ничего Ничего Вывод модуля АЦП из «сна»

    Проект электронных весов с управлением и экраном

    От простых схем, перейдем к более сложной и функциональной. Готовому решению по конструкции электронных весов с кнопками управления и жидкокристаллическим экраном. Понадобится:

    Наименование Количество
    Arduino UNO 1
    Экран 0.96 Oled Display с интерфейсом I2C 1
    Резисторы 10кОм 4
    Тактовые кнопки 4
    Плата HX711 1

    Подключение тензодатчиков к HX711 выполняется по одной из схем, описанных ранее, для остального применяют следующие соединения:

    Видео по теме

    Источник

    Adblock
    detector