Весы на hx711 и индикатор на 2-х микросхемах 74Н595 4-bit
Весы на hx711 и индикатор на 2-х микросхемах 74Н595 4-bit
Доброго всем дня. Сделал весы на двух тензодатчиках и ацп hx711. Если отправляю данные в UART или на LED дисплей всё отлично работает, но надо вывести на индикатор на 2-х микросхемах 74Н595 4-bit и тут начинается белиберда. Может какой конфликт в библиотеках, или их вообще в одном проэкте использовать нельзя.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
Весы на hx711 и индикатор на 2-х микросхемах 74Н595 4-bit
[ref]saleks[/ref], Зачем, зачем тебе такой индикатор?
Но если ничего не будешь более добавлять - схема платы есть?
Но зачем такое чудо, на которое отвлекается проц?
Но если ничего не будешь более добавлять - схема платы есть?
Но зачем такое чудо, на которое отвлекается проц?
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Весы на hx711 и индикатор на 2-х микросхемах 74Н595 4-bit
Поставил что было под руками, а вообще нужен индикатор 4 разряда и минимум потребления. Как весы переносные и питаются от батареек. Может кто что лутшее посоветует.
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
Весы на hx711 и индикатор на 2-х микросхемах 74Н595 4-bit
На ТМ16хх - там яркость регулируется, контролер не грузится. Вопрос в разрядности - всякие бывают.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Весы на hx711 и индикатор на 2-х микросхемах 74Н595 4-bit
C TM1337 тоже самое, показывает что попало,на LCD 1602 работает отлично.
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
Весы на hx711 и индикатор на 2-х микросхемах 74Н595 4-bit
Не нашёл в тындексе

