Супер Кнопка

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

Супер Кнопка

Сообщение Dryundel »

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

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

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

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

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

Бородатых дядек с возгласами типа "Использовать библиотеку для одной кнопки это бред!" попрошу пока воздержаться.
Ибо тема будет полезна по большей части новичкам и тем кто с программным кодом на Вы.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Dryundel 15 янв 2021, 15:55, всего редактировалось 17 раз.
aidar_i
Полковник
Сообщения: 3357
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 12 раз
Поблагодарили: 100 раз
Контактная информация:

Супер Кнопка

Сообщение aidar_i »

Хорошо! Будем испытывать!
Аватара пользователя
rw6cm
Полковник
Сообщения: 2372
Зарегистрирован: 06 сен 2015, 20:25
Имя: Владимир
Поблагодарили: 41 раз

Супер Кнопка

Сообщение rw6cm »

[ref]Dryundel[/ref],
Библиотека свежее есть
Win10-64, FLProg (portable)
Аватара пользователя
Dryundel
Полковник
Сообщения: 2406
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 15 раз

Супер Кнопка

Сообщение Dryundel »

Итак начнем.
Данная библиотека, это отличный конструктор кнопок на любой вкус. Работа с ней будет особенно полезна новичкам
Для начала о самой библиотеке.
GyverButton- предназначена для многофункциональной отработки нажатия кнопки.
Ее возможности:
- Работа с нормально замкнутыми и нормально разомкнутыми кнопками
- Работа с подключением PULL_UP и PULL_DOWN
- Опрос кнопки с программным антидребезгом контактов
- Настраиваемое время антидребезга
- Отработка нажатия, удерживания, отпускания, клика по кнопке
- Настраиваемый таймаут удержания
- Отработка одиночного, двойного и тройного нажатия (вынесено отдельно)
- Отработка любого количества нажатий кнопки (функция возвращает количество нажатий)
- Настраиваемый таймаут повторного нажатия/удержания
- Функция изменения значения переменной с заданным шагом и заданным интервалом по времени
- Возможность опрашивать не кнопку, а напрямую давать величину (все возможности библиотеки для матричных и резистивных клавиатур)
Ну и для того что бы потестить данные функции...

Супер кнопка Test (Конструктор)
2019-03-17_023806.jpg
Супер_кнопка_Test_(CODE).ubi
Конечно же данный блок не для использования в проектах, но как тестер библиотеки, а так же как мастер-конструктор будет весьма полезен.
Скачиваем, тестим.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Dryundel 07 сен 2019, 11:36, всего редактировалось 3 раза.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2406
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 15 раз

Супер Кнопка

Сообщение Dryundel »

Библиотека GyverButton поддерживает размещение нескольких кнопок на аналоговом входе. Инициализировать такие кнопки и обеспечивать их многофунциональность в блоке 10Butt(A) совсем не сложно. Добавить нужный функционал и необходимые выходы под силу даже новичку.
10 кнопок на одном аналоговом входе
3.jpg
Супер_кнопка_10Butt(A)_v.1.0_(CODE).ubi
Debounce_Analog_v.2.0_(CODE).ubi
Описание 10Butt(A):
Блок распозает 10 кнопок на одном аналоговом пине, отслеживает различную последовательность и длительность подачи высокого уровня (логической "1") на каждой из кнопок и выдает сигнал на соответствующий выход. Другими словами, применительно к кнопке, подключенной к выходу in - отслеживает различные нажатия кнопки, соответствующие выходам блока.
[spoiler]
Выходы блока:
Click(Х) - Короткий клик на соответствующей кнопке
Long(Х) - Удержание Соответствующей кнопки
None - Ни одна кнопка не нажата
En - Разрешение на работу блока

Параметры пользователя:
Timeout - Установка таймаута ожидания удержания (ms)
ValBatt(Х) - Значение АЦП для соответствующей кнопки

Ограничения:
1) Значения АЦП не должно быть меньше 5
2) Шаг значений АЦП для разных кнопок не должен быть меньше 10
3) Отслеживание нажатия сразу двух или более кнопок не поддерживается[/spoiler]

Debounce Analog - служит для защиты от ложных импульсов при переключении контактов. Схож с блоком Bounce, только для аналогового входа, когда например к одному аналоговуму входу подключено несколько кнопок.
Принцип действия основан на задержке передачи значения со входа на выход, пропуская время "дребезга".
Блок не просто дает задержку, а ждет окончания дребезга и если в течении таймаута (параметр Time) не произошло изменений подает входное значение на выход.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Dryundel 28 мар 2019, 10:31, всего редактировалось 5 раз.
Аватара пользователя
nalnik
Подполковник
Сообщения: 1320
Зарегистрирован: 14 май 2016, 17:12
Откуда: Кисловодск
Имя: Александр

