Страница 1 из 1

Не правильно отображаются данные на семисементном индикаторе

Добавлено: 29 апр 2024, 14:38
DownHouse
Здравствуйте. Купил на Али вот такие индикаторы трехразрядные.
В FLprog создал проект с выводом температуры с датчика DS18B20 на этот индикатор и для контроля подключил дисплей 1602. Данные с датчика на индикатор выводятся не корректно.
Подскажите пож-ста, что я не так сделал.
Для наглядности приложил фото
[spoiler]
IMG_20240429_130206.jpg
[/spoiler]
Не пойму почему целая часть числа сдвинута. При этом десятые доли отображаются нормально.
Может блоки декодирования семисегментного индикатора и блок микросхемы 74HC595 нужно как то по друму между собой соединять.
Если в настройках блока конвертации из числа в строку установить число знаков после запятой равным Нулю, то данные на индикатор выводятся верно.
Т.е. если температура равна 20 градусам,то данные отображаются на двух крайних правых разрядах, а первый разряд остается пустым. Как только ставлю число знаков после запятой равное одному, то данные на индикаторе сдвигаются.
Может я что то с точками не так делаю.
Забыл сказать. что используется статический режим.
Прощу прощения, если это уже где-то обсуждалось, посмотрел бегло вроде не нашел.

Не правильно отображаются данные на семисементном индикаторе

Добавлено: 29 апр 2024, 18:05
montirovka
Посмотрите вот этот пост. TM595
В примере есть пользовательский блок Parse String Dots. попробуйте его поставить перед TM74HC595 сразу на датчик температуры.

Не правильно отображаются данные на семисементном индикаторе

Добавлено: 29 апр 2024, 19:04
DownHouse
Я что то не нашел этого блока. Там по ссылке только два архива, ни в одном из них пользовательских блок нет. Может не туда смотрю.

Не правильно отображаются данные на семисементном индикаторе

Добавлено: 29 апр 2024, 19:22
montirovka
ошибочка вышла.

Не правильно отображаются данные на семисементном индикаторе

Добавлено: 29 апр 2024, 19:23
ViktorPetrov
Умножить температуру на х10 простое решение ,для индикатора нужно целое число.

Не правильно отображаются данные на семисементном индикаторе

