Pull to refresh

Работа с китайской микросхемой АЦП Hx711 (заключение)

Programming microcontrollers
По прошествии некоторого времени, повторное ознакомление с начальной статьей вызвало чувство незаконченности в вопросе использовании данного АЦП. Да, были проведены определенные исследования данного изделия, были нащупаны слабые стороны и предложены пути обхода этих слабых сторон, но вопрос об ЭКСПЕРИМЕНТАЛЬНОМ, практическом применении отсутствовал.

Работа Андрея Герасименко («АЦП НХ711 от 3,3V- не верьте китайской документации и не только…» (https//habr.com/ru/post/438772)), не требовала абсолютного учета веса улья. Условие относительности взвешенных ульев, нивелировало ошибку взвешивания, ибо технические ошибки, возникающие из за изменения внешних условий, действовали на все объекты слежения и автоматически исключались из анализа за состоянием ульев. Иначе обстоят дела при простом взвешивании.

Найденные Nikopol_86 ( «…не верьте китайской документации» Nikopol_86 февраля 2019 в 09:27) слабые места преобразователя в виде распределение ошибки измерения отличной от случайного распределения и отмеченные мною, тоже являлись теоретическими изысканиями.

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

Для окончательного заключения о пригодности Нх711 к использованию в весах была разработана программа для взвешивания, основанная на принципиальной схеме:



Питание схемы, осуществляется от обычного стандартного блока питания на постоянные 5 вольт, 1 ампер.

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

При включении питания, на индикатор выводится: в нижней строке значение АЦП, считанное с тензодатчика, в верхней строке выводится значение веса получаемое путем нормирования значений АЦП нижней строки. Обычно это: верхняя строка 1,015 и нижняя строка 1085. После размещения на платформе нужной тары, производится обнуление показаний, путем нажатия Key2 (тара) что приводит к индикации 0,000 и 0 в верхней и нижней строке индикатора, соответственно. После этого, размещая на платформе взвешиваемый груз, производим считывание веса из верхней строке.

Надо отметить, что функция автонуля, т.е ввод веса тары в считываемый вес с платформы в момент включения весов, не реализован. В программу заранее «вшиты» значения нормировочных коэффициентов (во flash память контроллера), что позволяет сразу, после учета веса тары производить взвешивание.

Для изменения нормировочных коэффициентов предусмотрен режим калибровки весов частью веса ( в данном случае 2 кг). Для входа в этот режим, нужно освободить платформу, дождаться стабильных показаний и нажать одновременно Key12 и Key17.
В верхней строке индицируется: «Cal: turn Key 12», что свидетельствует о входе весов в режим калибровки частью веса. Для продолжения необходимо нажать Key12. В нижней строке индицируется «Press Tare key», что означает, что весы готовы «запомнить» значение тары. Для продолжения нажмите Key2 (Тара). В нижней строке индицируется «Place 2kg key17». Положите на платформу гирю 2 кг, подождите и нажмите Key17. На индикаторе в верхней строке 2,000 и в нижней строке 2130. Весы перешли в режим взвешивания. Снимите гирю и продолжайте взвешивание. Важно, новые нормировочные коэффициенты записываются в ОЗУ контроллера и сотрутся (исчезнут) после выключения питания весов.

Подобная процедура, удобна, но в процессе работы не всегда под рукой оказывается гиря 2 кг. Для этого случая предусмотрена процедура коррекции калибровки. Для входа в эту процедуру необходимо, выключить весы, переставить JP1, так, что бы замкнуть вывод порта контроллера на землю. Включить весы. В верхней строке добавляется значение одного из нормировочных коэффициентов, для данного случая он равен 5325. Обнуляем весы Key2, ставим на платформу известный нам вес и клавишами Key12 увеличиваем, а Key17 уменьшаем индицируемое весами значение положенного веса. Добиваемся равенства значение веса положенного на платформу и веса индицируемого весами. После достижения равенства, JP1 размыкаем цепь. ВАЖНО: замыкание джампера лучше производить при выключенном питании весов. Размыкание только при включенном питании. Значение индицируемого нормировочного коэффициента так же меняется в процессе корректировки. Зависимость обратная, чем выше коэффициент, тем меньше индицируемый вес и наоборот. Все дело в том, что новое значение коэффициента так же пишется во внутреннее ОЗУ контроллера. Ну собственно и все.

Данные весы эксплуатировались в цехе расфасовки в течение 2 рабочих смен по 8 часов, непрерывно, температура окружающей среды 18-22 градуса Цельсия. Уже первые сутки эксплуатации показали, что изменения веса, из за внешних факторов: прогрев аппаратуры, скачки окружающей температуры из за открываемых дверей — носят удовлетворительный характер. Все колебания лежат в пределах 10-15 грамм (средний вес фасуемого товара 10 кг), что является допустимым для данного веса. Так, ошибки взвешивания, допускаемые метрологией, для весов с наибольшим пределом взвешивания НПВ15 кг составляют:



Введенный режим коррекции калибровки удобен. Но использовался в основном, когда взвешивание отклонялось на 5 – 10 граммов на 5 кг гире. Естественное желание иметь именно нулевые ошибки весов, но не необходимее, ибо ошибка в допустимом диапазоне.

Как вывод считаю, что китайский модуль АЦП, на основе микросхемы Нх711, показал себя как работоспособный и могущий использоваться в схемах весов как обычного так и среднего класса. Отсутствие коррекции веса от температуры окружающей среды в самом корпусе микросхемы, является самым уязвимым местом данного модуля (микросхемы). Моя практика показала, что для устройств, работающих в условиях с небольшими колебаниями окружающей температуры, ошибка измерения не превышает допустимых метрологией ошибок. Однако вопрос о применении данного модуля для весов работающих, например на рынке, когда летом температура бывает за +30, а зимой до -15 градусов Цельсия, остается открытым.

К сожалению, у меня отсутствует возможность испытать весы в термокамере и ответить на этот вопрос, поэтому в конце статьи прилагаю hex файл (не для ардуино), для flash памяти микроконтроллера. Схема приведена выше, характеристики тензодатчика тоже приводились. Если кому интересен данный АЦП модуль и имеется термокамера, можно самому провести нужные испытания. Желательно поделиться своими результатами.

Файл :Scale16_11.hex. Ссылка: cloud.mail.ru/public/4Edm/43fwpHEPU
Всех благ!
Tags:ацп hx711обработка сигналов
Hubs: Programming microcontrollers
Total votes 13: ↑12 and ↓1 +11
Views3K

Comments 6

Only those users with full accounts are able to leave comments. Log in, please.
Programming Manager (C++)
from 250,000 ₽Game InsightRemote job
FPGA Developer (remote/ relocate)
from 100,000 ₽Promwad Innovation CompanyМинскRemote job
ИТ рекрутер в направление Data Science(Санкт-Петербург)
from 60,000 to 80,000 ₽СберСанкт-Петербург
3D Designer in luxury real estate company
from 1,000 $WhitemarkRemote job
Deep Learning engineer (NLP Model)
from 150,000 ₽IvolutionRemote job