Страница 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
Да все прекрасно открывается