Супер Кнопка

Сообщение nalnik »

Dryundel - Вы ДОСТАЛИ.
Не верю ------ 10 кнопок через 1К -нормально работать не будут.
Хватит Вам проектировать в Протеусе - спаяйте.
Я хочу быть добрее, но люди сами нарываются.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2406
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 15 раз

Супер Кнопка

Сообщение Dryundel »

nalnik писал(а): 18 мар 2019, 16:38Не верю ------ 10 кнопок через 1К -нормально работать не будут.
Попробуй и удивись. :)
Аватара пользователя
nalnik
Подполковник
Сообщения: 1320
Зарегистрирован: 14 май 2016, 17:12
Откуда: Кисловодск
Имя: Александр

Супер Кнопка

Сообщение nalnik »

Dryundel писал(а): 18 мар 2019, 16:44Попробуй и удивись.
На UNO, без внешней опоры -- на один аналоговый вход - десять кнопок через 1000 Ом -- ? :smile250:
Я хочу быть добрее, но люди сами нарываются.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2406
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 15 раз

Супер Кнопка

Сообщение Dryundel »

nalnik писал(а): 18 мар 2019, 16:38Хватит Вам проектировать в Протеусе - спаяйте.
10 кнопок не нашел. 8 хватит? Собрал на соплях по быстрому.
Смотри видео https://youtu.be/ag-INk_yFpg
[spoiler]
4.jpg
[/spoiler]

ЗЫ: Незачто. :)
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Phazz
Полковник
Сообщения: 3113
Зарегистрирован: 17 окт 2016, 15:38
Откуда: Сургут
Имя: Анатолий
Благодарил (а): 229 раз
Поблагодарили: 109 раз

Супер Кнопка

Сообщение Phazz »

А что на ардуино так трудно измерить с точностью в 0,25 вольт? Что за скепсис?
KulibinOrsk
Лейтенант
Сообщения: 516
Зарегистрирован: 25 фев 2018, 08:48
Откуда: Оренбург
Имя: Александр

Супер Кнопка

Сообщение KulibinOrsk »

[ref]Dryundel[/ref], а у тебя что все схемы работают на столе ? )))
Ты представь ситуацию - пром.участок на котором различные наводки, в том числе от эл.двигателей по 15кВт или трансформатор на 1кВт и недалеко провода идут на пульт оператора. И как ты будешь ловить разницу в 0.1В напряжения ?
Схема рабочая, вроде особо никто ж не спорит, но тебе предложили сделать по уму. Собрать правильные делители. Вот тебе в помощь калькулятор: https://cxemok.ru/kalkuliatory/296-deli ... yator.html
Считай из расчета что на каждое нажатие должно приходиться 0.5В (5В делим на 10 участков и получаем = 0.5В)
Сделай, пропиши и выложи в качестве исправлений ошибок и чтобы молодняк не напоролся на такие протеус-настольные схемы.
Аватара пользователя
Phazz
Полковник
Сообщения: 3113
Зарегистрирован: 17 окт 2016, 15:38
Откуда: Сургут
Имя: Анатолий
Благодарил (а): 229 раз
Поблагодарили: 109 раз

Супер Кнопка

Сообщение Phazz »

[ref]KulibinOrsk[/ref], а если на атомной станции? А? Так и армагеддон устроить не долго. Вы о чем таком говорите? Это решение для домашних поделок, а вы ардуино в космос запускать собрались.
KulibinOrsk
Лейтенант
Сообщения: 516
Зарегистрирован: 25 фев 2018, 08:48
Откуда: Оренбург
Имя: Александр

Супер Кнопка

Сообщение KulibinOrsk »

[ref=#404040]Phazz[/ref], я как то уже писал, что ардуино, а если быть точнее модули на контроллерах атмел работают в пром. оборудовании с 2008 года и все отлично. Поэтому не нужно недооценивать атмеловские контроллеры.
Насчет конкретного применения именно аналогового входа в качестве множества кнопок то безусловно это настольная версия, но лучше если человек сразу поймет свой косяк и на будущее будет стремиться делать правильно. Нежели сейчас по типу - да и хрен с ним по 0.1В на столе же работает. А через год соберет поделку с проводами около 3-х метров пустит мимо приборов и будет думать почему у него лажа идет...
com
Капитан
Сообщения: 832
Зарегистрирован: 31 май 2018, 22:12
Откуда: Санкт-Петербург
Имя: Ринат

Супер Кнопка

Сообщение com »

Не убирайте грабли, нам так интереснее :)
Аватара пользователя
Dryundel
Полковник
Сообщения: 2406
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 15 раз

Супер Кнопка

Сообщение Dryundel »

