Вопрос по оптопаре от комп.шариковой мыши
|
|
RA9UBD |
Дата: Ср, 22.06.2011, 09:26 | Сообщение # 1 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
63
Замечания:
±
На сайте с 11.04.2008
Статус:
Offline
|
Доброго времени суток всем!
Есть задача, считывать импульсы с оптопары которая используется в старой шариковой комп. мыши. В общем то со считыванием ипульсов, проблем нет. Только не понятно, как эта оптопара отпеределяет напрвление вращения колёсика с окнами? Я так понимаю там один светодиод, и пара фотодиодов. Видимо кокошки на колёсике так расположенны, что при перемешении, по переменки, перекрываются фотодиоды, т.е. еслиодин перекрыт перемычкой, а другой как раз на против окошка и на него попадает свет, придальнейшем перемещениии на оборот, тот который был перекрыт, становиться на против окошка и на него попадает свет, а другой на который падал свет, перекрывается. Получается что на выходе всегда ипульсы, разной инверсии. Если с одного светодиода лог 0, до с другого тог единица, и наоборот.
Так вот, каким образом оперделить направление вращения? Т.к. при изменении направления перемещения окошек, ситуация не измениться, так же точно на одном светодиоде будет лог 0 а на другом лог 1, и они будут менять без изменения. Или там другая какая то хитрость? Может я не правильно понимаю? Где, можно посмотреть, почитать про принцип работы такой системы? Может быть есть наработки на PIC Basic? Помню, где то в журнале Радио, была статья, типа - Синтезатор частоты для трансивера, и он управлялся как раз колёсиком от мыши и оптопарой от мыши. Там вроде бы было описание принципа работы этой системы. Только там код на ассемблере, но мне не важен код, прога будет на PIC Basic PRO.
А вообще глобальная задача такая, это измерение расстояния, с использованием колёсика от мыши. Т.е. при вращении колёсика, за оперделённое пройдённое расстояние, будет определённое кол-во импульсов, это и будет определять пройденоое расстояние. При перемешении вперёд расстояние увеличиваться, при перемещении назад, расстояние уменьшеться. Измеряться расстояние, будет максимум 5-6 метров, не больше. Точность нужна хотя бы 0,3мм, лучше 0,1мм, для этого возможно сделаем повышающий редуктор, что бы кол-во импульсов было больше, для точности хода. Сама механника меня не интерисует, я за неё ответсвенности не несу, этим будет заниматься другой человек. Моя задача, только электронная часть, с ЖК экраном. Вот загвоздка только с оптопарой...
Заранее спасибо, за любую инфу и советы.
|
|
|
|
MiXaS |
Дата: Ср, 22.06.2011, 10:00 | Сообщение # 2 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
549
Замечания:
±
На сайте с 02.10.2010
Статус:
Offline
|
Quote (RA9UBD) Я так понимаю там один светодиод, и пара фотодиодов Точнее пара фототранзисторов. Quote (RA9UBD) Так вот, каким образом оперделить направление вращения? Дело в том, что стоят два транзистора, когда Вы вращаете энкодер вправо, допустим, то первый транзистор имеет лог 0, а второй лог 1, если врещаете влево, то первый транзистор 1, а второй 0.
Алгиритм следующий: Сначало проверяете направление вращения энкодера, а потом просто считаете импульсы. Например:
Code bak_port= PORTB.1 'запомнить состояние порта энкодера If bak_port=1 And PORTB.1=0 Then 'проверка перепада 1->0 If PORTB.2=1 Then 'проверка направления врашения bak_port= PORTB.1 IF vol=0 Then out_Vol vol=vol -1 Else bak_port= PORTB.1 IF vol=63 Then out_Vol vol=vol +1 EndIf Else bak_port= PORTB.1 EndIf
Это пример без прерывания. Пример с прерыванием почитайте здесь: http://www.picbasic.ru/forum/9-574-1#6581
Quote (RA9UBD) Где, можно посмотреть, почитать про принцип работы такой системы?
Я прикреплю datasheet от механического энкодера, Вам там будут нужно только временные диаграммы для более полного понятия приципа работы. Оптический энкодер или валкодер работает также, только меньше глюков, за счет отсутствия дребезга контактов.
На самом деле ничего сложного в работе такого механизма нет. Желаю удачи!!!
Сообщение отредактировал
MiXaS - Ср, 22.06.2011, 10:07
|
|
|
|
MiXaS |
Дата: Ср, 22.06.2011, 10:03 | Сообщение # 3 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
549
Замечания:
±
На сайте с 02.10.2010
Статус:
Offline
|
Вот цоколёвка фототранзистора
|
|
|
|
MiXaS |
Дата: Ср, 22.06.2011, 10:13 | Сообщение # 4 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
549
Замечания:
±
На сайте с 02.10.2010
Статус:
Offline
|
Нашел у себя пример энкодера с прерыванием. Когда-то тоже интересовал этот вопрос и brown мне в этом помог, за что большое спасибо ему!
Сообщение отредактировал
MiXaS - Ср, 22.06.2011, 10:15
|
|
|
|
brown |
Дата: Ср, 22.06.2011, 21:48 | Сообщение # 5 |
Группа:
Пользователи
Ранг:
Помогаю всем
Сообщений:
333
Замечания:
±
На сайте с 18.09.2007
Статус:
Offline
|
Только в теле прерывания лишних команд не используйте, чтоб быстрей работало! Для регулятора не беда, если импульсы пропускать будет, а вот для измерения расстояния...
Век живи - век учись! К концу жизни поймешь, что ничего не знаешь...
Сообщение отредактировал
brown - Ср, 22.06.2011, 22:20
|
|
|
|
RA9UBD |
Дата: Чт, 30.06.2011, 06:50 | Сообщение # 6 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
63
Замечания:
±
На сайте с 11.04.2008
Статус:
Offline
|
Спасибо за инфу, буду изучать. Добавлено (30.06.2011, 06.50.03) --------------------------------------------- А вот в Протеусе, реально смодулировать отптопару от комп мыши?
|
|
|
|
ADMIN |
Дата: Пт, 01.07.2011, 07:15 | Сообщение # 7 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1086
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
Смоделировать можно, я думаю по-простому, вместо оптотранзисторов использовать простые транзисторы. В протеусе все нюансы не учтешь. Вполне может быть в сети есть похожая модель. Думаю, также можно собрать ее из двух стандартных протеусовских оптопар
|
|
|
|