Супер Кнопка

Блок распознает различные нажатия кнопки

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

Супер Кнопка

#1

Сообщение Dryundel » 15.03.2019{, 20:33}

Блок "Супер Кнопка Click"
1.jpg
1.jpg (5.31 КБ) 9528 просмотров
Супер_кнопка__Click__v.1.0_(CODE).ubi
(158.62 КБ) 415 скачиваний
.
Актуальная версия "Супер Кнопки Click" находится ЗДЕСЬ
.
Кнопка "Click" v.1.0 умеет распознавать:
Одиночное нажатие
Двойное нажатие
Тройное нажатие
Удержание
Для распознавания удержания блок имеет два выхода LongStart - дает одиночный короткий импульс когда удержание распознано и Long - собственно само удержание, на нем высокий уровень (логическая 1) присутствует до конца удержания (отпускания)

В этой теме будет представлена серия блоков для такой элементарной детали как кнопка.
Распознавание различных нажатий кнопки весьма деликатная тема. На форуме не раз предпринимались попытки сделать добротный многофункциональный блок, для этой задачи. Некоторые работают, другие не очень.

Да и речь пойдет не просто о кнопке, но и о самой библиотеке, которая предоставляет весьма обширный фунционал для всего лишь кнопки. Большего и придумать даже сложно.

В других блоках будет и расознавание нескольких аналоговых кнопок на одном пине со всем функионалом нажатий и распознавание количества множественных нажатий и инкрементальный функционал. Все блоки сделаны на основе библиотеки GyverButton

Архив всех блоков из этой темы:
Супер Кнопки от Dryundl.rar
(133.81 КБ) 322 скачивания
Обновлен 17.12.19
В архиве:
- Супер_кнопка__Click__v.1.0
- Супер_кнопка_10Butt(A)_v.1.0
- Супер_Кнопка_Замок_v.1.1
- Супер_кнопка_Test
- Супер Кнопка Ввод числа
- Супер кнопка Количество нажатий

Бородатых дядек с возгласами типа "Использовать библиотеку для одной кнопки это бред!" попрошу пока воздержаться.
Ибо тема будет полезна по большей части новичкам и тем кто с программным кодом на Вы.
Последний раз редактировалось Dryundel 15.01.2021{, 15:55}, всего редактировалось 17 раз.

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

Супер Кнопка

#21

Сообщение Dryundel » 22.03.2019{, 16:19}

Обновлена версия Супер Кнопка Замок v.1.1 (Смотри выше)

golloper
Рядовой
Сообщения: 39
Зарегистрирован: 28.09.2018{, 17:16}
Репутация: 7
Имя: Дмитрий

Супер Кнопка

#22

Сообщение golloper » 22.03.2019{, 18:49}

У вас там опечатка в коде, в секции loop, If c ,большой буквы.
Ошибка компиляции,может конечно это только у меня так :smile44:

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

Супер Кнопка

#23

Сообщение Dryundel » 23.03.2019{, 01:06}

golloper писал(а):
22.03.2019{, 18:49}
У вас там опечатка в коде, в секции loop, If c ,большой буквы.
Да, увидел. Перезалил. Спасибо.

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

Супер Кнопка

#24

Сообщение Dryundel » 28.03.2019{, 10:43}

nalnik писал(а):
18.03.2019{, 16:38}
Не верю ------ 10 кнопок через 1К -нормально работать не будут
KulibinOrsk писал(а):
18.03.2019{, 19:20}
Dryundel, а у тебя что все схемы работают на столе ? )))
Ты представь ситуацию - пром.участок на котором различные наводки, в том числе от эл.двигателей по 15кВт или трансформатор на 1кВт и недалеко провода идут на пульт оператора. И как ты будешь ловить разницу в 0.1В напряжения ?
В словах автора этих сообщений есть доля истины. Действительно, помехи вносят серьезные ограничения при работе с АЦП. Но теперь есть приемлемая защита от дребезга контактов на аналоговом входе, а так же от внешних помех.
Подробности здесь: Debounce_Analog_v.2.0

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

Супер Кнопка

#25

Сообщение Dryundel » 10.08.2019{, 16:51}

В продолжение серии "Супер кнопка"

Блок "Супер Кнопка Ввод числа"
Ввод числа.jpg
Ввод числа.jpg (3.88 КБ) 2369 просмотров
Супер_Кнопка_Ввод_числа_v.1.0_(CODE).ubi
(187.77 КБ) 119 скачиваний
ButtSet1.0 - Это блок для ввода числа с помощью одной кнопки. Количество разрядов в водимом числе ограниченно девятью. Ввод цифр осуществляется последовательностью коротких нажатий (кликов) с паузами. Колличество кликов подряд ограничено 10-ю. При 10 клике вводится "0". При 11-ти и больше кликов подряд, ничего не происходит. Готовность к вводу очередной цифры сопровождается коротким импульсом на выходе Enter, что позволяет ввести звуковое сопровождение ввода. Неправильно вводимый код можно принудительно сбросить длинным нажатием (удержанием кнопки).

Данный блок может быть не плохим дополнением к Супер Кнопке Замок.

Входы блока:
in - подключается к кнопке.

Выходы блока:
outCode - Вывод вводимого кода
Enter - сигнал событий (ввод числа / сброс)

Параметры пользователя:
Timeout - Установка таймаута ожидания удержания (ms)
ClickTime - Таймаут между кликами

ecoins
Полковник
Сообщения: 2923
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Супер Кнопка

#26

Сообщение ecoins » 10.08.2019{, 20:02}

Dryundel писал(а):
20.03.2019{, 15:38}
Вышла свежая версия библиотеки GyverButton 2.12
Устранен небольшой баг. Спасибо автору за оперативность.
Интересная и полезная библиотека. Не предусмотрена переносимость на ESP8266,ESP32,STM32 (и т.п.), но в целом хорошие наработки, в которые будем заглядывать.
Спасибо и автору https://github.com/AlexGyver, и Dryundel.

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

Супер Кнопка

#27

Сообщение Dryundel » 17.12.2019{, 14:56}

.
Супер кнопка Количество нажатий
.
Супер кнопка Количество нажатий.jpg
Супер кнопка Количество нажатий.jpg (9.09 КБ) 2178 просмотров
.
ButtСount выдает на выходе сount количество кликов подряд, зафиксированных на входе in, подключенном к кнопке.
При зафиксированном подсчете кликов, на выходе enter формируется одиночный импульс

Параметры пользователя:
Timeout - Таймаута ожидания удержания (ms)
ClickTime - Таймаут между кликами (ms)

Отличие версий блока в сбросе (обнулении) значения на выходе.

Так в ButtСountV1.0 сброс производится путем длинного нажатия (удержания) кнопки,
а в ButtСountV1.1 присутствует отдельный вход R.

Пример применения можно посмотреть здесь.

Архив со всеми блоками "Супер Кнопка" есть в первом посте.

uzer
Рядовой
Сообщения: 91
Зарегистрирован: 30.06.2019{, 14:50}
Репутация: 0
Имя: igor

Супер Кнопка

#28

Сообщение uzer » 12.07.2020{, 11:16}

Dryundel писал(а):
15.03.2019{, 20:33}
Блок "Супер Кнопка Click"
1.jpg
Супер_кнопка__Click__v.1.0_(CODE).ubi

Dryundel, доброго времени! Что то я не могу понять как создать мне последовательное включение блоков. При коротком нажатии включается один блок, второе нажатие второй блок, третье нажатие включает третий блок, а при четвертом коротком нажатие отключение всех блоков ? Если несложно сделайте примером или откорректируйте блок.
Последний раз редактировалось uzer 12.07.2020{, 14:59}, всего редактировалось 1 раз.

Naladchik
Капитан
Сообщения: 822
Зарегистрирован: 04.10.2015{, 19:10}
Репутация: 151
Откуда: Новосибирск
Имя: Павел

Супер Кнопка

#29

Сообщение Naladchik » 12.07.2020{, 12:55}

Dryundel писал(а):
17.12.2019{, 14:56}
Супер кнопка...
Осталось Ваши блоки в новом редакторе оформить. Получится интересный набор.
Win10-64. FLProg Portable.
Изображение

