Весы на HX711 в FLPROG

После не совсем удачных поисков работающей (действующей) схемы простых весов, решил создать эту тему. Я - начинающий работать с FLPROG, поэтому уместные комментарии и поправки приветсвуются. Планируется совместное с форумчанами построение весов на модуле от AlexCrane. Весы должны измерять вес 1 или 2 кг (такие тензодатчики есть в наличии), иметь функцию самокалибровки с образцовым весом, звуковое сопровождение нажатия кнопок. Кнопок планируется 3 шт. Значение вверх (+)/ОК/Значение вниз (-). Возможны ещё какие-либо доп. функции, которые добавятся по ходу пьесы.

Astreet
Сержант
Сообщения: 122
Зарегистрирован: 07.12.2023{, 07:35}
Репутация: 4
Имя: Александр

Весы на HX711 в FLPROG

#61

Сообщение Astreet » 01.03.2024{, 15:17}

OLGA писал(а):
01.03.2024{, 15:14}
Astreet писал(а):
01.03.2024{, 09:53}
Плата 8 имеет зеленую стрелочку, а плата 9 красную. Что это?
не компилировать плату.
Ясно, спасибо!

ValentinK
Рядовой
Сообщения: 21
Зарегистрирован: 16.02.2024{, 17:13}
Репутация: 1
Имя: Валентин

Весы на HX711 в FLPROG

#62

Сообщение ValentinK » 01.03.2024{, 16:41}

Astreet писал(а):
01.03.2024{, 09:53}
Плата 8 имеет зеленую стрелочку, а плата 9 красную. Что это?
Платы с зелёной стрелочкой компилируются в исполняемый файл, а с красной стрелочкой - нет (они остались, что-бы наработки на будущее не потерять).

ValentinK
Рядовой
Сообщения: 21
Зарегистрирован: 16.02.2024{, 17:13}
Репутация: 1
Имя: Валентин

Весы на HX711 в FLPROG

#63

Сообщение ValentinK » 01.03.2024{, 16:47}

Astreet писал(а):
01.03.2024{, 09:53}
Плата 9. Масштаб установка.
Что это такое? Для чего? Как работает? Судя по всему, нажимаем кнопочку и счетчик считает от 1 до 1000, а затем умножается на 100.
Astreet писал(а):
01.03.2024{, 09:53}
Это, я так понимаю, дешифратор для дисплея.....
Это то, что я хотел добавить, но не доделал. Планировалось, что-бы можно было автоматически рассчитывать константу масштаб по указанной и установленной на платформу массе. Как я раньше писал для настройки разных тензодатчиков без перепрошивки контроллера.
Хотел сделать несколько режимов настройки. Самая нижняя плата с большой схемой, как раз сделана, что-бы от разной задержки нажатия кнопки можно было выбрать разные режимы настройки.

Astreet
Сержант
Сообщения: 122
Зарегистрирован: 07.12.2023{, 07:35}
Репутация: 4
Имя: Александр

Весы на HX711 в FLPROG

#64

Сообщение Astreet » 02.03.2024{, 09:07}

Валентин, можно подробнее рассказать, как работает данная плата?
Снимок экрана 2024-03-02 090622.jpg

ValentinK
Рядовой
Сообщения: 21
Зарегистрирован: 16.02.2024{, 17:13}
Репутация: 1
Имя: Валентин

Весы на HX711 в FLPROG

#65

Сообщение ValentinK » 02.03.2024{, 16:17}

Astreet писал(а):
02.03.2024{, 09:07}
Валентин, можно подробнее рассказать, как работает данная плата?
Эта плата не доделана.
Много кнопок или перемычек для входа в калибровку я делать тогда не хотел. Хотя сейчас я лучше-бы сделал перемычку внутри корпуса - так было-бы удобнее: установил перемычку, поставил груз, нажал кнопку, снял перемычку - весы откалиброваны.
План был следующий: первом включении установить на платформу известный груз; после длительного удержания кнопки (около 10 секунд) нормальная индикация должна была отключаться и включиться режим ручного указания массы на платформе.
После входа в режим калибровки нажимаем кнопку, счётчик считает количество нажатий, умножаем на сто для более быстрого счёта Этим указываем установленную на платформу массу. На дисплее она и отображается в данный момент. Блок деления (HX711_OUT / Set_Weight = Scale), как раз и подсчитывает переменную масштабирования для этой системы весов. Но при этом переменная Scale не должна быть задействована в программе до выхода из меню, т.к. она в следующем цикле работы программы уже повлияет на выход HX711_OUT, и в следующем цикле снова, из-за чего коэффициент Scale не получится зафиксировать. По какому-то событию надо было сделать сохранение в память и выход из этого состояния. Но тут я уже не доделал.

