Купить Энкодеры. Устройство и принцип работы по выгодной цене. Энкодеры датчики угловых перемещений и другие измерительные приборы и оборудование в компании Энергопромавтоматика в Москве. На картинке ниже представлен диск энкодера с рисунком растром в формате Грейкода. Диск абсолютного энкодера с растром в коде Грея. Преимуществом Грейкода является также его способность зеркального отображения информации. Так, инвертируя старший бит можно простым образом менять. Для применения кода Грея осталось лишь научиться переводить числа из этой кодировки в обычную и обратно, поскольку типичные процессоры этого не умеют. Эти процедуры достаточно просты я не буду приводить их здесь, поскольку тема весьма популярна, и читатели найдут их без труда. Учебный Курс. Инкрементальный энкодер. Энкодер это всего лишь цифровой датчик угла поворота, не более того. Энкодеры бывают абсолютные сразу выдающие двоичный код угла и инкрементальные, дающие лишь указание на направление и частоту вращения, а контроллер, посчитав импульсы и зная число импульсов на оборот, сам определит положение. Если с абсолютным энкодером все просто, то с инкрементальным бывают сложности. Как его обрабатыватьС Энкодера выходят два сигнала А и В, сдвинутых на 9. А дальше пляшем от типа энкодера. А они бывают разные. Механический. Тебе, скорей всего, в руки попадется либо механический, либо оптический с малой дискретностью. Выдающий, в лучшем случае, пару десятков импульсов на оборот. Устроен он просто две контактные группы замыкаются в нужном порядке в зависимости от вращения. В оптическом же может быть два фонаря и два фотодиода, святящие через диск с прорезями шариковая мышка, ага. Механический подключается совсем просто центральный на землю, два крайних каналы на подтянутые порты. Я, для надежности, подключил внешнюю подтяжку. Инкрементный квадратурный и абсолютный энкодеры. Рассмотрен бинарный рефлексивный код Грея и его применение в датчиках. Описан способ формирования этого кода. Приведены схемы преобразования его в двоичный к. При нейтральном положении ручки с энкодера будут считываться нули. Наваяем простой скетч, считывающий значения с энкодера и показывающий направление вращения. В статье на Википедии приведена функция декодирования двоичного кода Грея в обычный двоичный, которой мы и. Благо мне на Pinboard для этого только парой тумблеров щелкнуть Оптический подключается в зависимости от типа оптодатчика, обычно там стоит два фотодиода с общим анодом. Обычно, все пытаются работать с ними через прерывания INT, но этот метод так себе. Проблема тут в дребезге механические контакты, особенно после длительного пользования, начинают давать сбои и ложные импульсы в момент переключения. А прерывание на эти ложные импульсы все равно сработает и посчитает что нибудь не то. Лучше считать не импульсы, а состояния. Метод прост Подставим нули и единички, в соответствии с уровнем сигнала и запишем последовательность кода. A 0 0 1 1 0 0 1 1 0 0 1 1 0. B 1 0 0 1 1 0 0 1 1 0 0 1 1. Если A и B идут на одни порт контроллера например на APB0 BPB1, то при вращении энкодера у нас возникает меняющийся код 1. Теперь остается только циклически опрашивать наш энкодер сравнивая текущее состояние с новым и на основании этого делающего выводы о вращении. Причем частота опроса должна быть такой, чтобы не пропустить ни одного импульса. Вращать его предпологается вручную и я вряд ли смогу вращать его с космической скоростью, но решил все же замерить. Подключился к осциллографу, крутнул ручку что есть мочи Выжал меньше килогерца. Можно даже реже, будет надежней в плане возможного дребезга. Сейчас, кстати, дребезга почти нет, но далеко не факт что его не будет потом, когда девайсина разболтается. Сам опрос должен быть в виде конечного автомата. Целых два байта Да все дело в том, что у моего энкодера, кроме импульсов есть еще тактильные щелчки. А по моей логике, на один импульс приходится четыре смены состояния, т. Поэтому я считаю до 1. Получаем на выходе один щелочок один тик. Скоростной опрос на прерываниях. Но это механические, с ними можно простым опросом обойтись частота импульсов позволяет. А бывают еще и высокоскоростные энкодеры. Дающие несколько тысяч импульсов на оборот, либо работающие на приводах и вращающиеся очень быстро. Что с ними делать Ускорять опрос занятие тупиковое. Но нас спасает то, что у таких энкодеров, как правило, есть уже свои схемы подавления дребезгов и неопределенностей, так что на выходе у них четкий прямоугольный сигнал правда и стоят они совершенно негуманно. От 5. 00. 0р и до нескольких сотен тысяч. А что ты хотел промышленное оборудование дешевым не бывает. JPG' alt='Энкодер Код Грея' title='Энкодер Код Грея' />Абсолютный энкодер серии EP50. Питание 5 VDC или 12 24 VDC Диаметр выходной оси 8 мм. Внешний диаметр 50 мм. Тип выхода NPN или PNP Код выхода BCD. Бинарный или код Грея Выбор направления вращения по часовой стрелке или против. Загрузить описание pdf, англ. То есть какието отголоски Кода Грея. Подход хорошо и возможно даже более правильный, меньше зависит от конретного энкодера, но меня мучает почемуже тупой подход не работает ловить фронт сигнала, смотрететь на второй пин и понимать куда крутим. Чуть позже выложу. Код Грея система счисления, в которой два соседних значения различаются только в одном разряде. Наиболее часто на практике применяется рефлексивный двоичный код Грея, хотя в общем случае существует бесконечное множество кодов Грея для систем счисления с любым основанием. Энкодеры бывают абсолютные сразу выдающие двоичный код угла и инкрементальные, дающие лишь указание на направление и частоту вращения. И тогда все упрощается неимоверно. Настраиваем всего одно прерывание по внешнему сигналу. Например, INT0 настраиваем так, чтобы сработка шла по восходящему фронту. И подаем на INT0 канал А. Пунктиром показано предполагаемое положение в произвольный момент. Красные стрелки это фронты по которым сработают прерывания при движении либо в одну, либо в другую сторону. Если там высокий уровень делаем 1, если низкий 1 нашему счетному регистру. Энкодер Код Грея' title='Энкодер Код Грея' />
Конечно, можно такой метод прикрутить и на механический энкодер. Но тут надо будет заблокировать прерывания INT0 на несколько миллисекунд. Приказ Мю Рф 199 369 тут. И НИ В КОЕМ СЛУЧАЕ нельзя делать это в обработчике. Алгоритм прерывания с антидребезгом будет выглядеть так Зашли в обработчик INT0 Пощупали второй канал 1 или 1 Запретили локально INT0 Поставили на таймер событие разрешающее INT0 через несколько миллисекунд Вышли из обработчика Сложно Нет, не сложно. Проще сделать банальный опрос, как указано выше и не зависеть от выводов прерываний. Впрочем, хозяин барин.