Управление меню одной кнопкой

Блок для управления штатным блоком меню с помощью одной кнопки.

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

Управление меню одной кнопкой

#1

Сообщение Dryundel » 25.11.2020{, 20:54}

Butt-Menu
.
2020-11-25_193253.jpg
2020-11-25_193253.jpg (23.4 КБ) 1654 просмотра
Butt-Menu_(Code_-_Basic).ubi
(370.41 КБ) 155 скачиваний
.
Блок для управления меню с помощью одной кнопки.
Подходит для одно и двух уровневых меню.
Обладает простым, не путанным алгоритмом управления. Самое сложное - вход в меню (три клика) :) Но он и не должен быть слишком простым.
Имеет дополнительные выходы для управления устройством вне меню.

Алгоритм:
- Тройной клик - вход/выход в меню
- Одиночный клик - переход по пунктам меню (вниз)
- Двойной клик - вход/выход в подменю (группу параметров)
- Удержание - увеличение параметра (инкремент)
- Клик+удержание уменьшение параметра (декремент)

Вне меню доступны:

- Одиночный клик
- Двойной клик
- Удержание - инкрементный сигнал (incr0)
- Клик+удержание - инкрементный сигнал (incr1)

При входе в меню выходы "внешнего" управления блокируются и наоборот при активных "внешних" выходах, меню не активно.

Параметры пользователя:

Bounce - таймаут для антидребезга (аналог штатного) Не используйте одновременно со штатным!
LongTime - Таймаут до удержания.
ClickTime - Таймаут между кликами
incrVal - шаг инкремента (время между инкрементными тиками)

Внимание!!! Блоку необходима обратная связь в виде boolean переменной с выхода AG блока меню.

Тестовый проект для испытания данного блока. (Потребуется одна кнопка и дисплей LCD 2004)
Описание проекта:
При запуске контроллера на дисплее рабочее окно (вне меню).
Здесь можно:
"Включить мотор" - одиночный клик,
"Выключить мотор" - двойной клик.
"Прибавить скорость" - удержание,
"Убавить скорость" - клик+удержание

Для входа в меню - тройной клик.
Для выхода из меню в любой момент - так же тройной клик.
С помощью одиночных кликов (с паузой в 1 сек) перемещаемся по пунктам меню вниз. (меню должно быть зациклено)
Для входа в подменю (группу параметров) - двойной клик.
Для выхода в главное меню - так же двойной клик
Для увеличения значения параметра - просто удерживаем кнопку
Для уменьшения значения параметра - один короткий клик + так же удерживаем кнопку.

Гораздо проще попробовать чем описывать. :)
.
2020-11-25_192409.jpg
Button-Menu_1.flp
(1.95 МБ) 144 скачивания
Последний раз редактировалось Dryundel 25.11.2020{, 23:27}, всего редактировалось 1 раз.

Аватара пользователя
nalnik
Подполковник
Сообщения: 1324
Зарегистрирован: 14.05.2016{, 17:12}
Репутация: 100
Откуда: Кисловодск
Имя: Александр

Управление меню одной кнопкой

#2

Сообщение nalnik » 25.11.2020{, 21:41}

Dryundel писал(а):
25.11.2020{, 20:54}
Алгоритм:
- Тройной клик - вход/выход в меню
- Одиночный клик - переход по пунктам меню (вниз)
- Двойной клик - вход/выход в подменю (группу параметров)
- Удержание - увеличение параметра (инкремент)
- Клик+удержание уменьшение параметра (декремент)

Вне меню доступны:
- Одиночный клик
- Двойной клик
- Удержание - инкрементный сигнал (incr0)
- Клик+удержание - инкрементный сигнал (incr1)

При входе в меню выходы "внешнего" управления блокируются и наоборот при активных "внешних" выходах, меню не активно.
"Алгоритм" я точно не смогу запомнить, если не тыкать на КНОПКУ каждый день по пять раз в течении месяца.
Скажите как теперь это забыть - я спать до вечера пятницы не смогу, надо выпить. :shok:
Я хочу быть добрее, но люди сами нарываются.

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

Управление меню одной кнопкой

#3

Сообщение Dryundel » 25.11.2020{, 21:51}

nalnik писал(а):
25.11.2020{, 21:41}
"Алгоритм" я точно не смогу запомнить, если не тыкать на КНОПКУ каждый день по пять раз в течении месяца.
Скажите как теперь это забыть - я спать до вечера пятницы не смогу, надо выпить.
Точно надо выпить. Потом загрузить проект и тестирование пойдет на ура. :D

Аватара пользователя
nalnik
Подполковник
Сообщения: 1324
Зарегистрирован: 14.05.2016{, 17:12}
Репутация: 100
Откуда: Кисловодск
Имя: Александр

Управление меню одной кнопкой

#4

Сообщение nalnik » 25.11.2020{, 22:00}

Dryundel писал(а):
25.11.2020{, 21:51}
пойдет на ура.
Обычные контактные кнопки "гнать" начнут через пару месяцев, резиновые не подойдут.
Я использую всегда сенсорные - три кнопки (на один аналоговый вход через резисторы)
Я хочу быть добрее, но люди сами нарываются.

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

Управление меню одной кнопкой

#5

Сообщение Dryundel » 25.11.2020{, 22:06}

nalnik писал(а):
25.11.2020{, 22:00}
Я использую всегда сенсорные - три кнопки (на один аналоговый вход через резисторы)
Ну тады ой. Вы не попали в target group. Звиняйте. :smile44:

Ingwar
Полковник
Сообщения: 1929
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 223
Откуда: Ленобласть
Имя: Игорь

Управление меню одной кнопкой

#6

Сообщение Ingwar » 25.11.2020{, 22:11}

nalnik писал(а):
25.11.2020{, 22:00}
Я использую всегда сенсорные - три кнопки (на один аналоговый вход через резисторы)
На какой микрухе предпочитаете?
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

Аватара пользователя
nalnik
Подполковник
Сообщения: 1324
Зарегистрирован: 14.05.2016{, 17:12}
Репутация: 100
Откуда: Кисловодск
Имя: Александр

Управление меню одной кнопкой

#7

Сообщение nalnik » 25.11.2020{, 22:17}

Ingwar писал(а):
25.11.2020{, 22:11}
На какой микрухе предпочитаете?
ttp223

Отправлено спустя 5 минут 10 секунд:
Dryundel писал(а):
25.11.2020{, 22:06}
target group
Соблюдайте п. 4 правил форума :smile171:
Я хочу быть добрее, но люди сами нарываются.

Аватара пользователя
Larisa
Рядовой
Сообщения: 18
Зарегистрирован: 20.07.2023{, 20:59}
Репутация: 0
Имя: Лариса

Управление меню одной кнопкой

#8

Сообщение Larisa » 15.01.2024{, 10:30}

nalnik писал(а):
25.11.2020{, 22:00}
Dryundel писал(а):
25.11.2020{, 21:51}
пойдет на ура.
Обычные контактные кнопки "гнать" начнут через пару месяцев, резиновые не подойдут.
Я использую всегда сенсорные - три кнопки (на один аналоговый вход через резисторы)
Поделитесь пожалуйста схемой подключения :smile198: Какого номинала резисторы и как реализовано в FLProg :smile427:

Аватара пользователя
kulibinsvv
Лейтенант
Сообщения: 476
Зарегистрирован: 18.09.2015{, 10:04}
Репутация: 54
Откуда: Омск

Управление меню одной кнопкой

#9

Сообщение kulibinsvv » 19.01.2024{, 18:21}

Larisa писал(а):
15.01.2024{, 10:30}
Какого номинала резисторы
ЦАП R-2R.png
Последовательный делитель.png
Параллельный делитель.png
Каждая схема имеет свои преимущества и недостатки. Какую использовать - зависит от конкретной реализации.
В архиве файлы моделирования в Multisim14 и ссылки на калькуляторы делителя напряжения и статью, поясняющую работу схем. Знание закона Ома приветствуется. :D
Обработка значений АЦП в FLProg достаточно проста. Не будет получаться - выкладывайте на форум результаты своего творчества. Вам подскажут, что делаете не так.

Отправлено спустя 2 часа 26 минут 45 секунд:
Larisa писал(а):
15.01.2024{, 10:30}
и как реализовано в FLProg
Поиск по форуму всё ещё работает. :yes:

Прошу прощения. :smile44: В архиве была "битая" ссылка, перезалил.

Для тех, кому лень качать архив:
Кравченко Виктор, "Arduino: Подключение нескольких кнопок к одному аналоговому входу", 2016г.
Вложения
Клавиатура на аналоговом входе.zip
(460.47 КБ) 8 скачиваний
Мой змей, этот ползучий соблазн сомнения,всё шевелится, побуждая «искать концы»... (Станислав Ермаков)

Ответить

Вернуться в «Другое»