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

Вывод дробных чисел на 7led индикатор

Добавлено: 21 апр 2022, 14:10
Evolad
Добрый день. Собрал простенький термометр на arduino mini, ds18b20 и семисегментном индикаторе (версия flprog 7.4.6 x64). Проблема следующая: сначала на 7led дисплей выводилось почти всё корректно при положительной температуре типа " 22.5", но при отрицательной температуре получался следующий вид: " -.5" . Далее " -1.5" и по нарастающей. Не устраивало то, что не отображался ноль перед точкой, например" -0.5". Далее после нескольких загрузок скетча пропала плавающая точка и вместо точки просто пустой разряд. Вот типа такого: "22 5". Перепроверил проект несколько раз, но так и не нашёл где мог я накосячить. Ну и мигает дисплей раз в секунду, что дико раздражает. с этим тоже хотелось бы разобраться.
В общем, хотелось бы разобраться как float вывести на 7сегментный индикатор, если такое возможно.
[spoiler]
ds1820_7led_term_in_auto.flp
[/spoiler]

Отправлено спустя 5 часов 2 минуты 40 секунд:
В общем, пришёл к выводу, что реализовать плавающую точку бессмысленно и беспонтово. Сам индикатор такое не поддерживает. Здесь же на форуме нашёл такую же проблему. Проект переделал. Теперь осталось устранить ещё две проблемы: это мерцание 7led индикатора и как добавить ноль в диапазоне от +1.0 до -1.0 градусов? То есть чтоб на дисплее было так: " 0.5", а не " .5".
[spoiler]
ds1820_7led_term_in_auto.flp
[/spoiler]
Про мерцание. Тут где-то советовали в самом скетче ардуино millis заменить на micros. В моём случае это ни к чему хорошему не привело. Может их все сразу надо заменить?

Вывод дробных чисел на 7led индикатор

Добавлено: 21 апр 2022, 14:30
Ingwar
Evolad писал(а): 21 апр 2022, 14:10 Ну и мигает дисплей раз в секунду, что дико раздражает. с этим тоже хотелось бы разобраться.
Evolad писал(а): 21 апр 2022, 14:10 То есть чтоб на дисплее было так: " 0.5", а не " .5".
Специфика выбранного Вами способа вывода информации на 7сегментный индикатор такова, что скорость переключения сегментов обратно пропорциональна времени выполнения программы. В проекте Вы опрашиваете датчик с периодичностью раз в секунду. Вот пока данные с датчика не будут получены, перестает работать динамическая индикация. Сделаете опрос раз в минуту - будет моргать раз в минуту.
Используйте вспомогательные микросхемы для работы с 7сегментным индикатором. Решите две проблемы - мерцание и запятую. Примеры и блоки есть на форуме.

Вывод дробных чисел на 7led индикатор

Добавлено: 21 апр 2022, 15:12
Evolad
Ingwar писал(а): 21 апр 2022, 14:30 Используйте вспомогательные микросхемы для работы с 7сегментным индикатором
нет такой возможности, использую что под рукой.
Ingwar писал(а): 21 апр 2022, 14:30 Сделаете опрос раз в минуту
Это я в курсе.