7сегментный индикатор стандартный блок.(стал быстрее)

Пользовательские блоки для вывода информации на дисплеи и индикаторы, управления тачскрином, различными клавиатурами, добавления русских шрифтов для вывода на дисплеи типа HD44780
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Ответить
Аватара пользователя
sser
Рядовой
Сообщения: 82
Зарегистрирован: 02.01.2018{, 12:19}
Репутация: 20
Откуда: Н.Новгород
Имя: Сергей
Контактная информация:

7сегментный индикатор стандартный блок.(стал быстрее)

#1

Сообщение sser » 08.03.2022{, 11:38}

Блок декодирования семисегментного индикатора.
Применил этот блок на шесть индикаторов и подключил с динамической индикацией.
Результат разочаровал...
Он тупо моргает при отображении цифр...
Нашёл простой выход : поменял в скетче millis на micros.
Теперь цифры как вкопанные стоят и не моргают.

Может кому пригодится это.
Последний раз редактировалось sser 14.03.2022{, 08:28}, всего редактировалось 2 раза.

Murtaza
Рядовой
Сообщения: 12
Зарегистрирован: 21.02.2018{, 09:26}
Репутация: 0
Имя: Marti

7сегментный индикатор стандартный блок.

#2

Сообщение Murtaza » 12.03.2022{, 09:36}

Good after noon
can you give of a exmple of your modified code
thanks

Аватара пользователя
sser
Рядовой
Сообщения: 82
Зарегистрирован: 02.01.2018{, 12:19}
Репутация: 20
Откуда: Н.Новгород
Имя: Сергей
Контактная информация:

7сегментный индикатор стандартный блок.

#3

Сообщение sser » 12.03.2022{, 23:42}

Поменял в скетче millis на micros.
Подробная инструкция:
Разместите блок 7сегментного индикатора на отдельной плате в самом низу проекта.
Затем найдите плату (например плата 2) в скетче
и исправьте millis на micros.
А также исправьте в функции которая будет после блока.
Ещё есть нюанс: все блоки задержки и генераторы переведите с мс в мкс.
Иначе при исправлении millis в функции, всё уменьшится на 1000.
Если Вы это сделаете, то в скетче, после компиляции, появится функция ниже, которая будет отвечать за блоки таймеров.

Аватара пользователя
sser
Рядовой
Сообщения: 82
Зарегистрирован: 02.01.2018{, 12:19}
Репутация: 20
Откуда: Н.Новгород
Имя: Сергей
Контактная информация:

7сегментный индикатор стандартный блок.(стал быстрее)

#4

Сообщение sser » 13.03.2022{, 17:10}

Подключаем 6 кнопок на один пин используя пины 7сегментника.(пример проекта во вложении)

Кнопки подключаются так: пин входа kn(А3) -это общий для всех кнопок, вторые выводы кнопок ,подключаем на пины 7сегментника
(через резисторы 470 Ом)

Теперь переменные kn1,kn2,kn3,kn4,kn5,kn6 в проекте ,можно использовать как входа кнопок.

Теория такова: каждый разряд индикатор засвечивается по очереди , и отсюда ,переменная кнопки от 1 до 6 будет изменена только та , которая соответствует подключенному пину задействованного разряда индикатора в определённый момент времени.

Отправлено спустя 6 часов 24 минуты 59 секунд:
Murtaza писал(а):
12.03.2022{, 09:36}
Good after noon
can you give of a exmple of your modified code
thanks

Код: Выделить всё

    //Плата:1
    if(_isTimer(_sido1STi, 1)) 
    {
        _sido1STi = millis();//micros!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
        if (_sido1Raz > 6) 
        {
            _sido1Raz = 1;
        }
        if(_sido1Mod)
        {

Код: Выделить всё

bool _isTimer(unsigned long startTime, unsigned long period)
{
    unsigned long currentTime;
    currentTime = millis();//micros!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    if (currentTime>= startTime) 
    {
        return (currentTime>=(startTime + period));
    }
Вложения
123456.flp
6 индикаторов,6кнопок(исправил)
(465.66 КБ) 69 скачиваний
Последний раз редактировалось sser 16.03.2022{, 17:50}, всего редактировалось 2 раза.

Murtaza
Рядовой
Сообщения: 12
Зарегистрирован: 21.02.2018{, 09:26}
Репутация: 0
Имя: Marti

7сегментный индикатор стандартный блок.(стал быстрее)

#5

Сообщение Murtaza » 15.03.2022{, 10:18}

thankss much more

Lukum
Рядовой
Сообщения: 63
Зарегистрирован: 06.11.2018{, 18:46}
Репутация: 1
Имя: Алексей

7сегментный индикатор стандартный блок.(стал быстрее)

#6

Сообщение Lukum » 15.03.2022{, 12:16}

не открывается вложение 12345 flp

shpuntic48
Рядовой
Сообщения: 21
Зарегистрирован: 26.06.2020{, 07:17}
Репутация: 0
Откуда: Khabarovsk
Имя: михаил

7сегментный индикатор стандартный блок.(стал быстрее)

#7

Сообщение shpuntic48 » 15.03.2022{, 12:41}

Да все прекрасно открывается
Вложения
999.jpg

Ответить

Вернуться в «Дисплеи, индикаторы и клавиатуры»