Страница 2 из 2

Энкодер

Добавлено: 29 апр 2024, 18:19
asvhmao
aidar_i писал(а): 02 апр 2024, 14:05 Сделал для себя блок энкодера на библиотеке STM32encoder, выложу сюда, чтобы не создавать тему.
Интересный блок. Работает нормально.
Добавил немного описания от себя, прилепил пару выводов на вход (для поиграть). Не хватает выводов ± на выходе, что бы "меню" листать.
А может то что есть со временем допилю, если до "меню" руки дойдут, тоже как вариант с пред загрузками.

[spoiler]
Энкодер.jpg

Выходы:
pos_enc - позиция энкодера (диапазон от -65536 до 65535, счёт идёт постоянно при вращении энкодера)
my_var - значения определенные границами параметра min_var, max_var. (например от 0 до 100, или от -100 до 100)
Short_press - короткое нажатие; (менее 2сек), на выходе короткий импульс.
Long_press - длинное нажатие. (более 2сек), на выходе короткий импульс.
===================================================================
Параметры:
PIN - вывод подключения кнопки энкодера.
Таймер - используемые таймеры STM32(TIM1 - TIM14).
Выводы энкодера для подключения к:
TIM2 - PA0, PA1.
TIM3 - PA6, PA7,
TIM4 - PB6, PB7,
TIM1 - PA8, PA9.
===================================================================
dir(Bytte) - установка значения шага на щелчёк.(например 1)
min_var, max_var - предельные границы выхода my_var. (например 0 и 100 или -100 и 100)
Внимание: обязательно припаять между контактами CLK и GND, DT и GND энкодера конденсаторы 100нф для устранения дребезга.
подключить подтягивающие резисторы на контакты энкодера с "+" питания МК.
Кнопка подключается относительно минуса МК, подтягивающий резистор настроен.
==================================================================================
Входы (часть из них тестовые)
==================================================================================
en_enc - разрешающий работу вход (1-разрешение, 0-запрет)
Set - установка предварительного значения, настроенна на короткое нажатие кнопки. Значение должно быть в пределах min_var, max_var
Reset - установка нулевого значения, настроенно на длиное нажатие кнопки. Значение должно быть в пределах min_var, max_var

[/spoiler]
.
STM32encoder_Plus_help_(Code_-_Basic).ubi
.
Энкодер_001.flp
.
P.s.
Прикрепил "+" и "-" к блоку энкодера. Вроде даже работает.

viewtopic.php?f=231&t=9055&p=130288#p130288