Кнопка (Button)

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

Кнопка (Button)

Сообщение Dryundel »

Wadim77 писал(а): 05 янв 2022, 21:37 А не подскажете схемку, что бы работал такой алгоритм - одиночным кликом включили свет. долгим удержанием добавили-убавили яркость. и что бы при одинарном клике светодиод плавно выключался до 0 и при следующем клике - включался плавно? Т .е выходил на установленный уровень и выключался плавно.
Для плавного перехода из одного режима в другой можно использовать Блоки ускорения. Назначить нужное нажатие поможет тот же блок Button. Ну а логику изобретайте. :)
Wadim77 писал(а): 05 янв 2022, 21:37 П.С. и еще вопросик если можно - как сделать запоминание режима установленной яркости в энергонезависимую память? (на случай пропадания питания на контроллере?
Для этого требуется задействовать EEPROM (есть штатные блоки). Однако при пропадании питания на устройстве, на контроллере оно (питание) должно сохраняться еще несколько миллисекунд. Для этого требуется дополнительный конденсатор достаточной емкости или ионистор. Один из входов контроллера, в этом случае должен следить за наличием общего питания и по пропаданию, давать сигнал на сохранение требуемого значения в EEPROM. Вот и вся логика.
Wadim77
Рядовой
Сообщения: 21
Зарегистрирован: 20 авг 2020, 19:23
Имя: Wadim

Кнопка (Button)

Сообщение Wadim77 »

Dryundel писал(а): 05 янв 2022, 14:16 [ref]Wadim77[/ref], используя к примеру выходы одиночного и двойного клика блока Button, можно дополнить проект полным включением (по короткому нажатию) и полным выключением (по двойному клику).
3.jpg
Инкрементная кнопка 3.flp
Есть в этом случае нюанс по направлению счета при длинном нажатии. Но при желании и это можно обойти. Используйте фантазию и логику. :)

Добрый день! Скажите пожалуйста (или если можно накидайте схемку) как обойти данный нюанс. я сообразить не могу. Не часто ставлю задачки себе по программированию, а тут очень кнопочка такая понадобилась. Заранее большое спасибо! Благодарю!
Аватара пользователя
Dryundel
Полковник
Сообщения: 2663
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Благодарил (а): 33 раза
Поблагодарили: 323 раза

Кнопка (Button)

Сообщение Dryundel »

Wadim77 писал(а): 22 мар 2022, 19:44 Добрый день! Скажите пожалуйста (или если можно накидайте схемку) как обойти данный нюанс. я сообразить не могу. Не часто ставлю задачки себе по программированию, а тут очень кнопочка такая понадобилась. Заранее большое спасибо! Благодарю!
Какой нюанс обойти? Какая кнопочка потребовалась? Что вообще требуется?
[ref]Wadim77[/ref], конкретизируйте вашу задачу.
SaradonNN
Рядовой
Сообщения: 17
Зарегистрирован: 03 июл 2023, 08:53
Имя: Евгений

Re: Кнопка (Button)

Сообщение SaradonNN »

Некропостинг, но вдруг.
Во первых огромное спасибо ув. Dryundel за такой замечательный и функциональный блок.
Собственно, вопрос. Применил данный блок в проекте, задействовал одиночный клик, двойной, тройной, пятикратный и удержание.
Проект железно выполнен идентичным дважды, в одном случае на Wemos D1 mini, во втором на ESP-01.
Кнопка замыкает на землю, физического подтягивающего резистора нет, включен программный.
После каждой кнопки установлен TT триггер, т.е. все кнопки срабатывают как переключатели.
Суть проблемы.
К одиночному нажатию и удержанию претензий нет. Всё срабатывает сразу и чётко.
А вот множественные нажатия срабатывают не корректно. Двойное нажатие срабатывает через раз-через два, тройное ещё реже, пятикратное вообще может сработать лишь раз из десятка циклов повторения.
И это идентично на обоих контроллерах.
Защиту от дребезга включал-отключал - ничего не меняется.
Таймаут увеличивал до 500 - так же ничего не изменилось.
Отмечу, что в момент "холостых" многократных нажатий одиночные нажатия не срабатывают. Т.е. попросту не происходит ничего.
Скажите, что можно попробовать с этим сделать, возможно ли победить такую проблему?
Аватара пользователя
montirovka
Подполковник
Сообщения: 1320
Зарегистрирован: 15 фев 2021, 16:16
Откуда: Геленджик
Имя: Сергей
Благодарил (а): 161 раз
Поблагодарили: 519 раз

Re: Кнопка (Button)

Сообщение montirovka »

SaradonNN писал(а): 13 мар 2026, 14:18 Некропостинг, но вдруг.
Во первых огромное спасибо ув. Dryundel за такой замечательный и функциональный блок.
Собственно, вопрос. Применил данный блок в проекте, задействовал одиночный клик, двойной, тройной, пятикратный и удержание.
Проект железно выполнен идентичным дважды, в одном случае на Wemos D1 mini, во втором на ESP-01.
Кнопка замыкает на землю, физического подтягивающего резистора нет, включен программный.
После каждой кнопки установлен TT триггер, т.е. все кнопки срабатывают как переключатели.
Суть проблемы.
К одиночному нажатию и удержанию претензий нет. Всё срабатывает сразу и чётко.
А вот множественные нажатия срабатывают не корректно. Двойное нажатие срабатывает через раз-через два, тройное ещё реже, пятикратное вообще может сработать лишь раз из десятка циклов повторения.
И это идентично на обоих контроллерах.
Защиту от дребезга включал-отключал - ничего не меняется.
Таймаут увеличивал до 500 - так же ничего не изменилось.
Отмечу, что в момент "холостых" многократных нажатий одиночные нажатия не срабатывают. Т.е. попросту не происходит ничего.
Скажите, что можно попробовать с этим сделать, возможно ли победить такую проблему?
Что бы ответить на ваш вопрос нужно видеть ваш проект. Каждый смотрит на проект как правило с разных сторон. У меня первый вопрос, прочитав ваш пост, а что в проекте помимо кнопок. Второй вопрос в какой версии вы делаете проект?
SaradonNN
Рядовой
Сообщения: 17
Зарегистрирован: 03 июл 2023, 08:53
Имя: Евгений

Re: Кнопка (Button)

Сообщение SaradonNN »

Физически помимо кнопки в проекте ещё экранчик SSD1306 и светодиод.
Проект делаю в 9.6.4
Аватара пользователя
montirovka
Подполковник
Сообщения: 1320
Зарегистрирован: 15 фев 2021, 16:16
Откуда: Геленджик
Имя: Сергей
Благодарил (а): 161 раз
Поблагодарили: 519 раз

Re: Кнопка (Button)

Сообщение montirovka »

Я примерно так и думал. Ресурсы контроллера съедает дисплей. Оставшихся ресурсов не хватает на обработку блока кнопок. А что выводите на дисплей?
SaradonNN
Рядовой
Сообщения: 17
Зарегистрирован: 03 июл 2023, 08:53
Имя: Евгений

Re: Кнопка (Button)

Сообщение SaradonNN »

Ресурсы 8266 съедает диспей??
Вывожу напряжение. Пока доставляемое константой.
Суть - будильник по напряжению. Если измеренное напряжение ниже предустановленного - мигает светодиод.
Ander
Администратор
Сообщения: 744
Зарегистрирован: 31 окт 2023, 12:50
Имя: Андрей
Благодарил (а): 57 раз
Поблагодарили: 142 раза

Re: Кнопка (Button)

Сообщение Ander »

SaradonNN писал(а): 13 мар 2026, 16:12 Физически помимо кнопки в проекте ещё экранчик SSD1306 и светодиод.
Проект делаю в 9.6.4
Может все таки проект выложите
SaradonNN
Рядовой
Сообщения: 17
Зарегистрирован: 03 июл 2023, 08:53
Имя: Евгений

Re: Кнопка (Button)

Сообщение SaradonNN »

Приложил.
Основной вопрос к пятикратному нажатию.
Первый раз срабатывает практически всегда.
Последующие - очень трудно добиться срабатывания.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Ander
Администратор
Сообщения: 744
Зарегистрирован: 31 окт 2023, 12:50
Имя: Андрей
Благодарил (а): 57 раз
Поблагодарили: 142 раза

Re: Кнопка (Button)

Сообщение Ander »

SaradonNN писал(а): 13 мар 2026, 16:55 Приложил.
Основной вопрос к пятикратному нажатию.
Первый раз срабатывает практически всегда.
Последующие - очень трудно добиться срабатывания.
Основной ответ - вы используете очень не сбалансированный блок для дисплея.
SaradonNN
Рядовой
Сообщения: 17
Зарегистрирован: 03 июл 2023, 08:53
Имя: Евгений

Re: Кнопка (Button)

Сообщение SaradonNN »

Ander писал(а): 13 мар 2026, 17:28 Основной ответ - вы используете очень не сбалансированный блок для дисплея.
Буду благодарен, если посоветуете проверенный.
Ander
Администратор
Сообщения: 744
Зарегистрирован: 31 окт 2023, 12:50
Имя: Андрей
Благодарил (а): 57 раз
Поблагодарили: 142 раза

Re: Кнопка (Button)

Сообщение Ander »

В левом меню есть штатный
SaradonNN
Рядовой
Сообщения: 17
Зарегистрирован: 03 июл 2023, 08:53
Имя: Евгений

Re: Кнопка (Button)

Сообщение SaradonNN »

Ander писал(а): 13 мар 2026, 17:35 В левом меню есть штатный
Вроде-бы только в последней бэтке.
Тем не менее, признаюсь, у меня не хватило ума им воспользоваться.
Я привык, что блоки вытаскиваются в рабочую зону. А что делать с этим меню так и не сообразил.
И уроков внятных тоже не нашёл.
Ander
Администратор
Сообщения: 744
Зарегистрирован: 31 окт 2023, 12:50
Имя: Андрей
Благодарил (а): 57 раз
Поблагодарили: 142 раза

Re: Кнопка (Button)

Сообщение Ander »

SaradonNN писал(а): 13 мар 2026, 17:44
Ander писал(а): 13 мар 2026, 17:35 В левом меню есть штатный
Вроде-бы только в последней бэтке.
Тем не менее, признаюсь, у меня не хватило ума им воспользоваться.
Я привык, что блоки вытаскиваются в рабочую зону. А что делать с этим меню так и не сообразил.
И уроков внятных тоже не нашёл.
Он там давно! И там всё не сложно. там графический редактор. Пробуйте.
SaradonNN
Рядовой
Сообщения: 17
Зарегистрирован: 03 июл 2023, 08:53
Имя: Евгений

Re: Кнопка (Button)

Сообщение SaradonNN »

Ander писал(а): 13 мар 2026, 17:52 Он там давно! И там всё не сложно. там графический редактор. Пробуйте.
Да я даже не могу сообразить, как добавить его в проект...
SaradonNN
Рядовой
Сообщения: 17
Зарегистрирован: 03 июл 2023, 08:53
Имя: Евгений

Re: Кнопка (Button)

Сообщение SaradonNN »

Ander писал(а): 13 мар 2026, 17:52 Он там давно! И там всё не сложно. там графический редактор. Пробуйте.
Собрал тестовый проект с этим блоком на встроенном в бетку SSD1308.
Ожидаемо, дело оказалось не в блоке дисплея.
Пятикратно нажатие так и не работает.
Точнее работает, но криво. Первый раз после загрузки контроллера вероятность срабатывания 90%.
Последующие циклы пятикратного нажатия приводят к успеху крайне редко и бессистемно.
После перезагрузки контроллера всё повторяется.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
kulibinsvv
Лейтенант
Сообщения: 493
Зарегистрирован: 18 сен 2015, 10:04
Откуда: Омск
Благодарил (а): 7 раз
Поблагодарили: 7 раз

Re: Кнопка (Button)

Сообщение kulibinsvv »

Проект делаю в 9.6.4
Попробуйте собрать проект в FLProg 7.5.2
Мой змей, этот ползучий соблазн сомнения,всё шевелится, побуждая «искать концы»... (Станислав Ермаков)
Аватара пользователя
Phazz
Полковник
Сообщения: 3516
Зарегистрирован: 17 окт 2016, 15:38
Откуда: Сургут
Имя: Анатолий
Благодарил (а): 380 раз
Поблагодарили: 262 раза

Re: Кнопка (Button)

Сообщение Phazz »

отключите диспетчер для платы на которой находится блок
SaradonNN
Рядовой
Сообщения: 17
Зарегистрирован: 03 июл 2023, 08:53
Имя: Евгений

Re: Кнопка (Button)

Сообщение SaradonNN »

kulibinsvv писал(а): 24 мар 2026, 09:36 Попробуйте собрать проект в FLProg 7.5.2
Собрал в 7.5.2
Ничего не изменилось.
Phazz писал(а): 24 мар 2026, 09:47 отключите диспетчер для платы на которой находится блок
Аналогично. Никаких улучшений.

Вообще исключил из проекта экранчик.
Теперь кнопка просто включает и выключает светодиод по пятикратному нажатию.
И никаких изменений.
Ответить

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

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

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