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

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

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

Может кому пригодится это.

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

Добавлено: 12 мар 2022, 09:36
Murtaza
Good after noon
can you give of a exmple of your modified code
thanks

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

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

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

Добавлено: 13 мар 2022, 23:35
sser
Подключаем 6 кнопок на один пин используя пины 7сегментника.(пример проекта во вложении)

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

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

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

Отправлено спустя 6 часов 24 минуты 59 секунд:
Murtaza писал(а): 12 мар 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));
    }

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

Добавлено: 15 мар 2022, 10:18
Murtaza
thankss much more

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

Добавлено: 15 мар 2022, 12:16
Lukum
не открывается вложение 12345 flp

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

Добавлено: 15 мар 2022, 12:41
shpuntic48
Да все прекрасно открывается