uzer
Рядовой
Сообщения: 91
Зарегистрирован: 30.06.2019{, 14:50}
Репутация: 0
Имя: igor

Супер Кнопка

#30

Сообщение uzer » 12.07.2020{, 18:40}

Naladchik писал(а):
12.07.2020{, 12:55}
Dryundel писал(а):
17.12.2019{, 14:56}
Супер кнопка...
Осталось Ваши блоки в новом редакторе оформить. Получится интересный набор.
Похоже не скоро Dryundel ответит, т.к. заходил сюда давненько. Naladchik, может Вы сможете показать на примере, решение моей задачки ?

Naladchik
Капитан
Сообщения: 822
Зарегистрирован: 04.10.2015{, 19:10}
Репутация: 151
Откуда: Новосибирск
Имя: Павел

Супер Кнопка

#31

Сообщение Naladchik » 13.07.2020{, 02:28}

uzer писал(а):
12.07.2020{, 18:40}
...заходил сюда давненько...
Действительно, на дату я и не глянул.
uzer писал(а):
12.07.2020{, 18:40}
...решение моей задачки ?
Не факт что я понял, что именно Вам надо, но в данном случае, по моему, надо не блок корежить а воспользоваться уже имеющимися средствами.
СпойлерПоказать
11.jpg
Win10-64. FLProg Portable.
Изображение

uzer
Рядовой
Сообщения: 91
Зарегистрирован: 30.06.2019{, 14:50}
Репутация: 0
Имя: igor

Супер Кнопка

#32

Сообщение uzer » 13.07.2020{, 19:15}

Naladchik писал(а):
13.07.2020{, 02:28}
Не факт что я понял, что именно Вам надо, но в данном случае, по моему, надо не блок корежить а воспользоваться уже имеющимися средствами.
СпойлерПоказать
11.jpg
Naladchik, включение происходит, а не выключается. Первое нажатие включает первый блок
, второе второй, 3 включает третий, после третего нажатия все блоки включены, а на нажатие четвертый раз, должен отключать все включенные блоки.

uzer
Рядовой
Сообщения: 91
Зарегистрирован: 30.06.2019{, 14:50}
Репутация: 0
Имя: igor

Супер Кнопка

#33

Сообщение uzer » 14.07.2020{, 00:17}

av писал(а):
13.07.2020{, 22:21}
uzer, константу счетчика увеличь с 4 на 5
av, смысл увеличивать, если все поочередно включаются, на 5 нажатие будет просто продолжение включения. Или я что то не понимаю ? :smile390:

Naladchik
Капитан
Сообщения: 822
Зарегистрирован: 04.10.2015{, 19:10}
Репутация: 151
Откуда: Новосибирск
Имя: Павел

Супер Кнопка

#34

Сообщение Naladchik » 14.07.2020{, 02:12}

Naladchik писал(а):
13.07.2020{, 02:28}
Naladchik, включение происходит, а не выключается...
У меня к Вам только один вопрос, как можно рассчитывать на адекватную помощь не прикладывая проект?
Каким образом можно узнать что же у Вас включается и не выключается? Сделайте копию проекта, уберите всю "секретную" часть, оставьте то, где не работает, приложите к посту, а там уже и обсудить можно.
Win10-64. FLProg Portable.
Изображение

uzer
Рядовой
Сообщения: 91
Зарегистрирован: 30.06.2019{, 14:50}
Репутация: 0
Имя: igor

Супер Кнопка

#35

Сообщение uzer » 14.07.2020{, 17:39}

Naladchik писал(а):
14.07.2020{, 02:12}
Naladchik писал(а):
13.07.2020{, 02:28}
Naladchik, включение происходит, а не выключается...
У меня к Вам только один вопрос, как можно рассчитывать на адекватную помощь не прикладывая проект?
Каким образом можно узнать что же у Вас включается и не выключается? Сделайте копию проекта, уберите всю "секретную" часть, оставьте то, где не работает, приложите к посту, а там уже и обсудить можно.
Naladchik, никаких секретов нет, просто хочу сделать поочередное включение с общим отключением как описал выше. Вроде описал подробно т.з.
К сожалению, ниодин вариант не сработал правильно.
Вложения
Скриншот 14-07-2020 193124.png

