Блок энкодер для меню

блок э

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

Блок энкодер для меню

#1

Сообщение Dryundel » 02.09.2019{, 17:50}

Энкодер для меню V1.0
Блок энкодера для одноуровневого меню
2019-09-02_100815.jpg
2019-09-02_100815.jpg (10.68 КБ) 4296 просмотров
.
Энкодер_для_меню_V1.0_(CODE).ubi
(330.61 КБ) 265 скачиваний
.
Блок EncMenuV1.0 предназначен для управления стандартным блоком Меню с помощью энкодера.
Внимание! Блок поддерживает управление только одноуровневым меню.
Все выходы блока подключаются к соответствующим входам блока меню.
Подробное описаниеПоказать
Функционал блока:
Первое одиночное нажатие на кнопку энкодера - Вход в меню (активируется выход EnOut )
Последующие одиночные нажатия кнопки - Переход между Скролом(выбором пункта меню) и установкой значения выбранного пункта.
Скрол и установка значения осуществляются поворотом ручки энкодера.
Двойное нажатие на кнопку - Переход к первому пункту главного меню (активируется выход Reset).
Удержание кнопки (длинное нажатие) - Выход из мени (деактивация выхода EnOut)
Авто-выход из меню - Выход из меню по истечении заданного временного промежутка бездействия (по умолчанию 60000 мс (60 сек))
Для активации Авто-выхода из меню необходимо установить True в соответствующем параметре пользователя (по умолчанию False - Авто-выход отключен).

В параметрах пользователя необходимо:
1. Указать 2 пина к которым подключены CLK и DT энкодера (по умолчанию 2, 3).
2. Установить значение (TicStep) соответствующее количеству тиков на один физический шаг энкодера (по умолчанию 1).
Пример: При использовании энкодера EC-11 ( KY-040) на один физический шаг энкодер выдает 2 или 4 импульса, поэтому надо поставить TicStep = 2 или 4.
Для определения количества тиков на один физический шаг можно воспользоваться блоком "Тестер для энкодера" EncTest
3. Установить (Timeout) - время в (мс) после которого нажатие на кнопку будет считаться длинным (по умолчанию 2000 мс (2 сек))
4. Установить (ClickTime) максимальное время задержки в (мс) между кликами это необходимо для отслеживания двойного клика (по умолчанию 300 мс)

Входы блока:
Key - вход для подключения кнопки или управляющего сигнала.

Есть три варианта подключения (из описания библиотеки):
1. Лучший результат - используются два пина поддерживающие прерывания.
2. Хорошая производительность - один из пинов поддерживает прерывания.
3. Низкая поизводительность - оба пина не поддерживают прерывания.

Ограничения:
1, Не рекомендуется использовать пины к которым подключена светодиодная индикация (в большинстве случаев Pin 13)!!!
2. Если одним энкодером задействованы два пина пина поддерживающие прерывание, то в проекте нельзя использовать более одного блока. Если хотя бы один из пинов к которому подключен энкодер не поддерживает прерывание, ограничение снимается.

При использовании длинных проводов между энкодером и платой на выходы CLK и DT можно поставить подтягивающий резистор 1К.
Для уменьшения дребезга контактов можно соединить выходы CLK и DT с GND конденсаторами в несколько пФ

Пины поддерживающие прерывания на различных платах Arduino:
UNO - Pin 2,3
LEONARDO - Pin 0,1,2,3
MEGA - Pin 2,3,18,19,20,21
DUE - все
Пример использования блока:
Энкодер для меню V1_0.jpg
Другие блоки для энкодера:
Набор блоков ЭНКОДЕР
Тестер для энкодера
Последний раз редактировалось Dryundel 20.08.2020{, 17:17}, всего редактировалось 5 раз.

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

Блок энкодер для меню

#2

Сообщение Dryundel » 02.09.2019{, 18:08}

Энкодер для меню V1.1(обновление)
2019-09-03_062520.jpg
2019-09-03_062520.jpg (11.68 КБ) 4208 просмотров
В новой версии добавлена возможность добавления нескольких страниц начального (стартового) дисплея.
До входа в меню блок поддеживает несколько стартовых дисплеев (страниц) без возможности настройки параметров.
Количество стартовых дисплеев (страниц) Задается в параметрах пользователя.
Переход по страницам осуществляется поворотом ручки энкодера.
.
Энкодер_для_меню_V1.1_(CODE).ubi
(360.71 КБ) 220 скачиваний
.
Подробное описаниеПоказать
Энкодер для меню V1.1

Блок EncMenuV1.1 предназначен для управления стандартным блоком Меню с помощью энкодера.
Внимание! Блок поддеривает управление только одноуровневым меню.
Все выходы блока, кроме StartD, подключаются к соответствующим входам блока меню.

Функционал блока:
До входа в меню блок поддеживает несколько стартовых дисплеев (страниц) без возможности настройки параметров.
Количество стартовых дисплеев (страниц) Задается в параметрах пользователя.
Переход по страницам осуществляется поворотом ручки энкодера.
Первое одиночное нажатие на кнопку энкодера - Вход в меню (активируется выход EnOut )
Последующие одиночные нажатия кнопки - Переход между Скролом(выбором пункта меню) и установкой значения выбранного пункта.
Скрол и установка значения осуществляются поворотом ручки энкодера.
Двойное нажатие на кнопку - Переход к первому пункту главного меню (активируется выход Reset).
Удержание кнопки (длинное нажатие) - Выход из меню (деактивация выхода EnOut) и переход на стартоввый дисплей (страницу) №1
Авто-выход из меню - Выход из меню по истечении заданного временного промежутка бездействия (по умолчанию 60000 мс (60 сек))
Для активации Авто-выхода из меню необходимо установить True в соответствующем параметре пользователя (по умолчанию False - Авто-выход отключен).

В параметрах пользователя необходимо:
1. Указать 2 пина к которым подключены CLK и DT энкодера (по умолчанию 2, 3).
2. Установить значение (TicStep) соответствующее количеству тиков на один физический шаг энкодера (по умолчанию 1).
Пример: При использовании энкодера EC-11 ( KY-040) на один физический шаг энкодер выдает 2 или 4 импульса, поэтому надо поставить TicStep = 2 или 4.
Для определения количества тиков на один физический шаг можно воспользоваться блоком "Тестер для энкодера" EncTest
3. Установить (Timeout) - время в (мс) после которого нажатие на кнопку будет считаться длинным (по умолчанию 2000 мс (2 сек))
4. Установить (ClickTime) максимальное время задержки в (мс) между кликами это необходимо для отслеживания двойного клика (по умолчанию 300 мс)

Входы блока:
Key - вход для подключения кнопки или управляющего сигнала.

Выходы блока (кроме выходов для блока меню):

StartD - При неактивном меню выводит номер активного стартового дисплея (страницы). При активном меню на данном выходе выводится "0"

Есть три варианта подключения (из описания библиотеки):
1. Лучший результат - используются два пина поддерживающие прерывания.
2. Хорошая производительность - один из пинов поддерживает прерывания.
3. Низкая поизводительность - оба пина не поддерживают прерывания.

Ограничения:
1, Не рекомендуется использовать пины к которым подключена светодиодная индикация (в большинстве случаев Pin 13)!!!
2. Если одним энкодером задействованы два пина пина поддерживающие прерывание, то в проекте нельзя использовать более одного блока. Если хотя бы один из пинов к которому подключен энкодер не поддерживает прерывание, ограничение снимается.

При использовании длинных проводов между энкодером и платой на выходы CLK и DT можно поставить подтягивающий резистор 1К.
Для уменьшения дребезга контактов можно соединить выходы CLK и DT с GND конденсаторами в несколько пФ

Пины поддерживающие прерывания на различных платах Arduino:
UNO - Pin 2,3
LEONARDO - Pin 0,1,2,3
MEGA - Pin 2,3,18,19,20,21
DUE - все
Пример использования:
Энкодер для меню V1_1.jpg
Последний раз редактировалось Dryundel 20.08.2020{, 17:21}, всего редактировалось 8 раз.

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

Блок энкодер для меню

#3

Сообщение Dryundel » 02.09.2019{, 22:48}

Энкодер для меню V2.0 (Новый релиз)

С поддержкой многоуровневого меню!
.
2019-09-03_100245.jpg
2019-09-03_100245.jpg (18.08 КБ) 3934 просмотра
.
Энкодер_для_меню_V2.0_(CODE).ubi
(455.34 КБ) 323 скачивания
.
Блок EncMenuV2.0 предназначен для управления стандартным блоком Меню с помощью энкодера.
Подробное описаниеПоказать
Блок поддерживает управление многоуровневым меню!
Все выходы блока, кроме StartD, подключаются к соответствующим входам блока меню.
Входы блока AMM (активно главное меню) и AG (активен групповой пункт меню) требуют сигнала с соответствующих выходов блока меню (подключение через переменную)

Внимание! Для корректной работы блока подключение входов AMM и AG, а так же всех выходов к соответствующим входам/выходам блока меню обязательно!

Функционал блока:
До входа в меню блок поддерживает несколько стартовых дисплеев (страниц) без возможности настройки параметров.
Количество стартовых дисплеев (страниц) Задается в параметрах пользователя.
Переход по страницам осуществляется поворотом ручки энкодера.
Первое одиночное нажатие на кнопку энкодера - Вход в меню (активируется выход EnOut )
Последующие одиночные нажатия кнопки - Переход между Скролом(выбором пункта меню) и установкой значения выбранного пункта. При активном групповом пункте меню по одиночному клику осуществляется переход к дочерним пунктам меню.
Скрол и установка значения осуществляются поворотом ручки энкодера.
Двойное нажатие на кнопку - Переход к родительскому пункту меню. Если активно главное меню (при нахождении на любом из пунктов главного меню) по двойному клику осуществляется переход к первому пункту главного меню (активируется выход Reset).
Удержание кнопки (длинное нажатие) - Выход из меню (деактивация выхода EnOut) и переход на стартоввый дисплей (страницу) №1
Авто-выход из меню - Выход из меню по истечении заданного временного промежутка бездействия (по умолчанию 60000 мс (60 сек))
Авто-выход так же осуществляет переход на стартовый дисплей (страницу) №1
Для активации Авто-выхода из меню необходимо установить True в соответствующем параметре пользователя (по умолчанию False - Авто-выход отключен).

В параметрах пользователя необходимо:
1. Указать 2 пина к которым подключены CLK и DT энкодера (по умолчанию 2, 3).
2. Установить значение (TicStep) соответствующее количеству тиков на один физический шаг энкодера (по умолчанию 1).
Пример: При использовании энкодера EC-11 ( KY-040) на один физический шаг энкодер выдает 2 или 4 импульса, поэтому надо поставить TicStep = 2 или 4.
Для определения количества тиков на один физический шаг можно воспользоваться блоком "Тестер для энкодера" EncTest
3. Установить (Timeout) - время в (мс) после которого нажатие на кнопку будет считаться длинным (по умолчанию 2000 мс (2 сек))
4. Установить (ClickTime) максимальное время задержки в (мс) между кликами это необходимо для отслеживания двойного клика (по умолчанию 300 мс)

Входы блока (кроме входов для блока меню):
Key - вход для подключения кнопки или управляющего сигнала.

Выходы блока (кроме выходов для блока меню):
StartD - При неактивном меню выводит номер активного стартового дисплея (страницы). При активном меню на данном выходе выводится "0"

Есть три варианта подключения (из описания библиотеки):
1. Лучший результат - используются два пина поддерживающие прерывания.
2. Хорошая производительность - один из пинов поддерживает прерывания.
3. Низкая производительность - оба пина не поддерживают прерывания.

Ограничения:
1, Не рекомендуется использовать пины к которым подключена светодиодная индикация (в большинстве случаев Pin 13)!!!
2. Если одним энкодером задействованы два пина пина поддерживающие прерывание, то в проекте нельзя использовать более одного блока. Если хотя бы один из пинов к которому подключен энкодер не поддерживает прерывание, ограничение снимается.

При использовании длинных проводов между энкодером и платой на выходы CLK и DT можно поставить подтягивающий резистор 1К.
Для уменьшения дребезга контактов можно соединить выходы CLK и DT с GND конденсаторами в несколько пФ

Пины поддерживающие прерывания на различных платах Arduino:
UNO - Pin 2,3
LEONARDO - Pin 0,1,2,3
MEGA - Pin 2,3,18,19,20,21
DUE - все
Энкодер для меню V2_0.jpg
Скачать
Последний раз редактировалось Dryundel 20.08.2020{, 17:22}, всего редактировалось 6 раз.

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

Блок энкодер для меню

#4

Сообщение Dryundel » 02.09.2019{, 22:49}

Резерв2

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

Блок энкодер для меню

#5

Сообщение Dryundel » 03.09.2019{, 12:51}

03.09.2019 обновление до версии V1.1

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

Блок энкодер для меню

#6

Сообщение Dryundel » 04.09.2019{, 14:26}

Dryundel писал(а):
02.09.2019{, 22:48}
Энкодер для меню V2.0 (Новый релиз)

С поддержкой многоуровневого меню!
(готовится)
.
Требуются бета-тестеры для тестирования нового блока Энкодер для меню V2.0 (с поддержкой многоуровневого меню)
Кому интересно пишите в личку.
(предложение закрыто)
Последний раз редактировалось Dryundel 06.09.2019{, 10:58}, всего редактировалось 1 раз.

Аватара пользователя
cmept-27
Сержант
Сообщения: 270
Зарегистрирован: 08.12.2016{, 15:51}
Репутация: 76

Блок энкодер для меню

#7

Сообщение cmept-27 » 04.09.2019{, 14:52}

OK

uglerod
Рядовой
Сообщения: 73
Зарегистрирован: 27.11.2016{, 18:32}
Репутация: 5

Блок энкодер для меню

#8

Сообщение uglerod » 22.09.2019{, 20:24}

Dryundel, Прикупил блок, подскажите по библиотеке Encoder 1.4.1. Что то "слёту" не нашёл.Если не затруднит-подскажите где скачать. Спасибо.

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

Блок энкодер для меню

#9

Сообщение Dryundel » 22.09.2019{, 22:16}

uglerod писал(а):
22.09.2019{, 20:24}
Dryundel, Прикупил блок, подскажите по библиотеке Encoder 1.4.1. Что то "слёту" не нашёл.Если не затруднит-подскажите где скачать. Спасибо.
Библиотека к блоку привязана.
А вообще здесь
https://github.com/PaulStoffregen/Encoder

Yurii85
Рядовой
Сообщения: 12
Зарегистрирован: 16.09.2018{, 08:19}
Репутация: 0
Имя: Юрий

Блок энкодер для меню

#10

Сообщение Yurii85 » 23.09.2019{, 07:05}

Как насчет поддержки ESP8266 ?

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

Блок энкодер для меню

#11

Сообщение Dryundel » 23.09.2019{, 07:38}

Yurii85 писал(а):
23.09.2019{, 07:05}
Как насчет поддержки ESP8266 ?
Тестировалось на NodeMCU - работает.

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

Блок энкодер для меню

#12

Сообщение Dryundel » 23.09.2019{, 10:15}

Добавлен новый блок
Энкодер для меню V2.0 - С поддержкой многоуровневого меню!
viewtopic.php?p=75572#p75572

Yurii85
Рядовой
Сообщения: 12
Зарегистрирован: 16.09.2018{, 08:19}
Репутация: 0
Имя: Юрий

Блок энкодер для меню

#13

Сообщение Yurii85 » 25.09.2019{, 18:32}

Dryundel, такой вопрос ваши новые блоки основаны все на тойже библиотеки encoder.h ?

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

Блок энкодер для меню

#14

Сообщение Dryundel » 25.09.2019{, 18:34}

Yurii85 писал(а):
25.09.2019{, 18:32}
Dryundel, такой вопрос ваши новые блоки основаны все на тойже библиотеки encoder.h ?
Да, именно так.

Yurii85
Рядовой
Сообщения: 12
Зарегистрирован: 16.09.2018{, 08:19}
Репутация: 0
Имя: Юрий

Блок энкодер для меню

#15

Сообщение Yurii85 » 25.09.2019{, 18:41}

то есть ранний блок энкодер импульсный V 1.0 должен работать с esp8266 ?

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

Блок энкодер для меню

#16

Сообщение Dryundel » 25.09.2019{, 18:46}

Yurii85 писал(а):
25.09.2019{, 18:41}
то есть ранний блок энкодер импульсный V 1.0 должен работать с esp8266 ?
В принципе должен.

Yurii85
Рядовой
Сообщения: 12
Зарегистрирован: 16.09.2018{, 08:19}
Репутация: 0
Имя: Юрий

Блок энкодер для меню

#17

Сообщение Yurii85 » 25.09.2019{, 18:48}

тогда прошу помощи
есп после добавления блока уходит в режим прошивки или как то так (шлет свои данные в ком порт)

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

Блок энкодер для меню

#18

Сообщение Dryundel » 25.09.2019{, 18:50}

Энкодер импульсный V 1.1 надежнее.
Там добавлен алгоритм предотвращающий пропуск импульсов.

Yurii85
Рядовой
Сообщения: 12
Зарегистрирован: 16.09.2018{, 08:19}
Репутация: 0
Имя: Юрий

Блок энкодер для меню

#19

Сообщение Yurii85 » 25.09.2019{, 18:52}

ets Jan 8 2013,rst cause:2, boot mode:(3,6)



load 0x4010f000, len 1384, room 16

tail 8

chksum 0x2d

csum 0x2d

v8b899c12

~ld
вот что сыпет в ком порт

Отправлено спустя 1 минуту 31 секунду:
я понимаю но проблема не в пропусках а в конфликте библиотеки с чем то при компиляции

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

Блок энкодер для меню

#20

Сообщение pan » 25.09.2019{, 19:00}

Самый лучший алгоритм это пара конденсаторов...

Ответить

Вернуться в «Разработка пользовательских блоков»