Рабочий кусок проекта для управления меню с помощью энкодера. (не претендую на оптимальное решение)
Подключение энкодера по схеме
Кнопка энкодера замыкается на (-).
Алгоритм:
Вращение - навигация по меню и/или подменю, изменение параметров
Кратковременное нажатие - вход в подменю или сохранение изменения параметра
Нажатие 1-2 секунды - переход в режим изменения параметра
Нажатие 3 и более секунд - возврат из подменю с сохранением измененных параметров
При вращении на 1 щелчек, энкодер выдает 4 импульса.
Но использование дисплеев на I2C обеспечивает "проглатывание" пачки и навигация по пунктам соразмерна (примерно) щелчкам.
Если же проект "легкий", можно добавить таймеры на отключение (100-500мс) в цепях после блоков сравнения ("вперед" "назад").