реклама на сайте
подробности

 
 
> MEGA+энкодер
vetbaston
сообщение Sep 19 2006, 05:17
Сообщение #1


Частый гость
**

Группа: Новичок
Сообщений: 80
Регистрация: 21-08-06
Пользователь №: 19 702



Есть MEGA64 и инкрементальный энкодер PEC12-4220F , кто работал с энкодером посоветуйте , как правильно обстучать его? help.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Vladimir_T
сообщение Sep 21 2006, 11:31
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 517
Регистрация: 7-02-06
Пользователь №: 14 073



Еще есть такое решение:
По тику таймерного прерывания заполняется кольцевой буфер. С каждым тиком в буфер засылается значение состояния энкодера. Анализируются элементы массива буфера: при равенстве элементов в массиве, возвращаем код состояния энкодера. Следующее заполнение кольцевого буфера только после обнаружения перекрытия фаз сигналов. Кольцевой буфер на 4-е элемента, частота опроса - 20 Гц.
Go to the top of the page
 
+Quote Post
Kovrov
сообщение Sep 22 2006, 07:10
Сообщение #3


Мастер-фломастер
****

Группа: Свой
Сообщений: 611
Регистрация: 29-12-05
Пользователь №: 12 700



Цитата(Vladimir_T @ Sep 21 2006, 15:31) *
Еще есть такое решение:
По тику таймерного прерывания заполняется кольцевой буфер.

интересно придумано :-) почему только таймерного?
как то вот этот подбор времени тика таймера мне не очень нравиться...
мне кажется эффективней анализировать в буфере данные от внешнего прерывания?


--------------------
Вон ПОПОВ, клоун клоуном, а радио изобрел!!
Go to the top of the page
 
+Quote Post
Леонид Иванович
сообщение Sep 22 2006, 08:30
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 318
Регистрация: 21-07-06
Из: Минск
Пользователь №: 18 986



С чувствительностью энкодера понятно. Я обычно делаю так, чтобы на каждый щелчок приходился один инкремент/декремент. Это как раз и обеспечивает 1х квадратурный декодер. Возможно, в ряде случаев чувствительность энкодера можно уменьшить (например, при путешествиях по меню). Но верно ли это с точки зрения эргономики? Пользователь крутит ручку, слышит щелчок, а ничего не происходит. Что ему делать дальше?

Необходимость "балансировать" бывает при неправильно выбранной фазе энкодера. На каждый механический щелчок энкодер проходит 4 разных электрических состояния. На этом и основаны 4х квадратурные декодеры. Если мы делаем из 4х декодера 1х, то в качестве рабочего можно взять любой из 4-х переходов. Лучше брать тот, который находится ровно посередине между точками механической фиксации.

Что касается обработки энкодера по прерываниям: зачем зря тратить ресурсы, вызывая обработчик на каждом периоде дребезга? Запрещать прерывание на время подавления дребезга - это хорошая идея. Период таймера как раз и будет временем подавления дребезга.


--------------------
Go to the top of the page
 
+Quote Post
Kovrov
сообщение Sep 22 2006, 11:57
Сообщение #5


Мастер-фломастер
****

Группа: Свой
Сообщений: 611
Регистрация: 29-12-05
Пользователь №: 12 700



Цитата(Леонид Иванович @ Sep 22 2006, 12:30) *
Что касается обработки энкодера по прерываниям: зачем зря тратить ресурсы, вызывая обработчик на каждом периоде дребезга? Запрещать прерывание на время подавления дребезга - это хорошая идея. Период таймера как раз и будет временем подавления дребезга.

Могу сказать обратное...
зачем тратить впустую циклы контроллера, обеспечивая задержку для подавления дребезга, и тем самым увеличивать время основного цикла...
да и обработчик прерывания - всего ничего....
а таймер задействовать для этих целей мне откровенно говоря жалко
их и так мало :-)
а если взять прерывание типа PCint (вектор у него ниже) -вообще красота...
А ещё можно к ногам энкодера прицепить конденсатор - тоже не лишнее будет при борьбе с дребезгом..
Ну и что, что прерывание сработает лишний (ненужный) раз - в любом случае это же какое то действие над энкодером.
не лучше ли это действие проанализировать?...
все таки работа по внеш прерыванию - мне кажется более экономной...


--------------------
Вон ПОПОВ, клоун клоуном, а радио изобрел!!
Go to the top of the page
 
+Quote Post
Леонид Иванович
сообщение Sep 22 2006, 21:23
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 318
Регистрация: 21-07-06
Из: Минск
Пользователь №: 18 986



Цитата(Kovrov @ Sep 22 2006, 14:57) *
Могу сказать обратное...
зачем тратить впустую циклы контроллера, обеспечивая задержку для подавления дребезга, и тем самым увеличивать время основного цикла...
да и обработчик прерывания - всего ничего....
а таймер задействовать для этих целей мне откровенно говоря жалко
их и так мало :-)


Спорить здесь не о чем. Каждый из вариантов имеет право на жизнь. Предпочтительный вариант зависит от особенностей конкретного приложения. Бывает, что и таймер остается неприкаянный, бывает что и основному циклу делать нечего, когда программа ждет действий пользователя.

Цитата(Kovrov @ Sep 22 2006, 14:57) *
А ещё можно к ногам энкодера прицепить конденсатор - тоже не лишнее будет при борьбе с дребезгом..


Вот этого делать не стоит - конденсатор резко укоротит жизнь энкодера, так как увеличатся импульсные токи при коммутации. Вот RC-цепочку - это можно. Хотя изящнее бороться с дребезгом программно.


--------------------
Go to the top of the page
 
+Quote Post
Kovrov
сообщение Sep 23 2006, 04:00
Сообщение #7


Мастер-фломастер
****

Группа: Свой
Сообщений: 611
Регистрация: 29-12-05
Пользователь №: 12 700



конечно же спорить не о чем, да мы и не спорим - обычное обсуждение плюсов и минусов
:-)
Цитата(Леонид Иванович @ Sep 23 2006, 01:23) *
Вот этого делать не стоит - конденсатор резко укоротит жизнь энкодера, так как увеличатся импульсные токи при коммутации.

Я вас умоляю ..... :-)
я же не предлагаю от 220 вольт запитывать и конденсатор 1000мкф :-)))
а вот RC цепочка своей постоянной времени может как раз понизить "быстродействие" энкодера...
тогда уж элемент с триггером Шмидта.. -вот что действительно спасет.


--------------------
Вон ПОПОВ, клоун клоуном, а радио изобрел!!
Go to the top of the page
 
+Quote Post
Stas633
сообщение Nov 6 2006, 12:20
Сообщение #8


Частый гость
**

Группа: Свой
Сообщений: 105
Регистрация: 6-01-06
Пользователь №: 12 901



Хочу поделиться результатами опытов с энкодером...

Главное в работе с последним - это борьба с дребезгом. Для борьбы с ним общепринято вводить паузу (задержку) после обнаружения первого изменения уровня (фронта)...

Так я и делал (делал это в прерывании). Но что обраружилось: или происходили ложные срабатывания (если задержка мала) или (при значительном увеличении времени задержки) происходил пропуск срабатываний (при быстром вращении). Оптимальной, но не решившей проблему (возможно из-за свойств конкретного экземпляра энкодера), оказалась задержка в 300мкС, как и советовал ув. 'Леонид Иванович'.

Идея с подключением конденсатора, предложенная 'Kovrov', показалась мне весьма правильной, а проведенный опыт доказал полную состоятельность такого решения.

Таким образом, считаю, что для "победы" над дребезгом контактов, возникающим при работе энкодера, достаточно подключить параллельно выходам энкодера конденсаторы емкостью 0,1...0,15 мкФ (я поставил 0,15). При этом дребезг "пропадает" полностью (задержка не нужна совсем). Срабатывания отрабатываются правильно не зависимо от скорости вращения ручки энкодера.

Удачи!

З.Ы. Подключение конденсатора безусловно снижает надежность конструкции (как минимум из-за введения новых деталей) и для СЕРЬЕЗНЫХ изделий такое решение не является правильным. Однако в бытовых условиях такое решения полностью оправдано.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- vetbaston   MEGA+энкодер   Sep 19 2006, 05:17
- - XsanyaX   Один из сигналов (А или В ) я заводил на внешнее ...   Sep 19 2006, 07:47
|- - Леонид Иванович   Обработка энкодера по прерываниям неудобна, так ка...   Sep 19 2006, 08:25
|- - Kovrov   Цитата(Леонид Иванович @ Sep 19 2006, 12...   Sep 21 2006, 07:18
|- - Леонид Иванович   А какой физический смысл несет переменная "чу...   Sep 21 2006, 09:07
||- - Kovrov   Цитата(Леонид Иванович @ Sep 21 2006, 13...   Sep 21 2006, 15:46
|- - Shurmas   Цитата(Kovrov @ Sep 21 2006, 11:18) пробл...   Sep 21 2006, 09:17
- - psw   Цитата(vetbaston @ Sep 19 2006, 10:17) Ес...   Sep 19 2006, 08:52
|- - Maik-vs   Цитата(psw @ Sep 19 2006, 12:52) здесь ку...   Sep 14 2007, 11:50
|- - qqqqqq   Цитата(Maik-vs @ Sep 14 2007, 17:50)...   Sep 14 2007, 15:17
|- - gte   Цитата(qqqqqq @ Sep 14 2007, 19:17) Да. Б...   May 16 2008, 17:29
|- - 777777   Цитата(gte @ May 16 2008, 21:29) Благо, н...   May 17 2008, 14:19
|- - gte   Ну так порекомендуйте ортронный по сносной цене.   May 17 2008, 19:45
|- - _Pasha   Цитата(777777 @ May 17 2008, 17:19) Так о...   May 18 2008, 06:17
|- - rx3apf   Цитата(777777 @ May 17 2008, 18:19) Ну вы...   May 18 2008, 10:52
|- - 777777   Цитата(rx3apf @ May 18 2008, 14:52) Видел...   May 18 2008, 17:04
|- - rx3apf   Цитата(777777 @ May 18 2008, 21:04) И что...   May 18 2008, 18:03
|- - 777777   Цитата(rx3apf @ May 18 2008, 22:03) Основ...   May 19 2008, 09:09
|- - rx3apf   Цитата(777777 @ May 19 2008, 13:09) Так в...   May 19 2008, 18:51
|- - 777777   Цитата(rx3apf @ May 19 2008, 22:51) Но ес...   May 20 2008, 07:27
|- - gte   Цитата(777777 @ May 20 2008, 11:27) Ты пр...   May 20 2008, 09:06
- - vetbaston   Спасибо всем! Буду пробовать!   Sep 19 2006, 11:12
- - Nikola Kirov   Не невозможно сделат на 2 перервания. Вот я делал....   Sep 19 2006, 11:16
- - Shurmas   советую апноут микрочип AN696 - там схемотехника и...   Sep 19 2006, 11:37
- - xemul   Для устранения дребезга по нескольким входам с оди...   Sep 21 2006, 09:42
|- - Леонид Иванович   Если частота опроса 20 Гц, то получится страшно то...   Sep 21 2006, 12:09
||- - Vladimir_T   Цитата(Леонид Иванович @ Sep 21 2006, 15...   Sep 22 2006, 04:48
|||- - qqqqqq   Цитата(Vladimir_T @ Sep 22 2006, 10:48) Э...   Sep 13 2007, 12:08
||- - sitafern   Цитата(Леонид Иванович @ Sep 21 2006, 15...   May 18 2008, 11:23
||- - Леонид Иванович   Цитата(sitafern @ May 18 2008, 14:23) Про...   May 20 2008, 09:03
- - _artem_   Наверно загадочность заключается в том что : - при...   Sep 21 2006, 17:34
- - _artem_   Если нужно несколько таймеров а возиться неохота ...   Sep 22 2006, 09:25
- - Kovrov   0.15 это очень много... попробуйте использовать ин...   Nov 7 2006, 07:13
- - 676038   Перечитал эту ветку и хочу предложить свой алгорит...   Dec 6 2006, 13:28
|- - wired   Цитата(676038 @ Dec 6 2006, 16:28) Перечи...   Jun 17 2008, 11:06
|- - 676038   Цитата(wired @ Jun 17 2008, 17:06) взял з...   Jun 17 2008, 13:45
||- - wired   Цитата(676038 @ Jun 17 2008, 16:45) Я счи...   Jun 17 2008, 14:11
|- - Палыч   Цитата(wired @ Jun 17 2008, 14:06) взял з...   Jun 17 2008, 14:51
|- - wired   Цитата(Палыч @ Jun 17 2008, 17:51) Достал...   Jun 17 2008, 15:01
|- - 676038   Цитата(wired @ Jun 17 2008, 21:01) но на ...   Jun 17 2008, 15:09
||- - 676038   Цитата(676038 @ Jun 17 2008, 21:09) Добав...   Jun 17 2008, 15:12
||- - Палыч   Цитата(676038 @ Jun 17 2008, 18:12) Может...   Jun 17 2008, 15:32
|- - Палыч   Цитата(wired @ Jun 17 2008, 18:01) но на ...   Jun 17 2008, 15:09
|- - wired   Цитата(Палыч @ Jun 17 2008, 18:09) Чего и...   Jun 18 2008, 07:54
- - Kovrov   ничего не упустилию просто процессор лишний раз па...   Dec 6 2006, 19:58
- - aforestman   Посмотрите на "хвостатый экодер". Может ...   Dec 8 2006, 13:39
- - OlegIvanov   Нарисуйте на бумажке работу энкодера и сгенерируйт...   Dec 13 2006, 05:15
- - _Pasha   Ниасилил выделенный участок осциллограммы. Что это...   May 17 2008, 05:04
|- - gte   Вероятнее всего моя рука дрогнула. Т.е. в этом мес...   May 17 2008, 06:34
|- - _Pasha   Цитата(gte @ May 17 2008, 09:34) На один ...   May 17 2008, 07:21
- - gte   Смотрел на одном. Но исходя из вида плоскости конт...   May 17 2008, 07:51
- - gte   Ради справедливости. Оптические есть с фиксацией и...   May 19 2008, 05:15
- - 676038   В своем последнем варианте - по изменению состояни...   Jun 17 2008, 15:48
|- - Maik-vs   Цитата(676038 @ Jun 17 2008, 19:48) Прост...   Jun 18 2008, 09:41
||- - wired   Цитата(Maik-vs @ Jun 18 2008, 12:41)...   Jun 18 2008, 11:36
||- - Maik-vs   Цитата(wired @ Jun 18 2008, 15:36) какое ...   Jun 18 2008, 14:33
||- - wired   Цитата(Maik-vs @ Jun 18 2008, 17:33)...   Jun 18 2008, 15:01
||- - wired   Цитата(Maik-vs @ Jun 18 2008, 17:33)...   Jun 23 2008, 06:39
||- - Maik-vs   Цитата(wired @ Jun 23 2008, 10:39) я прав...   Jun 26 2008, 12:46
||- - wired   Цитата(Maik-vs @ Jun 26 2008, 15:46)...   Jun 26 2008, 14:48
|- - Палыч   Цитата(676038 @ Jun 17 2008, 18:48) Прост...   Jun 18 2008, 12:47
|- - gte   Цитата(Палыч @ Jun 18 2008, 16:47) грамоз...   Jun 18 2008, 12:58
|- - Палыч   Цитата(gte @ Jun 18 2008, 15:58) При испо...   Jun 18 2008, 13:10
- - gte   Именно такой. Я смотрел анализатором переключая по...   Jun 18 2008, 13:19
|- - Палыч   Посмотрел DS. В нём есть рисунок "Quadrature ...   Jun 18 2008, 14:25
|- - gte   Цитата(Палыч @ Jun 18 2008, 18:25) Посмот...   Jun 18 2008, 15:14
- - ozzy   Цитата(wired @ Jun 18 2008, 14:36) ... и...   Jun 20 2008, 20:37
- - haker_fox   Использую датчики от мышки для управления двигател...   Jun 24 2008, 03:33
- - tremor   Читать всю тему влом, поэтому просто приведу свой ...   Jun 24 2008, 18:08
|- - haker_fox   Цитата(tremor @ Jun 25 2008, 03:08) PEC16...   Jun 25 2008, 01:44
- - tremor   ЦитатаТолько вряд ли он выдержит вращения на высок...   Jun 25 2008, 01:54
|- - haker_fox   Цитата(tremor @ Jun 25 2008, 10:54) В ДШ ...   Jun 25 2008, 04:27
- - sansnotfor   мой вариант. энкодер опрашиваю в прерывании таймер...   Nov 12 2008, 09:51
- - Genadi Zawidowski   Ух ты... А тема ещй жива... Попробую предложиьть и...   Nov 13 2008, 16:41
- - Andrew O. Shadoura   Добавлю немного в копилку. Знаю, не самый лучший в...   Nov 15 2008, 12:41
- - Павлик   Приложу свою первую подпрограмку для работы с Энк...   Nov 15 2008, 14:14
- - sansnotfor   оооо... заметил, что мой код можно сократить в это...   Nov 21 2008, 06:43


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 11:26
Рейтинг@Mail.ru


Страница сгенерированна за 0.01514 секунд с 7
ELECTRONIX ©2004-2016