Датчик давления: подключение модуля к Ардуино

В этом материале проведём тестирование модуля, способного измерять давление. Это небольшой и недорогой датчик давления HX710B. Модуль имеет диапазон измерения 0-5,8 фунтов на квадратный дюйм. Единица PSI – это британская система мер, которая означает фунты на квадратный дюйм. Если PSI преобразовать в Паскаль, то диапазон измерения составляет 0-40 кПа (1 PSI равен примерно 6895 Паскаля).

Датчик давления: подключение модуля к Ардуино



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

В основе маленького модуля находится датчик давления MPS20N0040D-S. Внутри 6-контактный датчик представляет собой мост Уитстона, предназначенный для работы с регулируемым источником питания 5 В постоянного тока.

Датчик давления: подключение модуля к Ардуино



Почему производители назвали его HX710B? Второй компонент в модуле – HX710B, который представляет собой прецизионный 24-битный аналого-цифровой преобразователь (АЦП). Далее представлена типичная блок-схема приложения HX710B IC, доступная в 8-выводном корпусе.

Датчик давления: подключение модуля к Ардуино

Микросхема HX710B предназначена для весов и устройств управления и имеет непосредственный интерфейс с мостовым датчиком. Её входной малошумящий усилитель (PGA) имеет фиксированное усиление 128, что соответствует полномасштабному дифференциальному входному напряжению ± 20 мВ, когда опорное напряжение 5 В подключено к выводу VREF. Встроенный генератор обеспечивает работу таймера без каких-либо внешних компонентов. Помимо встроенной схемы включения питания при сбросе (POR), упрощается инициализация цифрового интерфейса. Далее радиосхема модуля HX710B, это очень простая и понятная схема, поэтому не требуется пояснений.

Датчик давления: подключение модуля к Ардуино

В некоторых модулях чип HX710B заменен другим – TM7711.

Датчик давления: подключение модуля к Ардуино

Модуль датчика давления имеет 4 точки подключения, а именно VCC (+5 В), GND (0 В), OUT (Данные) и SCK (Таймер). Для внутренних регистров микросхемы HX710B нет необходимости в программировании, потому что все управление осуществляется через контакты. Тем не менее, самая сложная часть – это выяснить протокол связи, поскольку цифровой интерфейс не относится к типу I2C.

Полезное на сайте:
Датчик ардуино для движения робота по черной линии

Последовательный интерфейс: контакты PD_SCK и DOUT используются для извлечения данных, выбора входа, выбора скорости выходных данных и управления отключением питания. Когда выходные данные не готовы для извлечения, на цифровом выходном выводе DOUT высокий уровень. Последовательный тактовый вход PD_SCK должен быть низким. Когда DOUT становится низким это означает, что данные готовы к извлечению. При подаче 25 ~ 27 положительных тактовых импульсов на вывод PD_SCK данные смещаются с вывода DOUT. Каждый импульс PD_SCK сдвигает на один бит, начиная с бита MSB первым, до тех пор, пока не будут сдвинуты все 24 бита. 25-й импульс на входе PD_SCK вернет вывод DOUT в высокий уровень. Выбор входа и выбор скорости выходных данных контролируется количеством входных импульсов PD_SCK. Тактовых импульсов PD_SCK не должно быть меньше 25 или больше 27 в течение одного периода преобразования.

PD_SCK ИМПУЛЬСЫ Вход Скорость передачи данных
25 Дифференциальный 10 Гц
26 DVDD-AVDD 40 Гц
27 Дифференциальный 40 Гц

На рисунке показаны синхронизация вывода, ввода и выбора скорости передачи данных, а также управление HX710B.

Датчик давления: подключение модуля к Ардуино

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

Полезное на сайте:
Миниатюрный низковольтный детектор движения

Датчик давления: подключение модуля к Ардуино

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

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

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

Датчик давления: подключение модуля к Ардуино

В аппаратной настройке, помимо соединений источника питания (5V и GND), вывод SCK модуля HX710B подключен к A0 Arduino Uno, а вывод OUT – к A1.

Датчик давления: подключение модуля к Ардуино

Датчик давления можно проверить различными способами, в зависимости от потребностей. Один из них – прикрепить вход датчика непосредственно к шприцу. Затем датчик давления использовать для измерения давления при перемещении поршня шприца (смотрите фото из заголовка).

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

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