ValentinK
Рядовой
Сообщения: 21
Зарегистрирован: 16.02.2024{, 17:13}
Репутация: 1
Имя: Валентин

Весы на HX711 в FLPROG

#66

Сообщение ValentinK » 02.03.2024{, 16:22}

Так, как я экспериментировал с ESP32, то решил попробовать делать средствами FLPorg Вэб интерфейс через Вай-Фай, куда и вывел нужные для первичной настройки параметры. Да и дальнейшее развитие с сетью этих весов требовало создания главного устройства для удалённого считывания данных и настройки по сети.

ValentinK
Рядовой
Сообщения: 21
Зарегистрирован: 16.02.2024{, 17:13}
Репутация: 1
Имя: Валентин

Весы на HX711 в FLPROG

#67

Сообщение ValentinK » 02.03.2024{, 16:25}

А в автономном использовании, функцию калибровки лучше активировать с помощью перемычки или дополнительной кнопки, которая будет спрятана внутри корпуса. Переменная Scale должна записываться во временную переменную (ScaleTemp). А после выхода из режима калибровки присвоить значение ScaleTemp переменной Scale и сохранить её в память.

Astreet
Сержант
Сообщения: 122
Зарегистрирован: 07.12.2023{, 07:35}
Репутация: 4
Имя: Александр

Весы на HX711 в FLPROG

#68

Сообщение Astreet » 04.03.2024{, 10:12}

ValentinK писал(а):
02.03.2024{, 16:17}

Эта плата не доделана.
Давайте доделаем!!! :yes:
ValentinK писал(а):
02.03.2024{, 16:17}
Много кнопок или перемычек для входа в калибровку я делать тогда не хотел. Хотя сейчас я лучше-бы сделал перемычку внутри корпуса - так было-бы удобнее: установил перемычку, поставил груз, нажал кнопку, снял перемычку - весы откалиброваны.
План был следующий: первом включении установить на платформу известный груз; после длительного удержания кнопки (около 10 секунд) нормальная индикация должна была отключаться и включиться режим ручного указания массы на платформе.
После входа в режим калибровки нажимаем кнопку, счётчик считает количество нажатий, умножаем на сто для более быстрого счёта Этим указываем установленную на платформу массу. На дисплее она и отображается в данный момент. Блок деления (HX711_OUT / Set_Weight = Scale), как раз и подсчитывает переменную масштабирования для этой системы весов. Но при этом переменная Scale не должна быть задействована в программе до выхода из меню, т.к. она в следующем цикле работы программы уже повлияет на выход HX711_OUT, и в следующем цикле снова, из-за чего коэффициент Scale не получится зафиксировать. По какому-то событию надо было сделать сохранение в память и выход из этого состояния. Но тут я уже не доделал.
Давайте добавим кнопку.
Я также сторонник того, чтобы вводить (вычислять) коэффициент Scale посредством самих весов, без дополнительного подключения к ПК и ввода Scale вручную. .......У меня есть желание повторить ваш проект (с доработками). Комплектующие в наличии.


Заключительная плата. (Поправьте, если неверно).

Алгоритм управления заключается во времени удерживания кнопок (насколько я понял). Для этого используются таймеры TON.
1. 0.5 секунды - переменная Set_05
2. 3 секунды - переменная Set_Zero
3. 6 секунд - переменная Set_Scale
4. 10 секунд - переменная Trig_reset
5. Если ничего не нажато в течении 20 секунд - переменная Trig_reset

Для нужен блок, обведённый синим?
2024-03-04_10-06-24.jpg

ValentinK
Рядовой
Сообщения: 21
Зарегистрирован: 16.02.2024{, 17:13}
Репутация: 1
Имя: Валентин

Весы на HX711 в FLPROG

#69

Сообщение ValentinK » 04.03.2024{, 16:25}

Astreet писал(а):
04.03.2024{, 10:22}
Алгоритм управления заключается во времени удерживания кнопок (насколько я понял).
Верно. Это для сложного меню сделано было.
Astreet писал(а):
04.03.2024{, 10:22}
Для нужен блок, обведённый синим?
Это для переменной вывода сработавшего режима на LCD дисплей дял отладки, или включения нужной платы.

ValentinK
Рядовой
Сообщения: 21
Зарегистрирован: 16.02.2024{, 17:13}
Репутация: 1
Имя: Валентин

Весы на HX711 в FLPROG

#70

Сообщение ValentinK » 04.03.2024{, 17:20}

Astreet писал(а):
04.03.2024{, 10:22}
Давайте доделаем
Astreet писал(а):
04.03.2024{, 10:22}
Давайте добавим кнопку.
Если я правильно помню, то с нажатиями и отпусканиями кнопки глюк какой-то был при установке веса, но сейчас не вспомню.
Надо решить будет калибровка по фиксированному грузу, например 100 или 500 или 1000 единиц взвешивания (грамм, килограмм) так будет сильно проще. Или массу указывать при калибровке, но опять-же целыми ступенями, например прибавляя по 50 или 100 единиц за одно нажатие.
Ещё взрослые весы, бывает, калибруют на несколько точек. Например всю шкалу разбивают на четыре или пять или больше участков последовательно ступенями увеличивая массу, каждый раз записывают новое значение калибровочного коэффициента для определённого диапазона взвешивания. А затем при взвешивании в каждом диапазоне используют свой коэффициент. Но это, наверное, лишнее в данной конструкции.
Для включения режима калибровки не обязательно делать сложное меню, хотя оно уже есть. Но к нему надо продумать селектор плат для выбора режима работы. Что-бы платы нормального режима отключались и не мешали работать калибровке и наоборот. Может-быть, использовать для этого переменную с выхода последнего Switch из обведённых синей рамкой.
Можно пойти другим путём: К существующей кнопке добавить одну перемычку. Снятая перемычка - нормальный режим работы. Установленная перемычка - режим калибровки.

manukc1
Рядовой
Сообщения: 12
Зарегистрирован: 05.04.2020{, 00:55}
Репутация: 0
Имя: Man

Весы на HX711 в FLPROG

#71

Сообщение manukc1 » 21.04.2024{, 22:55}

доброго дня всем

блок отличный и функции хорошие, но есть вопрос, тему вроде пересмотрел но нигде не упаминается про скорость взвешивания?

да есть время стабилизации, но я его менял и особой разницы не видел? может ли быть это из за ARDUINO NANO и например на NODE MCU будет шустрее?

fefar51702
Рядовой
Сообщения: 51
Зарегистрирован: 26.06.2022{, 07:35}
Репутация: 2
Имя: Валера

Весы на HX711 в FLPROG

#72

Сообщение fefar51702 » 22.04.2024{, 07:32}

на стм 1,5сек это с фильтрами рс и оконик с передачей в уарт на есп32 с выводом в ремонтикс

Astreet
Сержант
Сообщения: 122
Зарегистрирован: 07.12.2023{, 07:35}
Репутация: 4
Имя: Александр

Весы на HX711 в FLPROG

#73

Сообщение Astreet » 23.04.2024{, 07:59}

manukc1 писал(а):
21.04.2024{, 22:55}
доброго дня всем

блок отличный и функции хорошие, но есть вопрос, тему вроде пересмотрел но нигде не упаминается про скорость взвешивания?

Это принципиально? Влияет на какой-то процесс?

manukc1
Рядовой
Сообщения: 12
Зарегистрирован: 05.04.2020{, 00:55}
Репутация: 0
Имя: Man

Весы на HX711 в FLPROG

#74

Сообщение manukc1 » 23.04.2024{, 22:26}

Astreet писал(а):
23.04.2024{, 07:59}
manukc1 писал(а):
21.04.2024{, 22:55}
доброго дня всем

блок отличный и функции хорошие, но есть вопрос, тему вроде пересмотрел но нигде не упаминается про скорость взвешивания?

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


как появится время попробую еще таймер поставить на "Вес измерен" позицию, чтобы понять на сколько разнится время измерения.....

ValentinK
Рядовой
Сообщения: 21
Зарегистрирован: 16.02.2024{, 17:13}
Репутация: 1
Имя: Валентин

Весы на HX711 в FLPROG

#75

Сообщение ValentinK » 01.05.2024{, 17:47}

manukc1 писал(а):
23.04.2024{, 22:26}
если делать какието проэкты для забавы то не принципиально, но если делаеш чтобы вто то выливалось откуда то или высыпалось, и должно остановится при конкретном весе то хотя бы секунда но не более наверное, и то если подумаем что например что то заливать перестаем кудато, то после паузы тоже еще какое то количество "пордукта" будет в "дороге" падать, и плюсь к этому наши пару секунд пока весы вернее arduino поймет вес нормальный или пока нет.
В промышленных фасовщиках используют ПИД регулятор по времени (работы конвеера подачи, открытия клапана, и т.п.), который обучается на первых нескольких порциях (которые идут в брак).
А масса продукта - только контрольная величина для ПИД, по которой рассчитываются коэффициенты регулятора.

