Супер Кнопка
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
- Dryundel
- Полковник
- Сообщения: 2406
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Поблагодарили: 15 раз
Супер Кнопка
Блок "Супер Кнопка Click"
Актуальная версия "Супер Кнопки Click" находится ЗДЕСЬ
.
Кнопка "Click" v.1.0 умеет распознавать:
Одиночное нажатие
Двойное нажатие
Тройное нажатие
Удержание
Для распознавания удержания блок имеет два выхода LongStart - дает одиночный короткий импульс когда удержание распознано и Long - собственно само удержание, на нем высокий уровень (логическая 1) присутствует до конца удержания (отпускания)
В этой теме будет представлена серия блоков для такой элементарной детали как кнопка.
Распознавание различных нажатий кнопки весьма деликатная тема. На форуме не раз предпринимались попытки сделать добротный многофункциональный блок, для этой задачи. Некоторые работают, другие не очень.
Да и речь пойдет не просто о кнопке, но и о самой библиотеке, которая предоставляет весьма обширный фунционал для всего лишь кнопки. Большего и придумать даже сложно.
В других блоках будет и расознавание нескольких аналоговых кнопок на одном пине со всем функионалом нажатий и распознавание количества множественных нажатий и инкрементальный функционал. Все блоки сделаны на основе библиотеки GyverButton
Архив всех блоков из этой темы: Обновлен 17.12.19
В архиве:
- Супер_кнопка__Click__v.1.0
- Супер_кнопка_10Butt(A)_v.1.0
- Супер_Кнопка_Замок_v.1.1
- Супер_кнопка_Test
- Супер Кнопка Ввод числа
- Супер кнопка Количество нажатий
Бородатых дядек с возгласами типа "Использовать библиотеку для одной кнопки это бред!" попрошу пока воздержаться.
Ибо тема будет полезна по большей части новичкам и тем кто с программным кодом на Вы.
.Актуальная версия "Супер Кнопки Click" находится ЗДЕСЬ
.
Кнопка "Click" v.1.0 умеет распознавать:
Одиночное нажатие
Двойное нажатие
Тройное нажатие
Удержание
Для распознавания удержания блок имеет два выхода LongStart - дает одиночный короткий импульс когда удержание распознано и Long - собственно само удержание, на нем высокий уровень (логическая 1) присутствует до конца удержания (отпускания)
В этой теме будет представлена серия блоков для такой элементарной детали как кнопка.
Распознавание различных нажатий кнопки весьма деликатная тема. На форуме не раз предпринимались попытки сделать добротный многофункциональный блок, для этой задачи. Некоторые работают, другие не очень.
Да и речь пойдет не просто о кнопке, но и о самой библиотеке, которая предоставляет весьма обширный фунционал для всего лишь кнопки. Большего и придумать даже сложно.
В других блоках будет и расознавание нескольких аналоговых кнопок на одном пине со всем функионалом нажатий и распознавание количества множественных нажатий и инкрементальный функционал. Все блоки сделаны на основе библиотеки GyverButton
Архив всех блоков из этой темы: Обновлен 17.12.19
В архиве:
- Супер_кнопка__Click__v.1.0
- Супер_кнопка_10Butt(A)_v.1.0
- Супер_Кнопка_Замок_v.1.1
- Супер_кнопка_Test
- Супер Кнопка Ввод числа
- Супер кнопка Количество нажатий
Бородатых дядек с возгласами типа "Использовать библиотеку для одной кнопки это бред!" попрошу пока воздержаться.
Ибо тема будет полезна по большей части новичкам и тем кто с программным кодом на Вы.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Dryundel 15 янв 2021, 15:55, всего редактировалось 17 раз.
- Dryundel
- Полковник
- Сообщения: 2406
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Поблагодарили: 15 раз
Супер Кнопка
Итак начнем.
Данная библиотека, это отличный конструктор кнопок на любой вкус. Работа с ней будет особенно полезна новичкам
Для начала о самой библиотеке.
GyverButton- предназначена для многофункциональной отработки нажатия кнопки.
Ее возможности:
- Работа с нормально замкнутыми и нормально разомкнутыми кнопками
- Работа с подключением PULL_UP и PULL_DOWN
- Опрос кнопки с программным антидребезгом контактов
- Настраиваемое время антидребезга
- Отработка нажатия, удерживания, отпускания, клика по кнопке
- Настраиваемый таймаут удержания
- Отработка одиночного, двойного и тройного нажатия (вынесено отдельно)
- Отработка любого количества нажатий кнопки (функция возвращает количество нажатий)
- Настраиваемый таймаут повторного нажатия/удержания
- Функция изменения значения переменной с заданным шагом и заданным интервалом по времени
- Возможность опрашивать не кнопку, а напрямую давать величину (все возможности библиотеки для матричных и резистивных клавиатур)
Ну и для того что бы потестить данные функции...
Супер кнопка Test (Конструктор) Конечно же данный блок не для использования в проектах, но как тестер библиотеки, а так же как мастер-конструктор будет весьма полезен.
Скачиваем, тестим.
Данная библиотека, это отличный конструктор кнопок на любой вкус. Работа с ней будет особенно полезна новичкам
Для начала о самой библиотеке.
GyverButton- предназначена для многофункциональной отработки нажатия кнопки.
Ее возможности:
- Работа с нормально замкнутыми и нормально разомкнутыми кнопками
- Работа с подключением PULL_UP и PULL_DOWN
- Опрос кнопки с программным антидребезгом контактов
- Настраиваемое время антидребезга
- Отработка нажатия, удерживания, отпускания, клика по кнопке
- Настраиваемый таймаут удержания
- Отработка одиночного, двойного и тройного нажатия (вынесено отдельно)
- Отработка любого количества нажатий кнопки (функция возвращает количество нажатий)
- Настраиваемый таймаут повторного нажатия/удержания
- Функция изменения значения переменной с заданным шагом и заданным интервалом по времени
- Возможность опрашивать не кнопку, а напрямую давать величину (все возможности библиотеки для матричных и резистивных клавиатур)
Ну и для того что бы потестить данные функции...
Супер кнопка Test (Конструктор) Конечно же данный блок не для использования в проектах, но как тестер библиотеки, а так же как мастер-конструктор будет весьма полезен.
Скачиваем, тестим.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Dryundel 07 сен 2019, 11:36, всего редактировалось 3 раза.
- Dryundel
- Полковник
- Сообщения: 2406
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Поблагодарили: 15 раз
Супер Кнопка
Библиотека GyverButton поддерживает размещение нескольких кнопок на аналоговом входе. Инициализировать такие кнопки и обеспечивать их многофунциональность в блоке 10Butt(A) совсем не сложно. Добавить нужный функционал и необходимые выходы под силу даже новичку.
10 кнопок на одном аналоговом входе Описание 10Butt(A):
Блок распозает 10 кнопок на одном аналоговом пине, отслеживает различную последовательность и длительность подачи высокого уровня (логической "1") на каждой из кнопок и выдает сигнал на соответствующий выход. Другими словами, применительно к кнопке, подключенной к выходу in - отслеживает различные нажатия кнопки, соответствующие выходам блока.
[spoiler]
Выходы блока:
Click(Х) - Короткий клик на соответствующей кнопке
Long(Х) - Удержание Соответствующей кнопки
None - Ни одна кнопка не нажата
En - Разрешение на работу блока
Параметры пользователя:
Timeout - Установка таймаута ожидания удержания (ms)
ValBatt(Х) - Значение АЦП для соответствующей кнопки
Ограничения:
1) Значения АЦП не должно быть меньше 5
2) Шаг значений АЦП для разных кнопок не должен быть меньше 10
3) Отслеживание нажатия сразу двух или более кнопок не поддерживается[/spoiler]
Debounce Analog - служит для защиты от ложных импульсов при переключении контактов. Схож с блоком Bounce, только для аналогового входа, когда например к одному аналоговуму входу подключено несколько кнопок.
Принцип действия основан на задержке передачи значения со входа на выход, пропуская время "дребезга".
Блок не просто дает задержку, а ждет окончания дребезга и если в течении таймаута (параметр Time) не произошло изменений подает входное значение на выход.
10 кнопок на одном аналоговом входе Описание 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
- Откуда: Кисловодск
- Имя: Александр
Супер Кнопка
Dryundel - Вы ДОСТАЛИ.
Не верю ------ 10 кнопок через 1К -нормально работать не будут.
Хватит Вам проектировать в Протеусе - спаяйте.
Не верю ------ 10 кнопок через 1К -нормально работать не будут.
Хватит Вам проектировать в Протеусе - спаяйте.
Я хочу быть добрее, но люди сами нарываются.
- Dryundel
- Полковник
- Сообщения: 2406
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Поблагодарили: 15 раз
- nalnik
- Подполковник
- Сообщения: 1320
- Зарегистрирован: 14 май 2016, 17:12
- Откуда: Кисловодск
- Имя: Александр
Супер Кнопка
На UNO, без внешней опоры -- на один аналоговый вход - десять кнопок через 1000 Ом -- ?