Наверно, ТМ1637.
Можно Ваш проект и как соединили?
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Весы на hx711 и индикатор на 2-х микросхемах 74Н595 4-bit
Извиняюсь опечатка TM 1637. Вот так всё работает отлично.
Отправлено спустя 7 минут 35 секунд:
А вот так ничего, даже в UART только нули идут. Только удаляю блок 1637, в UART идут нормально показания веса.
Отправлено спустя 7 минут 35 секунд:
А вот так ничего, даже в UART только нули идут. Только удаляю блок 1637, в UART идут нормально показания веса.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Сержант
- Сообщения: 252
- Зарегистрирован: 05 авг 2018, 08:37
- Имя: Константин
- Поблагодарили: 1 раз
Весы на hx711 и индикатор на 2-х микросхемах 74Н595 4-bit
Если вам нужно минимальное потребление, попробуйте бесплатную версию каскада, соедините по блютуз, прокачаете выходные данные и считаете индикатором в мнемосхеме.
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
Весы на hx711 и индикатор на 2-х микросхемах 74Н595 4-bit
[ref]saleks[/ref], Давайте не спеша.
Сделайте проект, в котором будет только дисплей и подача на него переменной из генератора(0,5...1 сек) и счётчика в диапазоне 0...9999.
Заработает - будем двигаться дальше.
Сделайте проект, в котором будет только дисплей и подача на него переменной из генератора(0,5...1 сек) и счётчика в диапазоне 0...9999.
Заработает - будем двигаться дальше.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Весы на hx711 и индикатор на 2-х микросхемах 74Н595 4-bit
Делал, работает. Только подключаю блок 711 и на индикаторе ничего, даже если просто блок в проэкте ни к чему не подключен.
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
Весы на hx711 и индикатор на 2-х микросхемах 74Н595 4-bit
[ref]saleks[/ref], Слегка переделал, не компилил,....
У вас нет необходимых прав для просмотра вложений в этом сообщении.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Весы на hx711 и индикатор на 2-х микросхемах 74Н595 4-bit
Отлично. Все работает. Огромное спасибо.
Отправлено спустя 2 минуты 34 секунды:
Щас измерю потребление при работе с 1602 и TM 1637.
Отправлено спустя 35 минут 34 секунды:
Отправлено спустя 2 минуты 34 секунды:
Щас измерю потребление при работе с 1602 и TM 1637.
Отправлено спустя 35 минут 34 секунды:
Пользоваться будут разные люди, так что только индикатор.costy1957 писал(а): 01 фев 2019, 12:20Если вам нужно минимальное потребление, попробуйте бесплатную версию каскада, соедините по блютуз, прокачаете выходные данные и считаете индикатором в мнемосхеме.
-
- Сержант
- Сообщения: 252
- Зарегистрирован: 05 авг 2018, 08:37
- Имя: Константин
- Поблагодарили: 1 раз
Весы на hx711 и индикатор на 2-х микросхемах 74Н595 4-bit
на всякий случай вам тоже подкину ваш проект под блютуз модуль ,hc 05, ток потребления 50 ма, подключитесь к смартфону с установленной каскадой и глаза не будите портить, как подключать блютуз модуль описано на сайте flprog в разделе документация.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Весы на hx711 и индикатор на 2-х микросхемах 74Н595 4-bit
Я тоже не удержался, так как имел когда-то собственный интерес, но где-то затерялись мои модули hx711. Описание:
При сохранении Вашей структуры, за счёт объдинения математических вычислений, удаления многократных преобразований типов данных удалось съэкономить прибл. 200 байт (1%) памяти программ и 7% динамической. Также разделено операции измерения и вывода на экран, приведения значених и циклической перезаписи EEPROM (сбережение ресурса) условиями выполнения, что должно бы уменьшить время выполнения цикла для возможности применения Вашего шилда на 74НС595. В общем пробуйте, сравнивайте. Описание подробное присутствует внутри, как и варианты. Удачи!
P.S. [spoiler title= Немного теории, или как это долно быть в идеале в наших условиях]Если-бы Вы хотели, или указали сразу диапазон получаемых значений с АЦП и желаемую точность отображаемых значений на дисплее, то можно добиться реального выиграша в плане использования ресурсов и скорости выполнения алгоритма. Дело в том, что АВР-ки в принципе не умеют выполнять мат.операции деления и умножения (на уровне железа). И выполняют их почти как дети во втором класе методом сложения (утрирую для лучшего понимания).
А мы ещё заставляем их работать с типом приблизительных числовых данных с экспоненциальным представлением (Число с плавающей запятой состоит из 4-х частей, которые и обрабатываются отдельно). По другому говорят число одинарной точности. Цитирую "...Следует иметь ввиду, что числа с плавающей точкой не являются точными, что может приводить к неожиданным результатам при их сравнении. Например, 6.0 / 3.0 может не равняться 2.0. ..."
Есть очень простой и легковесный прием – замена деления больших чисел на битовый сдвиг(выполняется за пару тактов) . В данном случае Ваши данные (unsigned long) с АЦП можно сдвинуть вправо (смотреть >>) на 8-ь знаков (бинарное представление), что эквивалентно делению на 255+1. Ваши операции – АЦП/100/2,019 по проекту. А потом к результату методом простого сложения добавить поправку в 1-м канале 255 - 100*2,019 или во втором 255 - 100*1,1115 .
В результате можем получить бОльшую точность в заранее известном диапазоне веса (значений АЦП), чем при отбрасывании дробной части при преобразовании Float->String, работой с числами одинарной точности, и многократный прирост производительности за счёт использования в вычислениях констант и unsigned integer.
Надеюсь, Вы понимаете, что все эти программисткие «ругательства» использую для того, чтобы Вы, при желании, могли найти в Гугле (т.п.) подробные описание по ключевым или непонятным словам, для лучшего понимания.
[/spoiler] При Вашем желании можем провести описанное исследование вместе. Дайте диапазон данных, я скину Вам новый проект, Вы отписываете полученные результаты в железе. Идёт? Можно cделать проект для всего 24-х битного диапазона АЦП -16777215...0, но тензодатчики (фактич,диапазон) могут внести слишком большое несоответствие. Ну и ещё с EEPROM у нас полная лажа.
[spoiler title=Что -то типа такого] [/spoiler] с извращениями, потому, как FLProg упорно игнорирует поддержку некоторых стандартных и крайне необходимых типов данных 
При сохранении Вашей структуры, за счёт объдинения математических вычислений, удаления многократных преобразований типов данных удалось съэкономить прибл. 200 байт (1%) памяти программ и 7% динамической. Также разделено операции измерения и вывода на экран, приведения значених и циклической перезаписи EEPROM (сбережение ресурса) условиями выполнения, что должно бы уменьшить время выполнения цикла для возможности применения Вашего шилда на 74НС595. В общем пробуйте, сравнивайте. Описание подробное присутствует внутри, как и варианты. Удачи!
P.S. [spoiler title= Немного теории, или как это долно быть в идеале в наших условиях]Если-бы Вы хотели, или указали сразу диапазон получаемых значений с АЦП и желаемую точность отображаемых значений на дисплее, то можно добиться реального выиграша в плане использования ресурсов и скорости выполнения алгоритма. Дело в том, что АВР-ки в принципе не умеют выполнять мат.операции деления и умножения (на уровне железа). И выполняют их почти как дети во втором класе методом сложения (утрирую для лучшего понимания).
А мы ещё заставляем их работать с типом приблизительных числовых данных с экспоненциальным представлением (Число с плавающей запятой состоит из 4-х частей, которые и обрабатываются отдельно). По другому говорят число одинарной точности. Цитирую "...Следует иметь ввиду, что числа с плавающей точкой не являются точными, что может приводить к неожиданным результатам при их сравнении. Например, 6.0 / 3.0 может не равняться 2.0. ..."
Есть очень простой и легковесный прием – замена деления больших чисел на битовый сдвиг(выполняется за пару тактов) . В данном случае Ваши данные (unsigned long) с АЦП можно сдвинуть вправо (смотреть >>) на 8-ь знаков (бинарное представление), что эквивалентно делению на 255+1. Ваши операции – АЦП/100/2,019 по проекту. А потом к результату методом простого сложения добавить поправку в 1-м канале 255 - 100*2,019 или во втором 255 - 100*1,1115 .
В результате можем получить бОльшую точность в заранее известном диапазоне веса (значений АЦП), чем при отбрасывании дробной части при преобразовании Float->String, работой с числами одинарной точности, и многократный прирост производительности за счёт использования в вычислениях констант и unsigned integer.
Надеюсь, Вы понимаете, что все эти программисткие «ругательства» использую для того, чтобы Вы, при желании, могли найти в Гугле (т.п.) подробные описание по ключевым или непонятным словам, для лучшего понимания.
[/spoiler] При Вашем желании можем провести описанное исследование вместе. Дайте диапазон данных, я скину Вам новый проект, Вы отписываете полученные результаты в железе. Идёт? Можно cделать проект для всего 24-х битного диапазона АЦП -16777215...0, но тензодатчики (фактич,диапазон) могут внести слишком большое несоответствие. Ну и ещё с EEPROM у нас полная лажа.


