Кнопка (Button)

Пользовательские блоки для вывода информации на дисплеи и индикаторы, управления тачскрином, различными клавиатурами, добавления русских шрифтов для вывода на дисплеи типа HD44780
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Кнопка (Button)

#1

Сообщение Dryundel » 15.01.2021{, 11:39}

Блок "Кнопка" (Button)
.
2021-01-15_111214.jpg
2021-01-15_111214.jpg (5 КБ) 3660 просмотров
.
Это обработчик различных нажатий.
По сути данный блок является конструктором, с помощью которого можно настроить необходимые выходы и функции блока.
Блок генерирует только необходимый для конкретной конфигурации код и ничего лишнего.
Так выглядит блок с максимальным функционаломПоказать
2021-01-15_113613.jpg
.
ВНИМАНИЕ! Удалите из IDE старую библиотеку GyverButton.
.
Типы кнопок:
Поддерживаются кнопки как на дискретных так и на аналоговых входах,

Поддерживаются следующие типы нажатий:
- Одиночный клик
- Двойной клик
- Тройной клик
- и т.д. до 10 кликов
- Удержание (длинное нажатие)
- Одиночный клик + Удержание
- Двойной клик + Удержание
- и т.д. до 10 кликов + Удержание

Доступны следующие функции:
- Подсчет кликов совершенных подряд
- Подсчет кликов совершенных подряд до удержания
- Инкрементный сигнал
- Адресный инкрементный сигнал
- Ускорение инкрементного сигнала

При установке чек-боксов на необходимых сочетаниях и функциях
у блока формируются соответствующие выходы.
.
Кнопка_(Code_-_Professional).ubi
(1.95 МБ) 509 скачиваний
.
Функционал довольно обширный.
Настройка блока должна быть интуитивно понятной. Везде присутствуют комментарии.
Более подробное описание и примеры работы смотри ниже.
Последний раз редактировалось Dryundel 15.01.2021{, 11:45}, всего редактировалось 2 раза.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Кнопка (Button)

#21

Сообщение Dryundel » 05.01.2022{, 21:55}

Wadim77 писал(а):
05.01.2022{, 21:37}
А не подскажете схемку, что бы работал такой алгоритм - одиночным кликом включили свет. долгим удержанием добавили-убавили яркость. и что бы при одинарном клике светодиод плавно выключался до 0 и при следующем клике - включался плавно? Т .е выходил на установленный уровень и выключался плавно.
Для плавного перехода из одного режима в другой можно использовать Блоки ускорения. Назначить нужное нажатие поможет тот же блок Button. Ну а логику изобретайте. :)
Wadim77 писал(а):
05.01.2022{, 21:37}
П.С. и еще вопросик если можно - как сделать запоминание режима установленной яркости в энергонезависимую память? (на случай пропадания питания на контроллере?
Для этого требуется задействовать EEPROM (есть штатные блоки). Однако при пропадании питания на устройстве, на контроллере оно (питание) должно сохраняться еще несколько миллисекунд. Для этого требуется дополнительный конденсатор достаточной емкости или ионистор. Один из входов контроллера, в этом случае должен следить за наличием общего питания и по пропаданию, давать сигнал на сохранение требуемого значения в EEPROM. Вот и вся логика.

Wadim77
Рядовой
Сообщения: 21
Зарегистрирован: 20.08.2020{, 19:23}
Репутация: 0
Имя: Wadim

Кнопка (Button)

#22

Сообщение Wadim77 » 22.03.2022{, 19:44}

Dryundel писал(а):
05.01.2022{, 14:16}
Wadim77, используя к примеру выходы одиночного и двойного клика блока Button, можно дополнить проект полным включением (по короткому нажатию) и полным выключением (по двойному клику).
3.jpg
Инкрементная кнопка 3.flp
Есть в этом случае нюанс по направлению счета при длинном нажатии. Но при желании и это можно обойти. Используйте фантазию и логику. :)

Добрый день! Скажите пожалуйста (или если можно накидайте схемку) как обойти данный нюанс. я сообразить не могу. Не часто ставлю задачки себе по программированию, а тут очень кнопочка такая понадобилась. Заранее большое спасибо! Благодарю!

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Кнопка (Button)

#23

Сообщение Dryundel » 24.03.2022{, 17:40}

Wadim77 писал(а):
22.03.2022{, 19:44}
Добрый день! Скажите пожалуйста (или если можно накидайте схемку) как обойти данный нюанс. я сообразить не могу. Не часто ставлю задачки себе по программированию, а тут очень кнопочка такая понадобилась. Заранее большое спасибо! Благодарю!
Какой нюанс обойти? Какая кнопочка потребовалась? Что вообще требуется?
Wadim77, конкретизируйте вашу задачу.

Ответить

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