Всем привет!
Очень нужна схема декодера для Rotary Encoder…
Нужно преобразовать импусы с энкодера в обыкновенные замыкания контактов, что бы подключить вместо кнопок к Mjoy.. такое возможно?
Очень нужна схема декодера для Rotary Encoder…
Нужно преобразовать импусы с энкодера в обыкновенные замыкания контактов, что бы подключить вместо кнопок к Mjoy.. такое возможно?
Спасибо.
Не совсем понятен вопрос, но само применение Mjoy интересует, сам собираюсь делать. Если есть желаение, пожалуйста свяжитесь по valery_gb(собака)ptline.ru, обсудим эту тему.
С Уважением, Валерий.
К сожаению, я не обладаю достаточными знаниями, что бы самостоятельно что то подобное разработать. я думал что у кого-нибудь есть разработки в этой области..типа Mjoy..
Купил самые простые что бы попробовать.
Схема очень простая… я сделал джойстик на 24 кнопки..
Было бы очень классно ,если можно подключит энкодер так, что бы при повороте в одну сторону на 1 щелчок срабатывала , например, кнопка 1, а в другою сторону кнопка 2..
Дело в том, что все необходимые операции можно легко осуществить программным путем и подключить энкодер непосредственно к микроконтроллеру. В любом случае, для создания электронного интерфейса, нужно знать алгоритм сканирования матрицы кнопок. К сожалению автор не публикует исходный код своей программы, так что изменения могут быть внесены только им. Думаю он мог бы зарезервировать место для, скажем, 4 энкодеров вместо 8 кнопок. Его e-mail адрес опубликован на указанной вами странице. Если есть необходимость, могу предоставить простой алгоритм обработки сигналов энкодера.
Само описание было на Сухой, но сейчас что-то Сухой не работает.
Прикрепленные изображения
Валерий.
P.S. Может схемку набросаете?
Допустим, что справа расположены входы, на которые поочередно подается 0, а внизу выходы, с которых снимается состояние кнопок. Рассмотрим случай когда на линию PD0 подан уровень 0, а на все остальные входы 1. См. схему. Кнопки S4, S7 и S8 нажаты (отмечены зеленым). Каково будет состояние выходов?
2 Matrix:
К сожалению скачать файл не удалось.
2 Boriska:
Примерно этот алгоритм я и имел ввиду. Фактически выполняется логическая операция ИСКЛЮЧАЮЩЕЕ ИЛИ (XOR) над текущим стабильным значением фазы А и предыдущим стабильным значением фазы В (или наоборот), если состояние входов изменилось. Результат операции 1 или 0 соответствует направлению вращения оси энкодера.
Прикрепленные изображения
Без диодов невозможно будет нажимать несколько кнопок одновременно, а конкретно больше 6 штук..
Вот нашёл ссылку на десодер на базе микроконтроллера PIC..автор Leo Lacava.
http://forums.avsim….ing_type=search
Решение интересное, файлик rd-pan16f есть
Есть ещё Redec 0.9
http://hongkongfui.d…ec/redec09b.pdf
Непонятно, какие сигналы появляются на выходе этого декодера. Лео говорит что его декодер выдаёт +5V в покое и GND когда крутишь энкодер.
Пока ещё не паял ничего из этого.. сайт чип-дипа отвалился… да и к тому же не знаю точно какие детальки покупать…
Это фрагмент кода (HT-PICC), который работает у меня на PICе для ввода с энкодера. Энкодер используется PEC12, можно PEC16 или 3315, без разницы. Схема включения проста до безобразия, общий вывод энкодера на землю, сигнальные на 2 входа порта В (у него в PICах есть встроенные подтягивающие резисторы).
volatile signed char Twisted1; #define MIN_STABLE 24 // Кол-во повторов для устранения дребезга (подбирается по вкусу) #define ENC_AB_MASK 0b11000000 // Собственно 2 бита которые соответствуют энкодеру void enc (unsigned char kbd) // на входе текущее состояние порта к которому подключен энкодер { byte_t sample; byte_t debounced; static byte_t prev_sample; static byte_t stable_count; static byte_t prev_debounced; sample = (~kbd & ENC_AB_MASK) >> 6; if (sample != prev_sample) { stable_count = 0; prev_sample = sample; return; } else { if (stable_count < MIN_STABLE) { stable_count++; if (stable_count == MIN_STABLE) { debounced = sample; } else { return; } } else { return; } } if ((debounced & 0x02) && !(prev_debounced & 0x02)) if (debounced & 0x01) Twisted1++; else Twisted1--; prev_debounced = debounced; }Функция вызывается в главном цикле и ей передается считаное значение порта В.
В итоге в переменной Twisted1 имеем число «щелчков» со знаком. Ее можно анализировать в другом месте программы и как-то использовать в своих целях.
У меня она передается через USB в комп, после чего обнуляется, таким образом я имею приращение со знаком в зависимости от направления вращения.
Немного сумбурно, но думаю, разобраться можно.
Всё работает… Когда не крутишь энкодер то контакты на выходе замкнуты.. сопротивление около 100Ом.. когда крутишь — сопротивление подскакивает до 300Ом.. джойстик Mjoy понимает это как отпускание кнопки.. только не всегда.. видимо разрывается не на долго..
Как увеличить время на которое прерывается цепь? впаивание сопротивления не помогает.
Схема вот тут: http://hongkongfui.d…ec/redec09b.pdf
Да, почту получил. Спасибо. К сожалению еще не удалось взглянуть.
У меня имеет место быть несрабатывание.. млжет быть интервал опроса у Mjoy большой?
вороде как я слышал что 10ms.
А сколько импульсов на оборот имеет ваш энкодер? 10ms не так уж много. Как ни как 100 раз в секунду.
Энкодер фирмы bourns , модель PEC12-4220F-S0024.
Следовательно при интервале опроса 10ms за один период произойдет 5 опросов состояния, что вполне достаточно для уверенного распознавания состояния входа.
Формирователи и генераторы импульсов.
КМОП-схемы антидребезга с защитой от статики.
Техдокументация на микросхемы описанные в предыдущей ссылке. (Англ.)
Последние цифры (S0024) — и есть количество импульсов за поворот, в данном случае — 24, а не 12. Цифра 12 в типе означает модификацию и заодно — длину оси. Это что касается именно этого типа энкодера.
страничка энкодеров сайта Bourns.
Да… не доконца изучил документашку
Не могу найти такие микросхемы

В чип и дипе нету MAX 6467-6468.. Какие есть аналоги!?
Был сегодня там.. сказали: » У нас нету информации по аналогам» ..
И что будет если я подключу эти микросхемы прям к выводам энкодера? работать будет? Или подключать уже на конечные выводы?