roboforum.ru

Технический форум по робототехнике.

кто-нибудь встречал такие энкодеры?

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

кто-нибудь встречал такие энкодеры?

Сообщение hadok » 19 июн 2010, 16:44

Изображение кто-нибудь встречал подобные энкодеры и инфу по ним?
В основном меня интересует есть ли в нём определение направления вращения...ну и распиновка
Аватара пользователя
hadok
 
Сообщения: 166
Зарегистрирован: 06 июн 2005, 02:27
Откуда: Минск, Лида

Re: кто-нибудь встречал такие энкодеры?

Сообщение Duhas » 19 июн 2010, 16:55

если выводов 3, то есть, средний скорее всего общий.. а крайние на него коммутируются по очереди
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: кто-нибудь встречал такие энкодеры?

Сообщение hadok » 19 июн 2010, 16:57

я наверное сам нашёл ответ на вопрос о направлении [ссылка почищена, в ней вирус] , а вот распиновки или datasheeta нету нигде....
Последний раз редактировалось hadok 19 июн 2010, 16:59, всего редактировалось 1 раз.
Аватара пользователя
hadok
 
Сообщения: 166
Зарегистрирован: 06 июн 2005, 02:27
Откуда: Минск, Лида

Re: кто-нибудь встречал такие энкодеры?

Сообщение =DeaD= » 19 июн 2010, 16:58

Модератор "=DeaD=":Почистил ссылку, там вирусня была.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: кто-нибудь встречал такие энкодеры?

Сообщение hadok » 19 июн 2010, 17:10

да-да....я сам только что заметил....

Добавлено спустя 10 минут 17 секунд:
Кому интересно вот, что я нашёл
Изображение
Рис. 1. Принцип работы энкодера


Рассмотрим, как же устроен энкодер. На рисунке 1 показано устройство простого механического энкодера. Как видно из рисунка, основой энкодера является диск из изоляционного материалла закрепленный на оси, на которую и насаживается рукоятка для ее вращения. По периметру диска равномерно расположены специальные прорези. Прорези делят всю окружность на несколько (обысно 6-8) равных секторов. Причем ширина прорезей равня ширине промежутков между ними. Кроме того, имеется две группы контактов, которые установлены таким образом, что при вращении диска они то замыкаются попав в прорезь, то размыкаются в промежутке между прорезями. Очень важно расположение этих пар контактов относительно прорезей. Контакты расположены таким образом, что в тот момент, когда одна пара находится на краю какой либо прорези, вторая пара контактов находится ровно посредине между двумя соседними прорезями. Именно такое расположение и показано на рисунке. В результате реализуется следующий порядок замыкания/размыкания контактов:
1.Замыкается первая группа контактов
2.Замыкается вторая группа контактов
3.Размыкается первая группа контактов
4.Размыкается вторая группа контактов
5.Все повторяется сначала.

Изображение
Рис. 2. Схема энкодера

Изображение
Рис. 3. Диаграмма работы

На рисунке 2 приведена внутренняя электрическая схема простого механического энкодера. Энкодер имеет всего три вывода (что делает его еще больше похожим на переменный резистор). Нижний по схеме вывод - общий для обеих пар контактов. В результате, при вращении рукоятки энкодера на выходе мы получим две последовательности импульсов. При равномерном вращении в одну сторону это будут два меандра, сдвинутых по фазе на 90 градусов. Для наглядности этот процесс показан на рисунке 3. Как микроконтроллер определяет угол поворота оси энкодера надеюсь понятно. Он просто подсчитывает число импульсов. Причем можно считать импульсы приходящие от любй из группы контактов. Основной фокус - как определить направления вращения. Как раз тут и помогает последовательность замыкания и размыкания контактов. При вращении оси энкодера в одну из сторон каждый раз, когда первая группа контактов переходит из замкнутого состояния в разомкнутое, вторая группа контактов оказывается замкнута. Причем момент перехода первой группы приходится как раз на середину отрезка времени, когда вторая группа замкнута. То есть, дребезг уже закончился и все переходные процессы улеглись. При вращении в другую сторону порядок размыканий и замыканий сменяется на обратный. Поэтому в момент, когда первая группа контактов переходит из замкнутого состояния в разомкнутое, вторая группа всегда оказывается разомкнута. Именно по этому факту микроконтроллер и определяет направление вращения.


Изображение
Рис. 4. Схема подключения энкодера к микроконтроллеру

а рисунке 4 показана схема подключения энкодера к микроконтроллеру. Корнтакты энкодера подключаются таким же образом, как подключается простая отдельная кнопка (см. статью "Подключение кнопок"). Линии порта PD2 и PD3 должны быть настроены как входы и внутренний нагрузочный резистор на обоих входах должен быть включен. Подробнее о настройке линий порта и внутренних нагрузочных резисторах читайте в упомянутой выше статье "Подключение кнопок". Общий вывод энкодера, как видно из схемы, подключается к общему проводу всего устройства.

Программа обработки сигнала от энкодера предельно проста. Обратите внимание, что на схеме (рис. 4) для подключения энкодера выбраны линии PD2 и PD3. И это не случайно. В микроконтроллере ATtiny2313 альтернативной функцией этих выводов является функция входов внешнего прерывания INT0 и INT1. Для работы с энкодером как раз и используется одно из этиз прерываний. Например, можно использовать прерывание по внешнему входу INT0. То есть по входу PD2 (вывод 6). Из чего же состоит программа? Ну, во первых, сначала нужно разрешить прерывание по INT0. Причем необходимо выбрать такой режим, когда прерывание происходит по фрону (или спаду) импульса на этом входе. Ну а затем еще нужна простейшая подпрограммка обработки этого прерывания. Эта подпрограммка должна просто проверять значение линии порта PD3 и в зависимости от того, равно оно нули либо единице уменьшать либо увеличивать регулируемое значение.
Аватара пользователя
hadok
 
Сообщения: 166
Зарегистрирован: 06 июн 2005, 02:27
Откуда: Минск, Лида

Re: кто-нибудь встречал такие энкодеры?

Сообщение Duhas » 19 июн 2010, 17:10

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

и снимаем сигналы...
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: кто-нибудь встречал такие энкодеры?

Сообщение hadok » 19 июн 2010, 17:11

Duhas писал(а):ну там нечего особо говорить то о нем... средний к + или к земле, остальные резюками к земле или плюсу...

и снимаем сигналы...
- остаётся добавить см. рисунок 4
Аватара пользователя
hadok
 
Сообщения: 166
Зарегистрирован: 06 июн 2005, 02:27
Откуда: Минск, Лида

Re: кто-нибудь встречал такие энкодеры?

Сообщение Duhas » 19 июн 2010, 17:35

ай ай не видел изменений )
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович


Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0