Аватара пользователя
ViktorPetrov
Лейтенант
Сообщения: 687
Зарегистрирован: 09.04.2018{, 23:56}
Репутация: 53
Имя: Виктор

Весы на HX711 в FLPROG

#76

Сообщение ViktorPetrov » 02.05.2024{, 17:06}

ValentinK писал(а):
01.05.2024{, 17:47}
В промышленных фасовщиках используют ПИД регулятор по времени (работы конвеера подачи, открытия клапана, и т.п.), который обучается на первых нескольких порциях (которые идут в брак).
А масса продукта - только контрольная величина для ПИД, по которой рассчитываются коэффициенты регулятора.
Интересная логика работы,почитать есть сылочка или инструкция к фасовщику ? Важный параметр для любых дозаторов - это время стабилизации весов.Под обучением вероятно подразумевается расчет времени в зависимости от скорости и сыпучести материала, смеси т.д.,измерения проводятся уже на конечной стадии при низкой скорости ,когда соответственно время стабилизации весов будит не большим.

ValentinK
Рядовой
Сообщения: 21
Зарегистрирован: 16.02.2024{, 17:13}
Репутация: 1
Имя: Валентин

Весы на HX711 в FLPROG

#77

Сообщение ValentinK » Вчера{, 15:02}

ViktorPetrov писал(а):
02.05.2024{, 17:06}
Интересная логика работы,почитать есть сылочка или инструкция к фасовщику ? Важный параметр для любых дозаторов - это время стабилизации весов.Под обучением вероятно подразумевается расчет времени в зависимости от скорости и сыпучести материала, смеси т.д.,измерения проводятся уже на конечной стадии при низкой скорости ,когда соответственно время стабилизации весов будит не большим.
Почитать негде. Просто доводилось ремонтировать старый промышленный фасовочный станок для сыпучих продуктов с тремя комплектами вибролотков и корзинок со створками. Станок производства фирмы Нотис. Вот на нём такой принцип работы. Вибролоток определённое время подают продукт в корзинку. Корзинка подвешена на тензодатчике. Первые несколько доз с ошибкой веса, а упаковки бракуются. Через несколько взвешиваний вычисляются параметры времени и дозы отмеряются очень точно.

manukc1
Рядовой
Сообщения: 12
Зарегистрирован: 05.04.2020{, 00:55}
Репутация: 0
Имя: Man

Весы на HX711 в FLPROG

#78

Сообщение manukc1 » Вчера{, 18:32}

ValentinK писал(а):
Вчера{, 15:02}
старый промышленный фасовочный станок
сказать честно, долго думал где и как то может работать, поскольку работаю в этой сфере, сейчас уже давно не такие весы, даже те который примерно с 2007г Российского производства я "чинил" и работал там какраз в те же корзины продукт подается до определенного процента конечного веса сильной вибрацией, а потом уже мелкой вибрацией(начиная с первого пакета погрешность +- 1-2%), делали с друзьями на подобие и в ручную станок с меняющей вибрацией на весовом модуле с несколькими выходами(погрешность такая же). а весы уже посерезнее уже работают по другому принципу, там корзин много и из многих корзин плк своей математикой находит самый близкий вес который тебе нужен,
например корзинок 16 и он выбирает из них примерно 4 или 6 корзин и т.д. там получается в секунду 2 пакета(если продукт позваляет этого)

а у них после набора продукта время успакоения примерно 700мс, вот почему я спрашивал почему на ардуино нано время успакоения слушком долгое не смотря на то что система другими расчетами не занят.

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

ValentinK
Рядовой
Сообщения: 21
Зарегистрирован: 16.02.2024{, 17:13}
Репутация: 1
Имя: Валентин

Весы на HX711 в FLPROG

#79

Сообщение ValentinK » Сегодня{, 16:03}

manukc1 писал(а):
Вчера{, 18:32}
вот почему я спрашивал почему на ардуино нано время успакоения слушком долгое не смотря на то что система другими расчетами не занят.
Так здесь время успокоения зависит от настроек частоты микросхемы преобразователя HX711 (output data rate: Pin RATE = 0 - 10SPS or Pin RATE = DVDD 80SPS ). Скорее всего 10 Герц включено. И в самой библиотеке усреднение результатов чтения включено - вот и задержка. А ещё и микроконтроллер какой используется?
Для быстрого чтения, мне кажется, лучше другие внешние АЦП с источником опорного напряжения (тока) использовать, или АЦП, встроенные в микроконтроллер (но у них разрядность маленькая). И ещё свою библиотеку писать.

Ответить

Вернуться в «Помогите, а то я "нимагу"»