Аналогово-цифровой преобразователь HX711 для Arduino

Недостаточно купить стандартный микроконтроллер Ардуино и написать пару строчек кода, чтобы считаться инженером. Когда вам надоест играть с светодиодами и делать простые замочки с одним-двумя датчиками, необходимо будет перейти к более практичным и полезным в быту проектам. Это могут быть как автоматизированные системы, теплица, так и полноценные электронные весы, которые можно сделать своими руками.

В этой статье мы рассмотрим важнейший элемент такой конструкции, модуль hx711 Arduino, примером использования которого и будет создание весов на Ардуино. Давайте рассмотрим, что это вообще за покупной модуль и какие функции он выполняет в системе.

Описание модуля

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

  1. Датчики и подобные им модули. В этой группе находятся все чипы, которые предназначены для измерения любых параметров окружающей среды и трансформации их в электронный сигнал. Именно датчики позволяют измерять вес, засечь звуковые волны при хлопке или уловить удар о поверхность. Без них большая часть проектов и систем в современном мире просто не могли бы существовать. Так что на деле их можно сравнить с трансформаторами внешних сигналов, которые они переводят во внутренние.
  2. Чипы и микроконтроллеры, позволяющие расширить стандартные возможности Ардуино. Могут, например, добавить немного постоянной или оперативной памяти, позволить подключать различные источники питания параллельным соединением. В большей своей части влияют на программную часть системы, в то время, как датчики и переходники напрямую модифицируют аппаратную. Могут быть использованы в том случае, если нет желания спаивать несколько МК, но ресурсов для выполнения вычислений не хватает.
  3. Переходники и вспомогательные средства для усиления сигнала. Именно к ним относится hx711, который усиливает сигнал от датчика веса и переводит его в цифровой, который может воспринимать Ардуино. Между предыдущим и этим пунктом есть небольшая грань, которую зачастую стирают и совмещают их в один класс. Тем не менее, если «расширители» влияют именно на программную часть, то разнообразные переходники позволяют усовершенствовать аппаратную.

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

Итак, мы разобрались, что hx711 – это 24-х битный АЦП, необходимый для адаптации тензодатчиков и весов в Ардуино. Однако подходит он лишь для простых систем Ардуино, где необходимы точные показание с тех же тензодатчиков.

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

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

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

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

Характеристики и распиновка 711 модуля

В самом чипе имеется несколько разъемов для подключения датчиков и МК, и для подачи питания, соответственно. J1 является разъемом для подключения датчиков, а вот E+ и Е необходимы для подключения их питания, в то же время, JP2 необходим для подсоединения чипа к микроконтроллеру Ардуино и последующей подачи питания через него.

Также присутствует несколько пинов, нужных для измерения различных данных системы: от напряжения, подаваемого на прибор, до частоты передачи данных. И, конечно, в плате присутствует интерфейс, распределённый на IIC или I2C. Всё это стоит изучить прежде, чем приступать к непосредственной пайке.

По А каналу можно установить коэффициенты усиления сигнала от датчиков, их имеется две разновидности – в 64 и в 128 раз. Это позволит измерять десятые доли килограммов, которые попадают на тензодатчики. Сам чип способен потреблять энергию не только непосредственно из Ардуино, но и из внешних источников через дополнительно подключенное питание.

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

Распиновка HX711
Распиновка HX711

Пример использования модуля

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

  1. Весы через hx711, о которых мы и поговорим ниже. Здесь система достаточно простая: состоит из датчика, МК и самого чипа. Логика построения кода и самого проекта также незамысловата, достаточно всё это подключить последовательно и в правильном порядке. Естественно, ко всему вышеперечисленному, стоит докупить интерфейс, который будет выводить полученные данные. Или же специальный блютуз модуль, позволяющий подключить систему к смартфону и смотреть всю информацию уже непосредственно на нём. Всё зависит от того, каким проект вы видите сами. Также, для большего усиления сигнала, если потребуется, можно последователь подсоединять несколько чипов.
  2. Датчики на различных устройствах, от 3Д принтера, до специальных приспособлений для тестирования продукции. Чип выдаёт данные именно о давлении, и уже через формулы в коде вы их преобразовываете в килограммы веса. Соответственно, если нужно измерить силу, достаточно применить соответствующие алгоритмы перевода единиц, и у вас на руках будет уже совершенно другое устройство. Сферы его применения зависят исключительно от фантазии инженера, но чаще всего такие датчики используют именно в 3Д-принтерах, по понятным причинам.

Как сделать Ардуино весы на hx711

Но, предположим, вы решили сделать простейшие Ардуино весы (мы публиковали отдельный урок), тогда выбирайте один из вариантов, описанных выше, для получения выходящих данных.

Это может быть блютуз или wi-fi модуль, который будет передавать всё на другое устройство. Но можно использовать и обычный LED-экран. Однако, в таком случае, учитывайте, что вам необходимо будет написать немало строчек кода и для того, чтобы этот экран научить выводить нужные вам числа, а в некоторых ситуациях и буквы.

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

Выше на картинке вы можете увидеть примерный вариант устройства весов на Arduino Uno. В комплекте с модулем HX711 идет тензорезистор. На фото к нему прикреплены два небольших куска оргстекла - как основа и как опора для измеряемого предмета.

Схема устройства самая простая:

Осталось добавить код. Но прежде - скачайте библиотеку для нашего модуля HX711 по ссылке - https://github.com/bogde/HX711.

После того как библиотека скачана мы можем добавить наш код. Сначала код программы для калибровки:

И сам код для весов ниже.

Внимание! В коде добавлен перевод единицы измерения веса из унций в граммы.

В целом на этом всё. Более подробные уроки по использованию этого модуля мы обязательно опубликуем в ближайших уроках. Подробный урок по созданию весов на данном модуле смотрите здесь.

Напоследок! Сделайте весы, которые способны измерять не только ваш вес, но и содержание жира в организме, а также воды. Это будет полезно для тех инженеров, которые следят за собой, но покупать дорогие оригинальные весы не хотят по очевидным причинам.

Ардуино+
Больше интересного ↓