Блок энкодера для одноуровневого меню . .
Блок 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 - все
Набор блоков ЭНКОДЕР
Тестер для энкодера