• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь Весы на HX711

nikolz

Well-known member
подвожу итоги исследования HX711
-----------------------------------------
внутренние помехи при коротком замыкании на входе
основной вывод состоит в том , что погрешность измерения
определяется временем установления PGA и MUX, которое есть
-----------------------
Settling time refers to the time from power up, reset, input channel change and gain change to valid stable output data.
Время установления это время от включения питания, сброса, изменения входного канала и изменения коэффициента усиления
к допустимым стабильным выходным данным.
-------------------------
и равно 400 мс для частоты дискретизации 10 гц
и 50 мс для частоты дискретизации 80 гц
----------------------
т е это время больше чем интервал дискретизации
и установка коэффициента усиления на каждом измерении приводит к влиянию
переходного процесса установления на величину сигнала на входе АЦП
Максимальное влияние будет при минимальном сигнале т е при кз.
----------------------------
вот картинка разброса без фильтра (D) и c фильтром (Dm) измеренного на интервале в 200 отсчетов
для 10 гц и 80 гц
upload_2019-8-16_9-11-44.png
при частоте 80 гц ошибка возрастает в 2 раза.
-----------------------------------
Разброс показаний при подключении моста из резисторов 1 ком кабелем 20 см
в 3-5 раз больше, чем внутренние шумы.
upload_2019-8-16_9-20-14.png

--------------------
таким образом,
для определения точности измерения можно принять уровень шума 7 бит без фильтра и 5 бит с медианным фильтром для 10гц
и 8 бит и 6 бит для 80 гц
В итоге диапазон измерения составит не более 19 бит а не 24
-------------------
В случае моста диапазон составит 14 бит.
-----------------
Для определения точности измерения веса надо вычислить максимальное напряжение с моста при максимальном весе
и определить его долю от опорного напряжения АЦП, что еще сократит диапазон измерений на пару бит.
 

nikolz

Well-known member
соединение моста с HX711 двухметровой неэкранированной парой не увеличивает размах помехи.
 

pvvx

Активный участник сообщества
добавил два резистора по 270 ом
сначала от DT на GPIO5
потом от CLK на GPIO15
на картинке видно что резисторы влияют на смещение но не влияют на размах помехи.
Влияют на смещение?
Какие тут могут быть варианты:
Ток выхода и/или импульс фронта CLK влияет на потребление? Если влияет, то значит ходят внутренние опорные напряжения (?).
От чего они могут ходить? Увеличивается переходный процесс на внутренней входной логике CLK (если нет триггера Шмитта) или влияет выходная емкость -> ток нагрузки на переключении DT. От нагрузки меняется и температура кристалла. В зависимости от значений бит вывода имеем разницу температур :)
Так-же фронт CLK может распространяться через паразитные емкости по чипу и импульсами сбивает опорный источник, а от это может возникнуть входная синфазная болтанка напряжения перед каждым замером... а во время замера оно восстанавливается. Т.е. имеем нестабильное опорное напряжение...
Нестабильность может подводиться ко входу из самой микросхемы. Импульс со входа отрабатывает импульсную реакцию внешней цепи и это и принимается...

Но ещё не определено - фильтрация и обработка данных ADC идет всегда или окном после чтения данных/передачи режима, до готовности новых данных? Вроде в доке указано, что стоит цифровой фильтр на 50/60Гц... А про выходную фильтрацию с сигма-дельта вроде не видел (читал PDF невнимательно, да и там китайцы и перевод -> итого может быть написано что угодно :)).
Короче - если набор идет постоянно, то необходимо исключать любые импульсы. Если только окном - то рубить WiFi на время замера..
 

pvvx

Активный участник сообщества
В итоге диапазон измерения составит не более 19 бит а не 24
-------------------
В случае моста диапазон составит 14 бит.
-----------------
А должно быть: 19/17 в городе для Arduino :). (Город - значит помехи, фликкер-шум от множества источников, ВЧ и прочие эл.маг волны... поле - акб и до ближайших проводов/радио километры..)
соединение моста с HX711 двухметровой неэкранированной парой не увеличивает размах помехи.
Это норма при нормальной гальваноразвязке от общей эл.сети.
 

nikolz

Well-known member
Влияют на смещение?
Какие тут могут быть варианты:
Ток выхода и/или импульс фронта CLK влияет на потребление? Если влияет, то значит ходят внутренние опорные напряжения (?).
От чего они могут ходить? Увеличивается переходный процесс на внутренней входной логике CLK (если нет триггера Шмитта) или влияет выходная емкость -> ток нагрузки на переключении DT. От нагрузки меняется и температура кристалла. В зависимости от значений бит вывода имеем разницу температур :)
Так-же фронт CLK может распространяться через паразитные емкости по чипу и импульсами сбивает опорный источник, а от это может возникнуть входная синфазная болтанка напряжения перед каждым замером... а во время замера оно восстанавливается. Т.е. имеем нестабильное опорное напряжение...
Нестабильность может подводиться ко входу из самой микросхемы. Импульс со входа отрабатывает импульсную реакцию внешней цепи и это и принимается...

Но ещё не определено - фильтрация и обработка данных ADC идет всегда или окном после чтения данных/передачи режима, до готовности новых данных? Вроде в доке указано, что стоит цифровой фильтр на 50/60Гц... А про выходную фильтрацию с сигма-дельта вроде не видел (читал PDF невнимательно, да и там китайцы и перевод -> итого может быть написано что угодно :)).
Короче - если набор идет постоянно, то необходимо исключать любые импульсы. Если только окном - то рубить WiFi на время замера..
отключил Wifi - не влияет.
 

nikolz

Well-known member
полученные данные соответствуют при измерении 50 кг погрешности не более 20 гр. а с медианным фильтром 4 гр.
 

nikolz

Well-known member
50 000 / 20 = 2 500
11 бит всего (2 pow 11 = 2048)
все верно.
Не более
------------------------
если считать точно то получим следующее
pga имеет усиление 128 - это 7 бит
датчик имеет чувствительность 1 мв/вольт
т е опорное есть напряжение на мосту то имеем
1/1000 от диапазона АЦП или -10 бит
в итоге получаем 14+7-10=11
------------------------------
 

kolyn

New member
Вчера случайно нашел эту тему. Зимой пытался сделать весы на Ардуино про мини 5В и столкнулся с аналогичной проблемой - показания растут на не нагруженном датчике. Пробовал 2 платы НХ711 (зеленых), 2 различных тензодатчика от бытовых весов (50 и 200 кг). Подключение - 2 метра неэкранированного провода к НХ711 от Ардуино и короткий (20 см) от НХ к тензодатчику. За ночь увеличение с "0" до 100 - 150 граммов. Заметил еще одну особенность - если коснуться корпуса НХ - показания сначала растут, затем уходят в минус и через 2 -3 минуты стабилизируются на начальном уровне.
Сейчас проект отложил - нет времени, однако за темой буду следить.
 

Vypra

Member
Забыл отписаться.
Поменял библиотеку на HX711_ADC (она мне больше всего почему-то понравилась), HX711 вынес отдельно от основной платы, цифровые провода 20 см, аналоговые 1 м, пины на ESP8266 подтянул резюками, фильтры по питанию.
Погрешность 10-15 грамм. Это лучше, чем я ожидал. Меня устраивало и 50-100 грамм.
Благодарю абсолютно всех за обсуждение.
 

pvvx

Активный участник сообщества
Одна из причин получения кривых показаний c HX711 на Arduino:
upload_2019-12-24_18-19-55.png
Микросхема периодически, со скоростью замера (10.3Гц и 80..) выставляет на шину данных "1".
Т.е. необходимо успевать считывать в промежутке после перепада в "0" сигнала готовности (DOUT) до следующего импульса готовности замера...
 

pvvx

Активный участник сообщества
делитель R1 R2 подключен к внутреннему регулируемому стабилизатору и задает напряжение на его выходе
это напряжение используется для питания моста и в качестве опорного напряжения для АЦП
Не верно. Это напряжение используется для PGA и входов (типа ОУ).
В даташите писано Common mode input AGND+1.2 AVDD-1.3 V
- окно входов (напряжение на входах) должно быть от +1.2В до AVDD-1.3В.
если есть у вас вольтметр хороший то посмотрите все напряжения на предмет их стабильности
например я смотрел напряжение на моста оно 2470 мв
еще лучше осциллограф
Если на мосту 2.47В (AVDD) и мост делит на 2, то на входах будет около 1.235В.
full-scale differential input voltage of ±20mV or ±40mV.
В шкалу с ±40мВ уже не вписываетесь... и в ±20mV учитывая наводку сети...
Вы проверяли реальный Common mode (диапазон синфазных напряжений) для данной микрухи и входов A и B (или мне проверять)?
 

pvvx

Активный участник сообщества
подвожу итоги исследования HX711
...
для определения точности измерения можно принять уровень шума 7 бит без фильтра и 5 бит с медианным фильтром для 10гц
и 8 бит и 6 бит для 80 гц
В итоге диапазон измерения составит не более 19 бит а не 24
-------------------
В случае моста диапазон составит 14 бит.
https://esp8266.ru/forum/threads/ble-modul-jdy-10-na-chipe-tlsr8266.4654/page-3#post-68403
Поглядел работу канала A на x64 10.3Гц при КЗ в правильном окне (синфазное 1.56В) при питании 3.3В, АVDD 3.12В.
8 бит долой.
 

pvvx

Активный участник сообщества
Канал A на x64 10.3Гц при КЗ наглядно
C самого включения HX711 - с подача "0" и 23-х импульсов, прием в null 4-х замеров и поехали передавать по BLE в комп:
upload_2019-12-26_20-15-29.png
Набираем 1000 секунд с 10.3 значений ADC в сек - итого более 10300 24-х битных значений...
Пробуем встроенный фильтр в dygraph (js) на 100 точек:
upload_2019-12-26_20-18-16.png
всё равно землетрясение...
Пробуем фильтр на 10000 точек:
upload_2019-12-26_20-19-48.png
Уже что-то видно, к концу, когда набралось 10000 точек для фильтра...
*.csv надо для точных расчетов дисперсий и т.д.(?) - похоже что нет. И так всё видно, что было выяснено в другой теме с энтой HX711...
После выхода из режима sleep (жрет < 10 nA) HX711 начинает заряжать AVDD цепь. И этот процесс продолжается около 20 сек только по визуальным наблюдением графика нарастания тока потребления модуля c HX711 к 1.413 мА (3.3В). Далее можно считать что AVDD установилось, внутренний Ref HX711 прогрелся.
Короче видно, что встроенный диф. АЦП с PGA в дешевый чип BLE справится с замером лучше и быстрее в тысячи раз... Иначе, вместе с HX711 он при передаче выше упомянутых "землятресений" жрет 0.35 мА + 1.413 мА (сама HX711).
 

nikolz

Well-known member
Канал A на x64 10.3Гц при КЗ наглядно
C самого включения HX711 - с подача "0" и 23-х импульсов, прием в null 4-х замеров и поехали передавать по BLE в комп:
Посмотреть вложение 8442
Набираем 1000 секунд с 10.3 значений ADC в сек - итого более 10300 24-х битных значений...
Пробуем встроенный фильтр в dygraph (js) на 100 точек:
Посмотреть вложение 8443
всё равно землетрясение...
Пробуем фильтр на 10000 точек:
Посмотреть вложение 8444
Уже что-то видно, к концу, когда набралось 10000 точек для фильтра...
*.csv надо для точных расчетов дисперсий и т.д.(?) - похоже что нет. И так всё видно, что было выяснено в другой теме с энтой HX711...
После выхода из режима sleep (жрет < 10 nA) HX711 начинает заряжать AVDD цепь. И этот процесс продолжается около 20 сек только по визуальным наблюдением графика нарастания тока потребления модуля c HX711 к 1.413 мА (3.3В). Далее можно считать что AVDD установилось, внутренний Ref HX711 прогрелся.
Короче видно, что встроенный диф. АЦП с PGA в дешевый чип BLE справится с замером лучше и быстрее в тысячи раз... Иначе, вместе с HX711 он при передаче выше упомянутых "землятресений" жрет 0.35 мА + 1.413 мА (сама HX711).
первый график показывает что сигнал стационарный.
второй и третий возможно показывают переходной процесс на выходе фильтра , который вы прилепили, а не заряд емкостей в HX711.
 

pvvx

Активный участник сообщества
первый график показывает что сигнал стационарный.
второй и третий возможно показывают переходной процесс на выходе фильтра , который вы прилепили, а не заряд емкостей в HX711.
Это один и тот-же замер включения по типовой схеме из документации к микросхеме. Разница в коэф. фильтра в dygraph. На первом нет фильтрации.
Включается внутренний источник опорного напряжения. До старта ток у кристалла менее 10 nA, после выхода из sleep - 1.41 мА. Этот ток нагревает кристалл и параметр ИОН плывет со всеми опорными напряжениями :p Через примерно 20 сек происходит стабилизация. Это более наглядно по току потребления при замере в PowerProfiler.
По итогам - ненужная микросхема, если устройство сделано на чипе BLE с нормальным встроенным ADC.
 

nikolz

Well-known member
Это один и тот-же замер включения по типовой схеме из документации к микросхеме. Разница в коэф. фильтра в dygraph. На первом нет фильтрации.
Включается внутренний источник опорного напряжения. До старта ток у кристалла менее 10 nA, после выхода из sleep - 1.41 мА. Этот ток нагревает кристалл и параметр ИОН плывет со всеми опорными напряжениями :p Через примерно 20 сек происходит стабилизация. Это более наглядно по току потребления при замере в PowerProfiler.
По итогам - ненужная микросхема, если устройство сделано на чипе BLE с нормальным встроенным ADC.
уточню вопрос
все графики - один и тот же процесс в одно и тоже время. верно?
На первом без фильтра. На втором и третьем после фильтра. Верно?
На первом нет дрейфа, на втором и третьем - есть. Верно?
Если так , то проблема в фильтре.
 

pvvx

Активный участник сообщества
уточню вопрос
все графики - один и тот же процесс в одно и тоже время. верно?
Первый график = это сам набор данных в реал тайм. Далее процесс приема данных остановлен и в поле фильтра вводится коэф.
Если так , то проблема в фильтре.
Он подтверждает замер тока потребления у HX711 на типовых платах с али, но с замененными резисторами для правильной работы на 3.3В (согласования напряжения стабилизации AVDD в норму и диф.входов в необходимое окно напряжений для данного чипа, что вы не проделали судя по вашим предоставленным данным из имеющихся в теме сообщений).
 

pvvx

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

pvvx

Активный участник сообщества
При AVDD в 3.15В и цепей моста с R в примерно 7 кОм получаем общий ток от 3.3В источника в 1.41 мА. Если делители цепи FB (feed back) не согласованы, то имеем дополнительный ток на транзистор и нестабилизированное AVDD. В средней безолаберности это выливается более 2.5 мА от 3.3В. При других значениях AVDD (расчет на 5B питания) получим большие токи – закон Ома и увеличение токов утечек в чипе, т.е. нелинейный процесс с загибом в сторону – чем больше напряжениеAVDD, тем сильно больше потребляемый ток и нагрев в кристалле чипа.
 
Сверху Снизу