Супер Кнопка

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

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

Супер Кнопка

#1

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

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

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

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

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

Архив всех блоков из этой темы:
Супер Кнопки от Dryundel.ubl
(942.59 КБ) 52 скачивания
Обновлен 23.03.19
В архиве:
- Супер_кнопка__Click__v.1.0
- Супер_кнопка_10Butt(A)_v.1.0
- Супер_Кнопка_Замок_v.1.1
- Супер_кнопка_Test
- Супер Кнопка Ввод числа

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

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

Супер Кнопка

#21

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

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

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

Супер Кнопка

#22

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

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

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

Супер Кнопка

#23

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

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

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

Супер Кнопка

#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
Лейтенант
Сообщения: 577
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 186
Откуда: Ярославль
Имя: Андрей

Супер Кнопка

#25

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

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

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

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

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

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

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

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

Супер Кнопка

#26

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

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

Ответить

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость