Перейти к содержанию
    

Вот здесь, в самом начале обсуждения, и был приведён правильный алгоритм, и соображения начёт скорости опроса.

Сам я категорически не люблю программных задержек и фильтрации дребезга по времени. Сегодня дребезг один, затра другой. Сегодня енкодер - ручка пользователя о 16 позициях, завтра - мышка какая-нибудь быстробегающая... Поэтому.

Если рассмотреть все фазы енкодера (00 01 10 11) то видно, что последовательность фаз в одну сторону 01320132... в другую 10231023.... Другие переходы (0132-3-2-3-20) есть дребезг. Т.е. нужен fifo на 3 двухбитных числа (1 байт/регистр) и анализ его 64 состояний (всего 2 значимые - шаг влево и шаг вправо). А уже как отслеживать - по прерыванию, поллингом - это каждый сам порешает.

 

Да. Без сомнений, кусок тот самый. Ни в каких модификациях не нуждается. Помнить больше 4 бит смысла нет. Из них только 2 бита во время пребывания снаружи этого кода. Переходы 3-2-3-2-3-2 отлавливаются по 4м битам. Со счётчиком будет происходить +1,-1,+1,-1,+1,-1 - что на конечный результат отрицательно не скажется.

Прошу прощения, если кого-то ввёл в заблуждение... Тема исчерпана...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да. Без сомнений, кусок тот самый. Ни в каких модификациях не нуждается. Помнить больше 4 бит смысла нет. Из них только 2 бита во время пребывания снаружи этого кода. Переходы 3-2-3-2-3-2 отлавливаются по 4м битам. Со счётчиком будет происходить +1,-1,+1,-1,+1,-1 - что на конечный результат отрицательно не скажется.

Прошу прощения, если кого-то ввёл в заблуждение... Тема исчерпана...

Пробую использовать энкодер PEC16 BOURNS. Предварительно заготовленный код не пошел. Решил попробовать упоминаемый код, сбоит. Снял несколько осциллограм. Это с установленными RC цепочками. Без них иголки полноразмерные.

Попробую использовать прерывания, с многократным считыванием в течении 5 мсек для принятия решения о состоянии уровня. Благо, на 4 энкодера и кнопки целая Мега88.

post-2613-1210958840_thumb.jpg

post-2613-1210958858_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вероятнее всего моя рука дрогнула. Т.е. в этом месте, вероятно, ручка энкодера замедлила движение. Привожу фото внутренностей нового PEC16. Обратите внимание на поверхность. Контакты этого энкодера имеют некоторое подобие фиксации. В этом положении они разомкнуты (сигнал =1). На один щелчек одно замыкание каждого контакта. Который, впрочем, может остаться замкнутым в новом фиксированном положении. Программа должна выдавать один импульс при переходе из одного фиксированного положения в другой.post-2613-1211006077_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На один щелчек одно замыкание каждого контакта. Который, впрочем, может остаться замкнутым в новом фиксированном положении.

 

Дык у меня так и было тоже на одном энкодере. Намучался. Имхо, остаться замкнутым - это неправильно. Сколько экземпляров энкодеров Вы юзали? Может, это вообще баг.

Насчет 5мс антидребезга - многовато. Надо бы 2,5 мс.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Смотрел на одном. Но исходя из вида плоскости контактных пластин и конструкции фиксатора, такую ситуацию нельзя исключать. Правда, энкодеры имеют 24 положения на оборот, что, на мой взгляд, много. Оптимально, я думаю, 10-12. Потом сменю, а пока то, что есть. 5 мс - предварительно, исходя из ширины импульса при более, менее разумном вращении. Далее буду уменьшать. И RC цепочки уберу, вероятно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Благо, на 4 энкодера и кнопки целая Мега88.

 

Ну вы даете! Я успешно обрабатываю с помощью ATtiny13 программой из 100 байт. Правда, не покупной энкодер (долгий поиск выявил, что все они - полное говно), а оптрон TCUT1300.

 

 

Так он еще и не оптический?! Выкинуть на помойку немедленно! А я еще удивляюсь, какой у энкодера может быть дребезг...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну так порекомендуйте ортронный по сносной цене.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так он еще и не оптический?! Выкинуть на помойку немедленно!

 

А кнопку на валу тоже сами делаете? :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну вы даете! Я успешно обрабатываю с помощью ATtiny13 программой из 100 байт. Правда, не покупной энкодер (долгий поиск выявил, что все они - полное говно),

Вот так прямо и все ? Что-то не замечал... Видел разок истирание пары позиций в валкодере трансивера от Yaesu, а так - работают годами, без проблем. В некоторых готовых изделиях - бывает пропуск или забывчивость, но совершенно однозначно чисто программная проблема. Тоже, видимо, кто-то посчитал, что раз энкодеры г..., то и утруждать себя правильной обработкой не стоит. А вот если головой подумать (или хоть начало топика прочитать, где как раз все разжевано) - то все получится просто, надежно, и будет работать много лет.

 

а оптрон TCUT1300.

А нахрена ? Еще и оптическую часть городить, юстировать... Оптическая мышь стоит от сотни рублей, вытаскивается сенсор с подсветкой - и вот все готово. Бонусом еще и отдельный оптический кодер на колесико. С трещеткой.

Так он еще и не оптический?! Выкинуть на помойку немедленно!

Разрешите выполнять ?! Вот сейчас прямо бегом все помчались... А кто будет делать трещетку, кнопку на шток ? Кто обеспечит микропотребление ? Предложите что-то оптическое в ту же цену, что изделия от Boirns или ALPS ? Нет ? Тогда, может быть, стоит поумерить категоричность ?

А я еще удивляюсь, какой у энкодера может быть дребезг...

А еще дребезг бывает у кнопок, переключателей и реле. Если драйвер руки.sys настроен правильно - не мешает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если частота опроса 20 Гц, то получится страшно тормозной энкодер. При быстром вращении он будет пропускать шаги - это некомфортно. Нужна частота опроса в 100 раз выше.

Пробовал тут рулёз от Parallax. Там готовая прога шла к нему на 16 квадратурных энкодеров. При

внешнем кварце 8МГц и умножителе на 16 (внутренняя 128МГц) без прерываний обрабатывалось

на ура. Может то же попробуете. Микроконтроллер P8X32A (на имраде 82 грн.).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Видел разок истирание пары позиций в валкодере трансивера от Yaesu, а так - работают годами, без проблем.

И что, это нормально, с неработающей позицией можно продолжать работать?

В некоторых готовых изделиях - бывает пропуск или забывчивость, но совершенно однозначно чисто программная проблема.

Пропуск - это чисто аппаратная проблема.

А нахрена ? Еще и оптическую часть городить, юстировать...

Что там юстировать? Поставил колесо с прорезями и пусть крутится.

А кто будет делать трещетку, кнопку на шток?

Не понял, что за трещетка с кнопкой?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И что, это нормально, с неработающей позицией можно продолжать работать?

Нет. Вот этот как раз случай, когда требуется замена. Вот только я встречался с этим один раз. А так - работают годами, даже там, где используется активно. Более того, механические кодеры использовались даже в компьютерных мышах, а уж там износоустойчивость нужна солидная.

Пропуск - это чисто аппаратная проблема.

Нет. Не всегда, точнее. Зависит от обработки. И есть у меня такое подозрение, что заявления типа "готовые кодеры - г.." происходит как раз из-за непонимания, как надо обрабатывать сигналы таких датчиков. Гордое заявление про программу из 100 байт - тоже. Куда там столько ? Автомат состояний для кодера с дребезгом - этак слов 20-30 программы (AVR). И не пропускает, и лишнего не считает.

Что там юстировать? Поставил колесо с прорезями и пусть крутится.

И каналы должны располагаться с определенным сдвигом, и диск с соотствующим шагом и шириной прорезей. Который еще надо сделать, хоть бы даже напечатав на прозрачной пленке. Но - делать. И это - не самая сложная часть. И уж если нужен дешевый оптический кодер - то оптомышь за сотню рублей гораздо удобнее и надежнее.

Не понял, что за трещетка с кнопкой?

Основная масса механических энкодеров имеет достаточно крупный шаг, причем эти шаги ощущаются тактильно (как, например, колесико мыши), причем у разных изделий - по-разному (скажем, PEC12, PEC16 - довольно мягкие, попадавшиеся мне ALPS - жесткие и четкие, в зависимости от назначения выбирается тот или иной тип). Замена на плавно вращающийся кодер просто недопустима по эргономическим соображениям, это столь же неудобно, как компьютерная клавиатура без клика. Там же, где нужна плавность - и без того обычно применяют оптику. Дело и не только в ресурсе - трудно сделать механический кодер с сотнями импульсов на оборот. А еще у мелких механических кодеров часто есть кнопка на штоке, во многих случаях удобная вещь. И заниматься самодельщиной, изобретая механическую часть самостоятельно - удел радиолюбителей. Для единичного изделия - годится. Для серийного - нет.

Изменено пользователем rx3apf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ради справедливости. Оптические есть с фиксацией или без фиксации, с кнопкой и без, отличие - цена и ресурс. Мне, кстати, больше понравились энкодеры Филипс.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Основная масса механических энкодеров имеет достаточно крупный шаг, причем эти шаги ощущаются тактильно (как, например, колесико мыши)

Так вам он нужен в качестве элемента управления? Я-то думал - как промышленый датчик... Тогда зачем энкодер? Поставьте многопозиционный переключатель и будет вам щасття

И заниматься самодельщиной, изобретая механическую часть самостоятельно - удел радиолюбителей. Для единичного изделия - годится. Для серийного - нет.

:) К счастью, у нас есть конструкорский отдел и механический цех, который умеет точить любые детали, а уж диск с зубьями 1.6 мм - плевое дело.

А что такое самодельщина? Ведь ты тоже что-то делаешь, разрабатываешь какие-то схемы - зачем заниматься самодельщиной, ведь наверняка это уже кто-то делал до тебя, не проще ли это купить? Я знаю одно предприятие, на котором никогда не разрабатываются собственные платы - это такая принципиальная установка руководства. Хотя они занимаются промышленной автоматизацией. Для любого изделия закупается готовая микропроцессортая плата, вставляется в покупной корпус - и все, изделие готово, остается только запрораммировать. В качестве пульта или монитор, или - в последнее время - берется микропроцессорная плата с установленным на ней ЖК дисплеем. То есть, кроме проводов и разъемов -ничего своего. Так что, самодельщина - понятие растяжимое, все зависит от профиля предприятия.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...