Определение направления поворота энкодера

Блок служит для определения направления поворота энкодера. Подключается к блоку Encoder (спасибо автору bulldozzer) с нашего сайта FLProg, который в исходном состоянии имеет значение (0). При вращении энкодера в одну или другую сторону, получаем положительное или отрицательное значение числа. Мой блок при помощи двух компараторов определяет это значение на своём входе, сравнивая его с нулём. В зависимости от результата сравнения выдаётся импульс на выходе С_1 или С_2, который и идёт на выход (+) или (-). Каждый импульс попадает через элемент «ИЛИ» на генератор который через выход (Zero) обнуляет блок энкодера. Если не обнулять блок энкодера то мы получим только первый импульс при положительном или отрицательном вращении энкодера.
Создал этот блок для прокрутки пунктов меню своего проекта. Прекрасно работает с энкодером от компьютерной «мышки». Во время своих экспериментов с различными энкодерами, столкнулся с проблемой двойного импульса на выходе, т.е. при прокрутке, меню перескакивало через один пункт (с 1-го на 3-й). Проблема решилась добавлением делителя на два.


3

Вложения

Автор публикации

не в сети 1 неделя

Сергей Глушенко

782
Комментарии: 15Публикации: 391Регистрация: 04-02-2018

2 комментария к “Определение направления поворота энкодера”

  1. При компиляции выдает ошибки (Не удалось выгрузить библиотеку <<Encoder>>) и (Не найдена библиотека Encoder.h)

    Хотел бы дополнить скринами и скетчем, но к этой записи нельзя делать вложения

    0

Оставьте комментарий

Войти с помощью: