|
Фильтрация данных с энкодера, как уменьшить количество импульсов? |
|
|
|
Mar 20 2012, 15:10
|
Группа: Участник
Сообщений: 12
Регистрация: 16-03-12
Из: Moscow, Russia
Пользователь №: 70 839

|
Здравствуйте! Очень нужна помощь людей, понимающих цифровую схемотехнику. Для замены энкодеров в оборудовании мною были выписаны энкодеры Bourns ECW1J-C24-HC0024L. Код детали расшифровывается в действующем datasheet на энкодеры Борнса: http://bourns.com/data/global/pdfs/ECW1J.pdfE=encoder C=200,000 вращений W=9mm x 1/4" length, threaded M9x0.75 1=SWITCHING CONFIGURATION (In Detent Position) Applies to performance codes B0012 and C0024 only, use code "0" for all other performance codes. D, J=ANTI-ROTATION LUG C=shaft style, то есть вид ручки. 24=длина ручки 3/4" (19mm). H=расположение выводов энкодера и прочие внешние особенности. С0024=perfomance code: detents - 24, cycles per rev. - 24. L=RoHS compliance. Поясню, что энкодер берёт ток с одной ножки и, в связи с тем что внутри вращается кружок с контактными площадками, поочередно замыкающими и размыкающими контакты, на две других ножки выдаются колебания тока с разницей в 90 градусов. Внешним процессором эти импульсы обсчитываются и получается значение, связанное с положением энкодера. Сейчас уже понятно, что следовало заказать энкодер с кодом E0036 или E0024, то есть без арретиров (арретир - механическое приспособление для закрепления чувствительного элемента различных приборов в определённом положении), по-русски без "щелкунчиков". Исходные энкодеры были именно с кодом E00**, то есть без приведения энкодера к определенному положению. К сожалению заказанный энкодер, как оказалось, работает несколько иначе чем ожидалось. Я рассчитывал что энкодер будет выдавать дискретные значения в соответствии с числом арретиров, 24 на оборот, то есть при повороте его получить точное значение будет просто (а это крайне важно). Однако, как оказалось, энкодер между положениями арретира продолжает выдавать импульсы, в связи с чем значения в оборудовании переключаются не по 1, как хотелось бы, а по 3 в одну сторону и по 4 в противоположную. Получить значение +1 можно только если задержать энкодер "между" арретирами, но при любом повороте произойдёт скачок до ближайшего значения (+3/+4). Хотелось бы услышать мнение специалистов, возможна ли какая-либо фильтрация "выхлопа" энкодера, чтобы эти "промежуточные" значения между арретирами отфильтровывались, некое принудителное понижение его "чувствительности"? Впаивание каких-либо конденсаторов-сопротивлений, чтобы на выходы ножек поступал только каждый третий импульс?
|
|
|
|
|
 |
Ответов
|
Mar 20 2012, 16:32
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Дребезг контактных энкодеров присутствует всегда, это неизбежная проблема конструкции. В данном случае речь о том, сколько изменений состояния квадратурного сигнала происходит на каждый щелчок энкодера. Например, насколько я помню, PEC12 и PEC16 дают четыре изменения на щелчок, упомянутые ECW - есть варианты как с четырьмя, так и с одним изменением. У меня есть энкодеры от ALPS, где на щелчок приходилось два изменения (кажется). Все решается дальнейшей обработкой. Если оборудование жестко заточено на определенную схему кодирования, то без внешних костылей обойти не удастся... Цитата(bytie @ Mar 20 2012, 20:24)  А "фильтрация шумов" не сработает? По прилагаемой схеме, напр.? Тут конечно не совсем "дребезг" сигнала... [attachment=66727:Screen20...0_202819.png] Нет. Вообще борьба с шумами и дребезгом посредством аналоговых довесков - путь тупиковый, но в данном случае проблема, как я понимаю, в различии диаграмм. Увы, иного варианта, кроме как собственной обработкой и программным делением результата я не предложу. Ну, или закупать другие энкодеры, тщательно сравнивая "эталон" с тем, что предлагается.
Сообщение отредактировал rx3apf - Mar 20 2012, 16:33
|
|
|
|
|
Mar 20 2012, 16:48
|
Группа: Участник
Сообщений: 12
Регистрация: 16-03-12
Из: Moscow, Russia
Пользователь №: 70 839

|
Цитата(rx3apf @ Mar 20 2012, 20:32)  Дребезг контактных энкодеров присутствует всегда, это неизбежная проблема конструкции. В данном случае речь о том, сколько изменений состояния квадратурного сигнала происходит на каждый щелчок энкодера. Например, насколько я помню, PEC12 и PEC16 дают четыре изменения на щелчок, упомянутые ECW - есть варианты как с четырьмя, так и с одним изменением. У меня есть энкодеры от ALPS, где на щелчок приходилось два изменения (кажется). Все решается дальнейшей обработкой. Если оборудование жестко заточено на определенную схему кодирования, то без внешних костылей обойти не удастся... Ну вот я и спрашиваю про костыли. Я так понял что аналоговым способом эту проблему решить невозможно? Цитата Вообще борьба с шумами и дребезгом посредством аналоговых довесков - путь тупиковый, но в данном случае проблема, как я понимаю, в различии диаграмм. Каких именно диаграмм, можно подробнее? Мне казалось, что если штатный энкодер выдает, к примеру, четыре импульса на "деление" (энкодер без щелчков, E****), то два импульса на деление с точки зрения внешнего контроллера = вдвое меньшая скорость изменения...
|
|
|
|
|
Mar 20 2012, 17:05
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(bytie @ Mar 20 2012, 20:48)  Ну вот я и спрашиваю про костыли. Я так понял что аналоговым способом эту проблему решить невозможно? Невозможно. Цитата Каких именно диаграмм, можно подробнее? Мне казалось, что если штатный энкодер выдает, к примеру, четыре импульса на "деление" (энкодер без щелчков, E****), то два импульса на деление с точки зрения внешнего контроллера = вдвое меньшая скорость изменения... Там же в даташите есть картинки - варианты "полный цикл" на щелчок и 1/4 на щелчок. Если устройство считает, что два изменения - это один щелчок, а энкодер дает четыре изменения ("полный цикл") - то увы. Если же, наоборот, взять энкодер с 1/4 цикла на щелчок, то каждый второй щелчок будет пустым. Естественно, если взять энкодер без трещетки, то меняется лишь число шагов на оборот. Удобно ли применение такого энкодера в конкретном устройстве - другой вопрос. Если удобно (или хотя бы приемлемо), то можно попробовать выломать трещетку. Варварство, да...
Сообщение отредактировал rx3apf - Mar 20 2012, 17:07
|
|
|
|
|
Mar 20 2012, 17:31
|
Группа: Участник
Сообщений: 12
Регистрация: 16-03-12
Из: Moscow, Russia
Пользователь №: 70 839

|
Цитата(rx3apf @ Mar 20 2012, 21:05)  Там же в даташите есть картинки - варианты "полный цикл" на щелчок и 1/4 на щелчок. Если устройство считает, что два изменения - это один щелчок, а энкодер дает четыре изменения ("полный цикл") - то увы. Если же, наоборот, взять энкодер с 1/4 цикла на щелчок, то каждый второй щелчок будет пустым.
Я, как и полагается образцовому идиоту, ничего не понимаю. Мне представляется, что приведенные на рисунке 1/4 cycle per detent и full cycle per detent -- это разные варианты поведения энкодера с трещоткой. Если мы говорим о full cycle per detent, то при повороте на одно деление должен выдаваться один полный импульс от замыкания цепи до размыкания? А внешний контроллер должен его подсчитать как изменение на единицу. В то же самое время существующее поведение таково: при повороте на одно деление трещотки значение изменяется на +3 по часовой, а +1 можно получить только задержав энкодер между делениями. Четверть импульса на деление - этого я не понимаю... Что, при повороте на одно деление цепь остается замкнутой? Цитата Естественно, если взять энкодер без трещетки, то меняется лишь число шагов на оборот. Удобно ли применение такого энкодера в конкретном устройстве - другой вопрос. Если удобно (или хотя бы приемлемо), то можно попробовать выломать трещетку. Варварство, да... Именно что в оригинальном варианте был энкодер без трещётки... Выломать - это вариант, конечно, но дело в том что в устройстве таких энкодеров 8, хотелось бы иное решение, не вандальное. Но для целей эксперимента допустимо, конечно.
|
|
|
|
|
Mar 20 2012, 17:45
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(bytie @ Mar 20 2012, 21:31)  Мне представляется, что приведенные на рисунке 1/4 cycle per detent и full cycle per detent -- это разные варианты поведения энкодера с трещоткой. Это разные варианты исполнения. Различие в числе контактных площадок. Цитата Если мы говорим о full cycle per detent, то при повороте на одно деление должен выдаваться один полный импульс от замыкания цепи до размыкания? А внешний контроллер должен его подсчитать как изменение на единицу. Да. Цитата Четверть импульса на деление - этого я не понимаю... Что, при повороте на одно деление цепь остается замкнутой? Четверть _цикла_.Ну да. Т.е. полный цикл проходит за четыре щелчка. Цитата Именно что в оригинальном варианте был энкодер без трещётки... Выломать - это вариант, конечно, но дело в том что в устройстве таких энкодеров 8, хотелось бы иное решение, не вандальное. Но для целей эксперимента допустимо, конечно. А если был без трещетки - то и надо заказывать без трещетки. Попробуйте выломать у одного образца трещетку, если скорость изменения результата будет подходящей, то заказывайте "такой же, но без крыльев" (т.е. без трещетки).
Сообщение отредактировал rx3apf - Mar 20 2012, 17:46
|
|
|
|
Сообщений в этой теме
bytie Фильтрация данных с энкодера Mar 20 2012, 15:10 rx3apf Делается опрос с достаточной частотой, и реализует... Mar 20 2012, 15:16 bytie Изменение программной части невозможно. Mar 20 2012, 15:25 rx3apf Цитата(bytie @ Mar 20 2012, 19:25) Измене... Mar 20 2012, 15:28  MaslovVG Цитата(rx3apf @ Mar 20 2012, 19:28) Тогда... Mar 20 2012, 16:12   bytie Цитата(MaslovVG @ Mar 20 2012, 20:12) Суд... Mar 20 2012, 16:24    MaslovVG Цитата(bytie @ Mar 20 2012, 21:31) Мне пр... Mar 20 2012, 18:10     bytie Цитата(MaslovVG @ Mar 20 2012, 22:10) Нет... Mar 20 2012, 18:33      MaslovVG Цитата(bytie @ Mar 20 2012, 22:33) За пос... Mar 20 2012, 18:45       rx3apf Цитата(MaslovVG @ Mar 20 2012, 22:45) Ну ... Mar 20 2012, 19:28        bytie Цитата(rx3apf @ Mar 20 2012, 22:28) Там в... Mar 21 2012, 06:06         MaslovVG Цитата(bytie @ Mar 21 2012, 10:06) Как ви... Mar 21 2012, 07:12         rx3apf Цитата(bytie @ Mar 21 2012, 10:06) Я дейс... Mar 21 2012, 08:33 alexvu Приведите диаграммы, снимаемые с Вашего энкодера, ... Mar 20 2012, 17:06 bytie ЦитатаЦитатаМне представляется, что приведенные на... Mar 20 2012, 18:01 Plain Проблема явно не в кодере, а в том "оборудова... Mar 21 2012, 06:35 bytie Цитата(Plain @ Mar 21 2012, 09:35) Пробле... Mar 21 2012, 06:55 Plain Ну ладно. Итак, существующие оборудование не умеет... Mar 21 2012, 07:10 bytie Цитата(Plain @ Mar 21 2012, 10:10) Ну лад... Mar 21 2012, 07:23  Plain Цитата(bytie @ Mar 21 2012, 10:23) Как я ... Mar 21 2012, 07:41 VladKot Посмотрите здесь:
http://www.lsicsi.com/pdfs/Data_... Mar 21 2012, 08:34 MaslovVG Цитата(VladKot @ Mar 21 2012, 12:34) Посм... Mar 21 2012, 09:19 muravei Цитата(VladKot @ Mar 21 2012, 11:34) Посм... Mar 21 2012, 18:00 bytie А вот так выглядят внутренности штатного энкодера:... Mar 23 2012, 12:39 Plain Похоже на то, что в штатном нормально замкнутые вы... Mar 23 2012, 14:19 rx3apf Ну к чему высасывать фантазии из пальца ? Штатный ... Mar 23 2012, 14:49 Plain То, что автор ошибся в 5 раз с выбором числа прира... Mar 23 2012, 15:48 rx3apf Да не за поворот же. У него на шаг по четыре дискр... Mar 23 2012, 16:09
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|