Добавлено: 29 апр 2024, 19:28
garikb
DownHouse писал(а): 29 апр 2024, 19:04 Я что то не нашел этого блока
А в чем проблема вытащить из проекта?
4-bit_LED_Digital_Module_(Code_-_Basic).ubi
Извеняюсь не глянул название блока и скинул что в проекте по ссылке ( .

Не правильно отображаются данные на семисементном индикаторе

Добавлено: 29 апр 2024, 19:30
montirovka

Не правильно отображаются данные на семисементном индикаторе

Добавлено: 29 апр 2024, 19:51
asvhmao
Проверить неначем, рисовал в 9 версии FLProg. Посмотри может заработает?
Как выше написали, где пустой символ, там запятая, но семисигментный декодер её не понимает.
Можно ещё добавить четвёртый (виртуальный) разряд на декодер, а на регистр подавать разряды 1,3,4, второй оставить в воздухе. Соответственно запятую ставить ручками, инверсией вывода точки.

Не правильно отображаются данные на семисементном индикаторе

Добавлено: 29 апр 2024, 21:09
montirovka
В восьмой версии не открывается. Падает FLprog

Не правильно отображаются данные на семисементном индикаторе

Добавлено: 29 апр 2024, 21:54
asvhmao
Восьмая версия, но по второму варианту.

Отправлено спустя 26 минут 24 секунды:
Добавил вариант с умножением на 10. Восьмая версия программы.

Не правильно отображаются данные на семисементном индикаторе

Добавлено: 29 апр 2024, 23:45
DownHouse
garikb писал(а): 29 апр 2024, 19:28
DownHouse писал(а): 29 апр 2024, 19:04 Я что то не нашел этого блока
А в чем проблема вытащить из проекта?
4-bit_LED_Digital_Module_(Code_-_Basic).ubi

Извеняюсь не глянул название блока и скинул что в проекте по ссылке ( .
Спасибо, не знал. Сохранил из скетча.

Отправлено спустя 5 минут 14 секунд:
asvhmao писал(а): 29 апр 2024, 19:51 Проверить неначем, рисовал в 9 версии FLProg. Посмотри может заработает?
Как выше написали, где пустой символ, там запятая, но семисигментный декодер её не понимает.
Можно ещё добавить четвёртый (виртуальный) разряд на декодер, а на регистр подавать разряды 1,3,4, второй оставить в воздухе. Соответственно запятую ставить ручками, инверсией вывода точки.
Скачал Ваш пример, но у меня только шестая версия. Не хочет открывать. Позже обновлюсь, попробую, если решения не найдется.

Отправлено спустя 3 минуты 4 секунды:
Заодно попутный вопрос - что в новых версиях помимо поддержки новых контроллеров? Стоит ли обновляться? Так то оно конечно не долго.

Отправлено спустя 19 минут 16 секунд:
Скачал проект по ссылке из этого поста viewtopic.php?f=45&t=9058&p=130225#p130219, так вот с тем блоком вроде заработало, т.е. сами числа выводятся правильно.Но вот осталось решить вопрос с разделительной точкой.
Там же (в проекте) используется блок "byte - bits" и "parseStr".
На вход блока "byte - bits" подается значение с выхода "dotsPos" блока "parseStr". Возможно это решение вопроса с точкой, но я не очень понял как это работает, потому что не очень понимаю какие данные появляются на выходах блока "byte-bits" и как их соединять с точками блока микросхемы HC595.

Отправлено спустя 5 минут 28 секунд:
Вот, что накидал.

Отправлено спустя 10 минут 28 секунд:
Возможно конечно в моем случае достаточно точку просто зажечь руками инвертировав значение нужной точки, но мало ли в будущем что то буду колхозить глядишь пригодится.
Да, забыл. Пробовал еще вариант с блоками, которые подстроки выдергивают из строки. Вытаскивал через один блок целое число с(в виде строки) а через второй блок десятичную часть и потом опять суммировал строки (наверное те еще костыли). Вроде тоже правильно отображает индикатор, но точку опять таки руками включать надо.

Не правильно отображаются данные на семисементном индикаторе

Добавлено: 30 апр 2024, 00:06
asvhmao
Много лишнего, мне так кажется. Так попробуй

.
Temper.jpg
.

Или так

.
Temper_2.jpg
.
Отправлено спустя 14 минут 16 секунд:
DownHouse писал(а): 29 апр 2024, 23:45 Заодно попутный вопрос - что в новых версиях помимо поддержки новых контроллеров? Стоит ли обновляться? Так то оно конечно не долго.
Сравнивать могу 8 и 9 версию и только с STM32F103. Опыта пользования программой меньше месяца. 9 тормозит больше, но исправлены и добавлены некоторые возможности, которые в 8 версии надо было руками дописывать.
Восьмая то версия точно будет получше шестой. Если есть возможность, то почему бы и не поставить.


Ещё добавлю

[spoiler]
Temper_3.jpg
IMG_20240430_020126.jpg
[/spoiler]

Не правильно отображаются данные на семисементном индикаторе

Добавлено: 30 апр 2024, 01:23
garikb
DownHouse писал(а): 29 апр 2024, 23:29 но у меня только шестая версия. Не хочет открывать
Вот под вашу версию:
Temperatura.flp
На 9 версию рано еще переходить, а вот 8.2.3 уже пора.
Если измерять от 0 до 100, то можно попробовать так:
Temperatura1.flp

Не правильно отображаются данные на семисементном индикаторе

Добавлено: 30 апр 2024, 06:54
rw6cm
[ref]garikb[/ref], [ref]asvhmao[/ref],
какой смысл умножать инт на 10*?
Умножать надо флоат стразу после датчика, а потом переводить в инт, чтобы отображать десятые.

Не правильно отображаются данные на семисементном индикаторе

Добавлено: 30 апр 2024, 08:30
garikb
[ref=#ff8000]rw6cm[/ref],
Как раз чтобы уйти от десятых, на сколько я понял не коректно отображается на модуле если выводить с десятыми.
У меня модуля такого нет, так что только мысли , а проверяет пусть автор топика.

Не правильно отображаются данные на семисементном индикаторе

Добавлено: 30 апр 2024, 09:52
rw6cm
garikb писал(а): 30 апр 2024, 08:30 Как раз чтобы уйти от десятых,
Чтобы уйти от десятых достаточно перевести в инт.

Не правильно отображаются данные на семисементном индикаторе

Добавлено: 30 апр 2024, 13:42
garikb
rw6cm писал(а): 30 апр 2024, 09:52 Чтобы уйти от десятых достаточно перевести в инт.
Ну не я рисовал это, я просто переделал с 9 версии на 6

Не правильно отображаются данные на семисементном индикаторе

Добавлено: 30 апр 2024, 15:49
asvhmao
rw6cm писал(а): 30 апр 2024, 06:54 Умножать надо флоат стразу после датчика, а потом переводить в инт, чтобы отображать десятые.
12 сообщение, картинки под спойлером, с примером на ЖК.
ТСу вариантов много накидали, бери да делай только.

Не правильно отображаются данные на семисементном индикаторе

Добавлено: 01 май 2024, 14:24
DownHouse
Спасибо всем за помощь.
Пожалуй вариант с умножением самый простой будет.