Энкодер

Пользовательские блоки расширяющие базовый функуионал программы по работе с различными датчиками и энкодерами
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Ingwar
Полковник
Сообщения:1929
Зарегистрирован:28.10.2015{, 22:47}
Репутация:223
Откуда:Ленобласть
Имя:Игорь
Энкодер

#1

Сообщение Ingwar » 04.03.2023{, 22:49}

Еще одна версия энкодера.
На 2ух прерываниях, но не быстрый.
С изменяемым приращением (быстрое вращение прибавляет по 10).
Как поведет себя на других - не знаю (328, stm, rp2040 работает).
Безымянный.png
Безымянный.png (6.48КБ)2099 просмотров
СпойлерПоказать
_set - при подаче "1" значение со входа _inst предустановится на выходе _ou
_inst - число с этого входа при подаче "1" на _set предустановится на выходе _ou
_res - при подаче "1" значение на выходе _ou обнулится

_ou - чило на выходе будет менятся в большую или меньшую сторону при вращении энкодера
u_p - "1" на один цикл на каждый шаг при увеличении
d_n - "1" на один цикл на каждый шаг при уменьшении
_rotat - "1" на один цикл на каждый шаг при вращении в любую сторону
Последний раз редактировалось Ingwar 10.03.2023{, 19:45}, всего редактировалось 3 раза.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

asvhmao
Рядовой
Сообщения:8
Зарегистрирован:15.03.2024{, 00:10}
Репутация:2
Откуда:Краснодар
Имя:сергей

Энкодер

#21

Сообщение asvhmao » 29.04.2024{, 18:19}

aidar_i писал(а):
02.04.2024{, 14:05}
Сделал для себя блок энкодера на библиотеке STM32encoder, выложу сюда, чтобы не создавать тему.
Интересный блок. Работает нормально.
Добавил немного описания от себя, прилепил пару выводов на вход (для поиграть). Не хватает выводов ± на выходе, что бы "меню" листать.
А может то что есть со временем допилю, как до "меню" руки дойдут, тоже как вариант с пред загрузками.
СпойлерПоказать
Энкодер.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
Вложения
STM32encoder_Plus_help_(Code_-_Basic).ubi
(468.22КБ)9 скачиваний
Энкодер_001.flp
(643.36КБ)7 скачиваний

Ответить

Вернуться в «Датчики и энкодеры»