как определить направление ?

Sep 03, 2003 Last reply: 22 years ago 3 Replies

Hello HazovDmitry!


03 Sep 03 13:18, HazovDmitry wrote to All:


H> есть оптопара (два фоторезистора и ИК-светодиод) от комп. мышки вместе H> с крыльчаткой. как по последовательности импульсов идущей от мышиной H> оптопары определить направление вращение крыльчатки ?



H> типа: засвечиваются фоторезисторы в последовательности 1-2-1-2-1... H> имеем логическую "1" , а в последовательности 2-1-2-1... "0" .



Сейчас тебе начнут кидать идеи с Д-триггером, так вот, оно конечно, может и работать, а может и гнать по-черному. А правильное решение такое.



У этого датчика два выхода, они расположены со сдвигом и при вращении диска в одну сторону выдают последовательность 00 - 01- 11 - 10 - 00 - 01 ..., а в другую - 00 - 10 - 11 - 01 - 00 - 10 ... Вообще-то так работает реверсивный счетчик Джонсона, но двухразрядные коды Джонсона и Грея совпадают, преобразователь двухразрядного кода Грея в двоичный - один элемент XOR (исключающее ИЛИ, допустим, 1/4 микросхемы 176/561ЛП2, или 555ЛП5). Старший разряд подаем напрямую, а в качестве младшего - результат XOR'а от обоих разрядов. тогда первая последовательность превратится в 00 - 01 - 10 - 11 - 00



- 01 ..., а вторая - в 00 - 11 - 10 - 01 - 00 - 11 ..., т.е. обычный двоичный код, возрастающий или убывающий. Фактически, это число - два младших разряда кода положения диска. И направление, вернее перенос/заем от этого двухразрядного двоичного числа, естественно, определяются по переходу 11-00, сигнализирующему перенос и 00-11 - заем.



Дальше сочинишь, что делать, или тебе нарисовать схему? Впрочем, прикинул я эту схему, что-то тоскливое получается, штуки 4-5 логических м/с малой и средней степени интеграции с запутанным соединением, устанешь разводить - боюсь, дешевле будет сделать это на микроконтроллере, тогда и элемент XOR не будет нужен - или добавишь команду XOR в программу, или вообще реализуешь этот кусок таблично, прямо в коде Джонсона.


Всего доброго!



А. Забайрацкий.



AZ> диска. И направление, вернее перенос/заем от этого двухразрядного AZ> двоичного числа, естественно, определяются по переходу 11-00, AZ> сигнализирующему перенос и 00-11 - заем. спасибо за информацию , похоже то что мне нужно

AZ> Дальше сочинишь, что делать, или тебе нарисовать схему? ну если сильно не затруднит, то можно и схему, лучше по мылу hada(плюшка)krw.ru

AZ> - боюсь, дешевле будет сделать это на микроконтроллере, тогда и элемент AZ> XOR не будет нужен - или добавишь команду XOR в программу, или вообще AZ> реализуешь этот кусок таблично, прямо в коде Джонсона. это следующим этапом, как отработаю всю схему целиком

AZ> Всего доброго! и Вам !

А не проще ли было из той мыши вытащить не только оптопару, но и контроллер и пременить его? Все проблемы остануться в прошлом. Ну разве только, скорость вращения будет ограничена теми скоростями, что в мыши.

H1 Valentin!

05 Sep 03 19:01, you wrote to HazovDmitry: >> VD> Берёшь D-триггер, подаёшь один сигнал на D-вход, а другой - на >> VD> C. После поворота в какую-нибудь сторону на один зуб на выходе >> VD> триггера установится 0 или 1 в зависимости от направления >> VD> вращения и дальше так и будет стоять. Hичего, что этот способ несколько противоречит устройству мыши и логике D-триггера? Смотри: Мышиное колесико устроено так, что существует 3 варианта засветки фотодиодов/фототранзисторов: 0 точка - освещены оба L - освещен диод "L", а диод "R" не освещен R - освещен диод "R", а диод "L" не освещен В какое состояние переходит система после после прохождения точки "0" (варианта засветки 0) и определяет направление вращения. Т.е. последовательность 0->L->R - движение влево, а 0->R->L - вправо.

VD> Оптопару настрой (подгибом ножек), проверь отсутствие внешних VD> засветок. Ага... И с бубном по кругу, по кругу!!! ;-)))) ;-)))))

С уважением, Sergey. Мы вам не помешаем... [ Team /85 ]

... Кособоко бежали собаки ...

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required