uzer
Рядовой
Сообщения: 91
Зарегистрирован: 30.06.2019{, 14:50}
Репутация: 0
Имя: igor

Супер Кнопка

#36

Сообщение uzer » 14.07.2020{, 19:53}

av писал(а):
14.07.2020{, 18:02}
uzer, а вы правильно подсоединили к выходам блока DMS ? При сбросе счетчика в 0 у вас будет сигнал на выходе Q0. Может нужно подключать к Q1, Q2, Q3. Сигнал на Q0 будет даже без нажатий на кнопку и желательно поставить после кнопки Rtrig, а антидребезг отключить(у меня с ним как то не заладилось бывало подглючивало).
av, я уже всяко перепробовал и на Q0 ставил и настройками играл, включает поочередно норм, а не отключает (
Вложения
Скриншот 14-07-2020 215144.png
Скриншот 14-07-2020 214602.png

uzer
Рядовой
Сообщения: 91
Зарегистрирован: 30.06.2019{, 14:50}
Репутация: 0
Имя: igor

Супер Кнопка

#37

Сообщение uzer » 15.07.2020{, 15:46}

av писал(а):
15.07.2020{, 00:15}
uzer писал(а):
14.07.2020{, 19:53}
av, я уже всяко перепробовал и на Q0 ставил и настройками играл, включает поочередно норм, а не отключает (
Сегодня уже поздно завтра сделаю стенд тупо на светодиодах и проверю где же не работает. Кстати на скриншоте нет галочки на "Установить текущее значение" константа 0 и не снята галочка "Установить в единицу выход >L.
Отправлено спустя 33 минуты 36 секунд:
А... к черту завтра :smile171: . Вы меня зацепили ! И так вот схема счетчика с кнопкой (кнопка активна при нажатии замыкается на землю GND.
СХЕМАПоказать
Схема.png
Выходы 1, 2, 3 подключены на светодиоды.
Настройка счетчикаПоказать
Настройка счетчика.png
Прогнал код в Протеусе все работает: ссылка на видео симуляции работы схемы. Так что проблема не в предложенной схеме. Ищите грабли в другом месте. Тестовый проект создан в версии FLProg 6.3.1
av, Вы меня недопоняли, надо не просто поочередное включение с отключением, а 3 блока поочередно должны включатся без отключения, общее отключение трех блоков, должно происходить по нажатию четвертого нажатия.
Так, если мы ставим галочку, с сохранением состояния неподсоединённых выходов.

uzer
Рядовой
Сообщения: 91
Зарегистрирован: 30.06.2019{, 14:50}
Репутация: 0
Имя: igor

Супер Кнопка

#38

Сообщение uzer » 15.07.2020{, 18:53}

av писал(а):
15.07.2020{, 17:45}
uzer, так не я один вас неправильно понял !
uzer писал(а):
15.07.2020{, 15:46}
3 блока поочередно должны включатся без отключения, общее отключение трех блоков, должно происходить по нажатию четвертого нажатия.
Такой алгоритм реализуется на той же схеме только нужно добавить на каждый выход защелку(триггер с сбросом).
Вот такой алгоритм получается:Кнопка.flp
av, вот это то что надо. Спасибо, за помощь ! :smile9:

Аватара пользователя
Sevast
Сержант
Сообщения: 145
Зарегистрирован: 21.06.2017{, 15:57}
Репутация: 5

Супер Кнопка

#39

Сообщение Sevast » 07.01.2021{, 12:51}

Помогите разобраться с блоком Супер Кнопка. При включении контроллера сразу идет один импульс и включается СТАРТ, а не должно...
Суппер кнопка.flp
(380.8 КБ) 56 скачиваний

Аватара пользователя
Di123
Капитан
Сообщения: 828
Зарегистрирован: 03.11.2018{, 19:38}
Репутация: 29
Имя: Дмитрий

Супер Кнопка

#40

Сообщение Di123 » 07.01.2021{, 12:58}

Sevast, потомучто С0 выход по умолчанию имеет 1

Ответить

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