У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Labu559 04 фев 2019, 10:43, всего редактировалось 7 раз.
- Alias
- Лейтенант
- Сообщения: 481
- Зарегистрирован: 27 ноя 2017, 13:15
- Откуда: Rus44
- Имя: Michael
- Контактная информация:
Весы на hx711 и индикатор на 2-х микросхемах 74Н595 4-bit
А кто-то уже оценивал точность получающихся весов? Те тензодатчики, что встречаются на Али, имеют 0,05%FS, а это 2,5г на пятикилограммовом варианте. Даже без учета погрешностей обработки такие весы даже в качестве кухонных уже не подойдут.
Может, я не так считаю и можно взвешивать 15г с мизерной ошибкой?
Согласен, исходить нужно из задач, в качестве напольных точности хватит с головой.
Может, я не так считаю и можно взвешивать 15г с мизерной ошибкой?
Согласен, исходить нужно из задач, в качестве напольных точности хватит с головой.
Весы на hx711 и индикатор на 2-х микросхемах 74Н595 4-bit
Уважаемый Labu559. Спасибо за проделанную работу. Весы делаю для работы, и они сейчас там, так что проект протестирую с понедельника. В чем разница увидел. Весы будут использоваться для взвешивания зверьков норок, до 10 кг. У нас есть парочка весов заводских. Но там есть нюанс в тарировании. Что бы это сделать нужно нажать и удерживать кнопку Т. Так как терминал размещён на весах то это усилие добавляет вес. Поэтому я и сделал автоматическое тарирование при каждом включении питания. По поводу точности за выходные насобираю гирек с аптекарских весов и посмотрим что к чему. Я думаю через масштабирование и подбор коэфициента можно добиться хорошей точности в заданном диапазоне. Тем более на заводских весах, специально для этого сделанных, отсчет начинается с десятков грамм.
Весы на hx711 и индикатор на 2-х микросхемах 74Н595 4-bit
Очень важное уточнение.
Если больше не планируется никаких причин для повторного тарирования, то можно вынести ф-ю записи поправок в енергонезависимую память в setup() для однократного выполнения при инициализации устройства. Вообще мне кажется в таком случае использование EEPROM является неоправданным и нелогичным и здесь достаточно просто глобальных переменных с запрещением их изменения (модификаторы и спецификаторы в СИ, искать в поисковике) вне функции setup() . Всё равно данные каждый раз пересчитываются заново после включения питания.
Последний раз редактировалось Labu559 03 фев 2019, 17:25, всего редактировалось 4 раза.
Весы на hx711 и индикатор на 2-х микросхемах 74Н595 4-bit
Я в СИ не силен, а в FLPROG не нашел как запретить изменение переменной, потому и задействовал EEPROM
Весы на hx711 и индикатор на 2-х микросхемах 74Н595 4-bit
Можете проверять! Блок ТМ1637 и библиотека на форуме.saleks писал(а): 02 фев 2019, 13:52Я думаю через масштабирование и подбор коэфициента можно добиться хорошей точности в заданном диапазоне.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Весы на hx711 и индикатор на 2-х микросхемах 74Н595 4-bit
При скачивании библиотеки ошибка "Архив повреждён или имеет неизвестный формат". Наверное надо перезалить.Labu559 писал(а): 03 фев 2019, 16:41Можете проверять! Блок ТМ1637 и библиотека на форуме.saleks писал(а): 02 фев 2019, 13:52Я думаю через масштабирование и подбор коэфициента можно добиться хорошей точности в заданном диапазоне.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость