Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Общетехнические вопросы

Общетехнические вопросы Общие вопросы аналоговой и цифровой электроники.

Ответ
 
Опции темы Опции просмотра
Старый 27.09.2010, 18:23   #1
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: Московская область
Возраст: 60
Сообщений: 2,624
Вес репутации: 3612/107
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Обработка сигнала механического энкодера

Применяю такой энкодер для ввода данных: http://www.platan.ru/pdf/datasheets/bourns/pec12.pdf

В связи с этим хотелось бы некоторых советов по алгоритму обработки. Применял разные варианты, однако сбойные ситуации (пропуски в основном) все таки проскакивают.
Дело в том, что в отличие от кнопок, можно очень медленно поворачивать вал и возникает длинный дребезг. Скорее всего это решается как то стандартно, однако я не нашел и не додумался... Пока не додумался...
Спасибо.
Марк вне форума   Ответить с цитированием
Старый 27.09.2010, 18:51   #2
Filya44
Senior Member
 
Аватар для Filya44
 
Регистрация: 21.09.2008
Сообщений: 284
Вес репутации: 191/44
Filya44 has a spectacular aura aboutFilya44 has a spectacular aura about
По умолчанию Re: Обработка сигнала механического энкодера

А может емкость попробовать?
Filya44 вне форума   Ответить с цитированием
Старый 27.09.2010, 19:00   #3
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: Московская область
Возраст: 60
Сообщений: 2,624
Вес репутации: 3612/107
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: Обработка сигнала механического энкодера

Емкость ставят при известном и НЕБОЛЬШОМ дребезге...
Марк вне форума   Ответить с цитированием
Старый 27.09.2010, 19:10   #4
vitalka
Super Moderator
 
Аватар для vitalka
 
Регистрация: 19.03.2007
Адрес: Львов
Возраст: 44
Сообщений: 3,334
Вес репутации: 2341/103
vitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond reputevitalka has a reputation beyond repute
По умолчанию Re: Обработка сигнала механического энкодера

если дребезг по частоте выше, чем полезный сигнал,
то можно легко програмно отсеивать все импульсы, идущие чаще определенного порога
vitalka вне форума   Ответить с цитированием
Старый 27.09.2010, 19:15   #5
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 42
Сообщений: 3,577
Вес репутации: 4386/125
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Обработка сигнала механического энкодера

Цитата:
Сообщение от Марк Посмотреть сообщение
Емкость ставят при известном и НЕБОЛЬШОМ дребезге...
Так вал же не может разогнаться моментально. Следовательно быстрые импульсы при медленных оборотах нужно отсекать.
Плюс соседние импульсы имеют соизмеримую длительность, а дребезг хаотичен.
tester вне форума   Ответить с цитированием
Старый 27.09.2010, 19:35   #6
Контур
Senior Member
 
Регистрация: 28.02.2009
Возраст: 57
Сообщений: 217
Вес репутации: 210/44
Контур has a spectacular aura aboutКонтур has a spectacular aura aboutКонтур has a spectacular aura about
По умолчанию Re: Обработка сигнала механического энкодера

http://www.mirmk.net/content/view/84/29/
Контур вне форума   Ответить с цитированием
Старый 27.09.2010, 20:09   #7
Greg
Super Moderator
 
Регистрация: 25.02.2007
Адрес: Moscow, ODBS
Сообщений: 6,887
Вес репутации: 5611/171
Greg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond repute
По умолчанию Re: Обработка сигнала механического энкодера

Цитата:
Сообщение от Марк Посмотреть сообщение
Применяю такой энкодер для ввода данных: http://www.platan.ru/pdf/datasheets/bourns/pec12.pdf

В связи с этим хотелось бы некоторых советов по алгоритму обработки. Применял разные варианты, однако сбойные ситуации (пропуски в основном) все таки проскакивают.
Дело в том, что в отличие от кнопок, можно очень медленно поворачивать вал и возникает длинный дребезг. Скорее всего это решается как то стандартно, однако я не нашел и не додумался... Пока не додумался...
Спасибо.
а что такое быстро и "очень медленно"? просто с "медленно" проблем не было
Greg вне форума   Ответить с цитированием
Старый 27.09.2010, 20:57   #8
alexem
Senior Member
 
Аватар для alexem
 
Регистрация: 08.03.2008
Адрес: Самара
Возраст: 46
Сообщений: 498
Вес репутации: 392/50
alexem is just really nicealexem is just really nicealexem is just really nicealexem is just really nice
По умолчанию Re: Обработка сигнала механического энкодера

Цитата:
Сообщение от Марк Посмотреть сообщение
Применяю такой энкодер для ввода данных: http://www.platan.ru/pdf/datasheets/bourns/pec12.pdf

В связи с этим хотелось бы некоторых советов по алгоритму обработки. Применял разные варианты, однако сбойные ситуации (пропуски в основном) все таки проскакивают.
Дело в том, что в отличие от кнопок, можно очень медленно поворачивать вал и возникает длинный дребезг. Скорее всего это решается как то стандартно, однако я не нашел и не додумался... Пока не додумался...
Спасибо.
Может просто "лежалый на складе" попался? Разобрать и Contact Cleanerом побрызгать имеешь возможность? Я такой давным давно от СВЧ печки использовал в связке еще с 16F628 и на асме... ничего подобного не замечал. Да, и о реализации. От сигнальных выводов через 2 диода заводил на INT0. По прерыванию вводил задержку на дребезг и потом, собственно, принимал решение... Давно это было, может и неправильно, но работало замечательно.
alexem вне форума   Ответить с цитированием
Старый 27.09.2010, 21:20   #9
quarry
Senior Member
 
Аватар для quarry
 
Регистрация: 28.03.2007
Адрес: РБ Минск
Сообщений: 237
Вес репутации: 234/51
quarry has a spectacular aura aboutquarry has a spectacular aura aboutquarry has a spectacular aura about
По умолчанию Re: Обработка сигнала механического энкодера

инкодеры для того и делают что бы забить на дребезг
меняете алгоритм
quarry вне форума   Ответить с цитированием
Старый 27.09.2010, 21:27   #10
alexem
Senior Member
 
Аватар для alexem
 
Регистрация: 08.03.2008
Адрес: Самара
Возраст: 46
Сообщений: 498
Вес репутации: 392/50
alexem is just really nicealexem is just really nicealexem is just really nicealexem is just really nice
По умолчанию Re: Обработка сигнала механического энкодера

Цитата:
Сообщение от quarry Посмотреть сообщение
инкодеры для того и делают что бы забить на дребезг
меняете алгоритм
ээээ... Уважаемый! Он механический!!!
alexem вне форума   Ответить с цитированием
Старый 27.09.2010, 21:34   #11
quarry
Senior Member
 
Аватар для quarry
 
Регистрация: 28.03.2007
Адрес: РБ Минск
Сообщений: 237
Вес репутации: 234/51
quarry has a spectacular aura aboutquarry has a spectacular aura aboutquarry has a spectacular aura about
По умолчанию Re: Обработка сигнала механического энкодера

Цитата:
Сообщение от alexem Посмотреть сообщение
ээээ... Уважаемый! Он механический!!!
и шо? да хоть из навоза.
закономерность есть? отслежаванию поддаёцца?
quarry вне форума   Ответить с цитированием
Старый 27.09.2010, 22:52   #12
DL36
Senior Member
 
Регистрация: 25.02.2007
Адрес: Херсон
Сообщений: 3,642
Вес репутации: 1983/102
DL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant future
По умолчанию Re: Обработка сигнала механического энкодера

На телесистемах полтора два года назад обсасывали проблему энкодера, все возможные ситуации, был результирующий код.
DL36 вне форума   Ответить с цитированием
Старый 27.09.2010, 23:41   #13
alexem
Senior Member
 
Аватар для alexem
 
Регистрация: 08.03.2008
Адрес: Самара
Возраст: 46
Сообщений: 498
Вес репутации: 392/50
alexem is just really nicealexem is just really nicealexem is just really nicealexem is just really nice
По умолчанию Re: Обработка сигнала механического энкодера

Цитата:
Сообщение от quarry Посмотреть сообщение
и шо? да хоть из навоза.
закономерность есть? отслежаванию поддаёцца?
А надо?
У ремонтников спросите. Или у хозяев муз. центров в составе которых имеются подобные энкодеры (повторюсь: контактные).
alexem вне форума   Ответить с цитированием
Старый 28.09.2010, 08:23   #14
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: Московская область
Возраст: 60
Сообщений: 2,624
Вес репутации: 3612/107
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: Обработка сигнала механического энкодера

О как... Спасибо, господа, за живое участие.
Энкодеры вроде вполне "свежие". Куплены в Платане.
Все посты прочел.
Немного о своем варианте. Возможно вскроется очевидный косяк.
Я поставил эту приблуду на индикаторный блок некоего устройства.
Контроллер PIC18F25K20. Индикатор TIC234. Упомянутый энкодер со встроенной кнопкой (осевое нажатие). И УСАРТ для обмена с этим неким устройством.
Так как все три внешних прерывания в контроллере остались свободны, я решил "с жиру" на них и повесить энкодер с кнопкой.
Нулевой интеррапт на кнопку, а первый и второй на энкодер. Общий пин энкодера (и один вывод кнопки) на землю и все прерывания подтянул к питанию. Соответственно все входы прерываний получили активный низкий в соответствующих битах в своих контрол-регистрах.
Алгоритм был такой.
При входе в одно из двух прерываний проверяется "соседний" пин.
Если на нем пассивный уровень, то запрещаем сработавшее прерывание и выходим. Если на "соседе" активный (низкий), то снова запрещаем сработавшее, производим инкремент/декремент ( в зависимости от номера сработавшего вторым прерывания) объекта регулировки и выходим. Разрешаем оба прерывания только после некоторого числа проходов суперлупа с пассивными (высокими) уровнями на обоих пинах прерываний.
Такая вот "перекрестная" обработка. Однако очень редко(крайне редко) происходит несброс в суперлупе. И все замирает. И иногда (тоже нечасто) несрабатывает при повороте. Возможно я ошибаюсь с причиной. И дело не в медленном, а наоборот в быстром вращении. Или причина в недоворотах между фиксациями и возвратах на прежнюю позицию...
ЗЫ. To DL36. Телесиси пока не читал. Найду - прочту. Спасибо.
Марк вне форума   Ответить с цитированием
Старый 28.09.2010, 09:27   #15
DL36
Senior Member
 
Регистрация: 25.02.2007
Адрес: Херсон
Сообщений: 3,642
Вес репутации: 1983/102
DL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant future
По умолчанию Re: Обработка сигнала механического энкодера

Цитата:
Сообщение от Марк Посмотреть сообщение
Телесиси пока не читал. Найду - прочту. Спасибо.
Смысл прямой там Леонид Иванович и компания общались. Недавно ссылка на сахаре была, вопрос был по поводу кода.
DL36 вне форума   Ответить с цитированием
Старый 28.09.2010, 09:44   #16
quarry
Senior Member
 
Аватар для quarry
 
Регистрация: 28.03.2007
Адрес: РБ Минск
Сообщений: 237
Вес репутации: 234/51
quarry has a spectacular aura aboutquarry has a spectacular aura aboutquarry has a spectacular aura about
По умолчанию Re: Обработка сигнала механического энкодера

прерывания это хорошо, если пользовать правильно

но ещё не стоит забывать старый дедовский способ работающий на всех МК
кладёте состояние линий в младшие два бита с нужным периодом
и получаете последовательность чисет 2,3,1,0 в одну сторону и 0,1,3,2 в другую
её и отслеживаете
если уж очень дребезжать станет, один шаг вперёд/назад игнорируйте.
и будет вам счастье.
quarry вне форума   Ответить с цитированием
Старый 29.09.2010, 01:39   #17
Вова
Senior Member
 
Регистрация: 20.09.2008
Адрес: Гродно, Беларусь
Возраст: 32
Сообщений: 1,680
Вес репутации: 1971/76
Вова has a brilliant futureВова has a brilliant futureВова has a brilliant futureВова has a brilliant futureВова has a brilliant futureВова has a brilliant futureВова has a brilliant futureВова has a brilliant futureВова has a brilliant futureВова has a brilliant futureВова has a brilliant future
По умолчанию Re: Обработка сигнала механического энкодера

Цитата:
кладёте состояние линий в младшие два бита с нужным периодом
и получаете последовательность чисет 2,3,1,0 в одну сторону и 0,1,3,2 в другую
её и отслеживаете
А у вас такой алгоритм стабильно работает? Когда-то именно так написал, но были ложные срабатывания примерно раз на 100-200, от которых так и не удалось избавится. Правда игрался с "энкодером" от мыши, может в этом дело. Хотя в любой мыши всегда обработка чёткая..
Вова вне форума   Ответить с цитированием
Старый 29.09.2010, 14:42   #18
quarry
Senior Member
 
Аватар для quarry
 
Регистрация: 28.03.2007
Адрес: РБ Минск
Сообщений: 237
Вес репутации: 234/51
quarry has a spectacular aura aboutquarry has a spectacular aura aboutquarry has a spectacular aura about
По умолчанию Re: Обработка сигнала механического энкодера

работает как гвоздь, вы же можете делать инкремент/декремент не по переходу от одной цифры к другой, а по трём, четырём а то и пяти переходам. этот метод использовал как раз для механических инкодеров
чтобы не проводить всю жизнь в прерываниях.
А вот с оптическими где 2000 имп/обр там по прерыванию делал, чтобы успевать.
А когда надо было ещё быстрее сделал на двух тригерах простую схемку выделяющую импульсы по направлению и завёл на счётчики.
quarry вне форума   Ответить с цитированием
Старый 29.09.2010, 16:01   #19
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: Московская область
Возраст: 60
Сообщений: 2,624
Вес репутации: 3612/107
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: Обработка сигнала механического энкодера

Цитата:
Сообщение от quarry Посмотреть сообщение
......чтобы не проводить всю жизнь в прерываниях.
...........
Ну Вы пессимист, однако...
Марк вне форума   Ответить с цитированием
Старый 29.09.2010, 21:13   #20
Вова
Senior Member
 
Регистрация: 20.09.2008
Адрес: Гродно, Беларусь
Возраст: 32
Сообщений: 1,680
Вес репутации: 1971/76
Вова has a brilliant futureВова has a brilliant futureВова has a brilliant futureВова has a brilliant futureВова has a brilliant futureВова has a brilliant futureВова has a brilliant futureВова has a brilliant futureВова has a brilliant futureВова has a brilliant futureВова has a brilliant future
По умолчанию Re: Обработка сигнала механического энкодера

Цитата:
Сообщение от quarry Посмотреть сообщение
работает как гвоздь, вы же можете делать инкремент/декремент не по переходу от одной цифры к другой, а по трём, четырём а то и пяти переходам. этот метод использовал как раз для механических инкодеров
Спасибо!
Вова вне форума   Ответить с цитированием
Старый 29.09.2010, 23:17   #21
petrd
Senior Member
 
Регистрация: 09.02.2008
Адрес: Воронеж
Возраст: 48
Сообщений: 1,808
Вес репутации: 2170/82
petrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond repute
Отправить сообщение для petrd с помощью ICQ
По умолчанию Re: Обработка сигнала механического энкодера

Цитата:
Сообщение от DL36 Посмотреть сообщение
На телесистемах полтора два года назад обсасывали проблему энкодера, все возможные ситуации, был результирующий код.
Это? http://530.ru/wwwboards/mcontrol/214...s/600350.shtml
__________________
License MikroC, MikroC PRO and EasyPIC5 by mikroElektronika (the dead mikroICD replaced PICKit2 & PICKit3)
petrd вне форума   Ответить с цитированием
Старый 30.09.2010, 11:58   #22
DL36
Senior Member
 
Регистрация: 25.02.2007
Адрес: Херсон
Сообщений: 3,642
Вес репутации: 1983/102
DL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant future
По умолчанию Re: Обработка сигнала механического энкодера

Цитата:
Сообщение от petrd Посмотреть сообщение
Оно но только половина, первая или вторая. Было начало и продолжение через некое время, приблизительно пол года.
DL36 вне форума   Ответить с цитированием
Старый 03.10.2010, 13:32   #23
picbasic
Junior Member
 
Регистрация: 26.09.2010
Возраст: 38
Сообщений: 6
Вес репутации: 100/0
picbasic will become famous soon enoughpicbasic will become famous soon enough
По умолчанию Re: Обработка сигнала механического энкодера

Делал регулятор мощности с регулировкой на енкодере. Один из выводов заводил на внешнее прерывание RB0 второй на вход RB1.
Прерывание по спаду. Если при срабатывани прерывания на RB1 1 значит в одну сторону +1, если при срабатывании 0 - значит -1, далее делаем необходимую задержку (она-же анти-дребезг) и обнуляем флаг прерывания. У меня работало как часы...

(да, энкодер был механический с кнопкой если память не подводит на 24 позиции)
picbasic вне форума   Ответить с цитированием
Старый 03.10.2010, 18:11   #24
kt3102
Senior Member
 
Регистрация: 20.10.2007
Сообщений: 249
Вес репутации: 204/49
kt3102 has a spectacular aura aboutkt3102 has a spectacular aura aboutkt3102 has a spectacular aura about
По умолчанию Re: Обработка сигнала механического энкодера

-Энкодер не должен выдавать "недопустимое состояние"
Примеры "недопустимого состояния":
=дребезг на обоих выводах (возм при большой скорости- либо следите за скоростью как сказал тестер, либо смжьте ось вакуумной смазкой- забодаются крутить),
=два перехода на одном выводе припостоянном на другом.

-Программа должна корректно обрабатывать "недопустимое состояние"
Пример корр обработки: прибор продолжает работать, а на дисплей выдаётся сообщ: "Ошибка ХХХ. Обратитесь в сервис". Они Вам звонят, Вы выкатываете счёт. Появляются ресурсы для разработки более продвинутого алгоритма обработки и применения более дешёвого энкодера.
kt3102 вне форума   Ответить с цитированием
Старый 26.07.2012, 14:59   #25
siargy
Senior Member
 
Аватар для siargy
 
Регистрация: 03.07.2007
Адрес: Минск
Возраст: 40
Сообщений: 900
Вес репутации: 1351/68
siargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud of
По умолчанию Re: Обработка сигнала механического энкодера

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

Развернул осцилограмму и вывел на свободный вывод мк индикацию входа в прерывание, получается контроллер реагирует на "иголки".
Повесил кондер на выводы энкодера, паралельно замыкающемуся контакту, и все стало четко работать. Единственное смущает что энкодер закорачивает заряженный конденсатор, наверно правильнее подключать дополнительный резистор:


Считаю, что програмно от шума сложно избавиться, каким-нибудь хитрым методом включения-выключения прерываний. RC-цепочка работает проще и стабильнее. Но может я что-то не так делаю?
Миниатюры
enc1.gif   enc2.gif  
__________________
Построил тепличку, посеял литопсы, вырастил кактусы
siargy вне форума   Ответить с цитированием
Ответ

Метки
энкодер


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
цифровая обработка сигнала Ruslan Продукция MICROCHIP 26 18.01.2008 17:11


Часовой пояс GMT +3, время: 10:18.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot