Электронные весы на базе HX711

Опубликовано: 3.09.2016 Автор: Александр

В этой статье опишем как подключить тензодатчик к HX711 и STM32. На базе этого можно сделать электронные весы. А также можно использовать для электронных весов на предприятиях, для автоматизации технологических процессов, в торговле, в исследованиях с использованием тензорезисторов и различных тензометрических датчиков.

HX711 весы

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

HX711 Типовая схема

Особенность и удобство в том, что имеется интегрированный регулятор напряжения для питания тензодатчика. Для этого необходимо подключить внешний транзистор, резистивный делитель и пару конденсаторов. Данный регулятор повышает точность измерений, которые сильно зависят от напряжения на датчике.

Стоит сказать пару слов о тензодатчике, он же тензометрический датчик. Представляет собой мостовую схему из тензорезисторов, закрепленных на специальной формы металлической детали. Плечи моста расположены с разных сторон от линии деформации детали. Нагружая деталь, она деформируется. Одна сторона от линии изгиба удлиняется, противоположная – сжимается. При изменении длины тензорезистор меняет свое сопротивление. Так как тензорезисторы включены в разные плечи моста, то на выходе имеем изменение напряжения как по величине, так и по знаку. И наш HX711 это зафиксирует.

Тензодатчик для HX711

Интерфейс для подключения HX711 похож на I2C: одна линия синхроимпульсы, вторая – данные. Протокол простой и понятный. Поэтому можно сделать недорогие электронные весы.

Имеется возможность программно выбирать канал для преобразования и настроить усиление. Так можно считывать данные с канала А с коэффициентом усиления 128 или 64 (±20мВ и ±40мВ соответственно) и считывать с канала В с коэффициентом усиления 32 (±80мВ). Выбор канала и коэффициента производится программно при считывании значения. Еще есть настройка частоты готовности данных (Data Rate). Этот параметр устанавливается ногой RATE, если установить в ноль, то будет 10 выборок в секунду, если в 1 – 80. На китайских модулях эту ногу садят на общий вывод.

Рассмотрим последовательный интерфейс HX711. Имеется 2 ноги, по ним HX711 управляется: режим power down, сброс и считывание данных.

Power Down HX711

Если установить ногу SCK в 1 и удержать минимум 60мкс, то HX711 перейдет в power down режим, т.е. выключится. Как только нога SCK устанавливается в ноль, происходит выход из спящего состояния в нормальное, причем опрашивается канал А с коэффициентом 128.

Диаграмма импульсов HX711

Готовность данных определяется по уровню ноги DOUT. Высокий уровень – идет преобразование. Если нога установится в низкий уровень – можно забирать данные. Для этого нужно отправить 24 импульса ногой SCK. Прием идет от старшего бита (MSB). А дальше нужно сделать еще 1-3 импульса для выбора канала и коэффициента для следующего(!) преобразования. Таким образом, согласно таблицы из документации, минимум нужно сделать 25 импульсов и максимум 27.

Выбор канала и коэффициента HX711

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

Данные HX711 отдает в виде дополнительного кода, т.е. старший бит (23й) указывает на знак числа.

Прикрепляю документацию на HX711 (datasheet). Вопросы в комментарии.

Небольшое видео:

HX711 тензодатчик

В рубриках: Как в технике, Электроника
Метки: , ,
Поделиться записью:

7 Комментариев к “Электронные весы на базе HX711”

  1. Игорь:

    А почему код не выкладываете? :)

  2. Вадим:

    А подскажите Пожалуйста. У меня не устанавливается в “0″ бит данных. Всегда единица. пробовал сделать сброс установкой в “1″ SCK. DT переходит в 0 но потом возвращается в 1. В качества устройства опроса у меня ПЛК.

    • Ошибки в схемотехнике нет? Сброс делали, как описано в ДШ?

      • Вадим:

        Вроде как нет. Сброс делал. Скорей всего проблема в самом ПЛК. Частота обновления выходов ПЛК не позволяет устанавливать импульсы в 50мкс.

  3. Антон:

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

    • Да. В весах одна сторона жестко закрепляется на раме весов, а ко второй крепится платформа. Стрелка фактически указывает ли линию, вдоль которой нужно прикладывать усилие. Если поменять подключение датчика к HX711, то изменится и знак результата.