Супер Кнопка Замок v.1.1
11.jpg
Супер_Кнопка_Замок_v.1.1_(CODE).ubi
О версии 1.1
- Оптимизирована под библиотеку GyverButton 2.12
- Исправлена ошибка таймаута ввода кода
- Появилась возможность ввода "0", это 10-ти кратный клик
- Веден запрет на действие при нажатии более 10 кликов подряд (ничего не происходит)
- Добавлен сброс вводимого кода при попытке ввести 10-й знак
- Добавлен сигнал тревоги при попытке ввести 10-й знак.
- Добавлена 5 секундная задержка на открывание при правильно введеном коде.
- Добавлена возможность предустановки мастер-кода

[spoiler]ButtLock1.1 - Это электронный сейфовый замок на одной кнопке. Ввод цифр осуществляется последовательностью коротких нажатий (кликов) с паузами. Колличество кликов подряд ограничено 10-ю. При 10 клике вводится "0". При 11-ти и больше кликов подряд, ничего не происходит. Код к замку может быть задан до 9 знаков. При попытке ввести 10-й знак, набираемый код сбрасывеется, это сопровождается импульсом на выход Alarm (Тревога). Готовность к вводу очередной цифры сопровождается коротким импульсом на выходе Enter, что позволяет ввести звуковое сопровождение ввода. Время ввода кода ограничивается параметром Time (По умолчанию - 1 минута), отсчитывается с момента начала ввода первого знака. При превышении времени ввода, набираемый код сбрасывается и это сопровождается импульсом на выходе Invalid (Неверный код). Неправильно вводимый код можно принудительно сбросить длинным нажатием (удержанием кнопки). При совпадении набираемого кода с предустановленным, стартует 5-секундная задержка. Если в течении 5 секунд правильный код не изменился, на выход Lock поступает короткий импульс (Открывание), введеный код в этот момент сбрасывается. Есть возможность добавить секретный мастер-код для служебного пользования. По умолчанию мастер- код не действует т.к. состоит из 10 знаков и не может быть введен с кнопки по причине ограничения ввода.

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

Выходы блока:
outCode - Вывод вводимого кода
Lock - Сигнал совпадения кода "OPEN"
Enter - сигнал событий (ввод числа / сброс)
Invalid - Неверный код (сигнал по истечении отведенного времени)
Alarm - Сигнал тревоги при вводе 10-го знака



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


На основе библиотеки GyverButton https://github.com/AlexGyver/GyverLibs
[/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Dryundel 10 авг 2019, 17:01, всего редактировалось 2 раза.
krom23
Лейтенант
Сообщения: 444
Зарегистрирован: 06 сен 2015, 15:18
Откуда: Калуга
Имя: Андрей

Супер Кнопка

Сообщение krom23 »

[ref]Dryundel[/ref], сделайте пожалуйста аналоговый блок на пять кнопок, а то 10(и) кнопочный очень громоздкий.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2406
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 15 раз

Супер Кнопка

Сообщение Dryundel »

krom23 писал(а): 19 мар 2019, 21:46Dryundel, сделайте пожалуйста аналоговый блок на пять кнопок, а то 10(и) кнопочный очень громоздкий.
Да я же специально все расписываю. Исправить 10 входовой на 5-ти - дело 10 минут даже для новичка. Правой кнопкой по блоку и редактировать. Удаляете лишние выходы в "Выходы блока" "Параметры" Loop и Declare и все. И получаете блок на 2,3,4....9 кнопок.
Если уж не получится пишите в личку. :)
При желании можно для каждой кнопки в отдельности добавить двойной, тройной клик. Воспользуйтесь блоком Супер кнопка Test как конструктором. (см. выше)
krom23
Лейтенант
Сообщения: 444
Зарегистрирован: 06 сен 2015, 15:18
Откуда: Калуга
Имя: Андрей

Супер Кнопка

Сообщение krom23 »

Dryundel писал(а): 19 мар 2019, 21:56Да я же специально все расписываю.
Опять всё самому, да самому :D
Аватара пользователя
Dryundel
Полковник
Сообщения: 2406
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 15 раз

Супер Кнопка

Сообщение Dryundel »

Вышла свежая версия библиотеки GyverButton 2.12
Устранен небольшой баг. Спасибо автору за оперативность.
Roman9
Рядовой
Сообщения: 25
Зарегистрирован: 03 фев 2019, 11:47
Имя: Роман

Супер Кнопка

Сообщение Roman9 »

Dryundel писал(а): 20 мар 2019, 15:38 Вышла свежая версия библиотеки GyverButton 2.12
Устранен небольшой баг. Спасибо автору за оперативность.
И спасибо Вам за блоки. ) Иногда это может пригодиться.
Ответить

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

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

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