Я хочу быть добрее, но люди сами нарываются.
- Dryundel
- Полковник
- Сообщения: 2406
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Поблагодарили: 15 раз
Супер Кнопка
10 кнопок не нашел. 8 хватит? Собрал на соплях по быстрому.
Смотри видео https://youtu.be/ag-INk_yFpg
[spoiler] [/spoiler]
ЗЫ: Незачто.

У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Phazz
- Полковник
- Сообщения: 3113
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 229 раз
- Поблагодарили: 109 раз
-
- Лейтенант
- Сообщения: 516
- Зарегистрирован: 25 фев 2018, 08:48
- Откуда: Оренбург
- Имя: Александр
Супер Кнопка
[ref]Dryundel[/ref], а у тебя что все схемы работают на столе ? )))
Ты представь ситуацию - пром.участок на котором различные наводки, в том числе от эл.двигателей по 15кВт или трансформатор на 1кВт и недалеко провода идут на пульт оператора. И как ты будешь ловить разницу в 0.1В напряжения ?
Схема рабочая, вроде особо никто ж не спорит, но тебе предложили сделать по уму. Собрать правильные делители. Вот тебе в помощь калькулятор: https://cxemok.ru/kalkuliatory/296-deli ... yator.html
Считай из расчета что на каждое нажатие должно приходиться 0.5В (5В делим на 10 участков и получаем = 0.5В)
Сделай, пропиши и выложи в качестве исправлений ошибок и чтобы молодняк не напоролся на такие протеус-настольные схемы.
Ты представь ситуацию - пром.участок на котором различные наводки, в том числе от эл.двигателей по 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 раз
Супер Кнопка
[ref]KulibinOrsk[/ref], а если на атомной станции? А? Так и армагеддон устроить не долго. Вы о чем таком говорите? Это решение для домашних поделок, а вы ардуино в космос запускать собрались.
-
- Лейтенант
- Сообщения: 516
- Зарегистрирован: 25 фев 2018, 08:48
- Откуда: Оренбург
- Имя: Александр
Супер Кнопка
[ref=#404040]Phazz[/ref], я как то уже писал, что ардуино, а если быть точнее модули на контроллерах атмел работают в пром. оборудовании с 2008 года и все отлично. Поэтому не нужно недооценивать атмеловские контроллеры.
Насчет конкретного применения именно аналогового входа в качестве множества кнопок то безусловно это настольная версия, но лучше если человек сразу поймет свой косяк и на будущее будет стремиться делать правильно. Нежели сейчас по типу - да и хрен с ним по 0.1В на столе же работает. А через год соберет поделку с проводами около 3-х метров пустит мимо приборов и будет думать почему у него лажа идет...
Насчет конкретного применения именно аналогового входа в качестве множества кнопок то безусловно это настольная версия, но лучше если человек сразу поймет свой косяк и на будущее будет стремиться делать правильно. Нежели сейчас по типу - да и хрен с ним по 0.1В на столе же работает. А через год соберет поделку с проводами около 3-х метров пустит мимо приборов и будет думать почему у него лажа идет...
- Dryundel
- Полковник
- Сообщения: 2406
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Поблагодарили: 15 раз
Супер Кнопка
Супер Кнопка Замок v.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]
О версии 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 раза.
Супер Кнопка
[ref]Dryundel[/ref], сделайте пожалуйста аналоговый блок на пять кнопок, а то 10(и) кнопочный очень громоздкий.
- Dryundel
- Полковник
- Сообщения: 2406
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Поблагодарили: 15 раз
Супер Кнопка
Да я же специально все расписываю. Исправить 10 входовой на 5-ти - дело 10 минут даже для новичка. Правой кнопкой по блоку и редактировать. Удаляете лишние выходы в "Выходы блока" "Параметры" Loop и Declare и все. И получаете блок на 2,3,4....9 кнопок.krom23 писал(а): 19 мар 2019, 21:46Dryundel, сделайте пожалуйста аналоговый блок на пять кнопок, а то 10(и) кнопочный очень громоздкий.
Если уж не получится пишите в личку.

При желании можно для каждой кнопки в отдельности добавить двойной, тройной клик. Воспользуйтесь блоком Супер кнопка Test как конструктором. (см. выше)
- Dryundel
- Полковник
- Сообщения: 2406
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Поблагодарили: 15 раз
Супер Кнопка
Вышла свежая версия библиотеки GyverButton 2.12
Устранен небольшой баг. Спасибо автору за оперативность.
Устранен небольшой баг. Спасибо автору за оперативность.
Супер Кнопка
И спасибо Вам за блоки. ) Иногда это может пригодиться.Dryundel писал(а): 20 мар 2019, 15:38 Вышла свежая версия библиотеки GyverButton 2.12
Устранен небольшой баг. Спасибо автору за оперативность.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя