Валкодер из мышки. Валкодер из "Мыши" Валкодер из оптической мыши

Я видел множество описаний валкодеров на оптопарах. Конструкция их проста: диск, поделенный на секторы и две оптопары, смещенные так, что сигнал на их выходах смещен на 90 градусов.



Сигнал с фотодиодов усиливается операционными усилителями (обычно) и подается в логическое устройство.

Логика определения направления вращения ручки проста, достаточно при перепаде логического "1" в логический "0" на выходе оптопары 1 следить за уровнем сигнала на оптопаре 2. Если там "1" - ручку крутят по часовой стрелке (шаг вверх), если там "0" - ручку крутят против часовой стрелки (шаг вниз).

Сложность изготовления заключается в большом количестве токарных и фрезерных работ, изготовлении диска с количеством секторов более 20, и в подстройке положения оптопар. Многие берут оптический механизм от компьютерных "мышей". В этом случае единственная сложность - разобрать мышку, пометить цоколевку диодов и смонтировать в своем устройстве механику.

Количество шагов моего экземпляра было 34, что даст при шаге в 25 кГц 850 кГц на оборот или 425 кГц при шаге в 12,5 кГц. Так же выяснилось, что уровней с "мышиных" фотодиодов достаточно, чтобы переключать логические элементы КМОП без усилителей на ОУ.

Мыши бывают с обычными фотодиодами и сдвоенными. Сдвоенные фотодиоды имеют общий анод и не подойдут для нашей цели (хотя можно извратиться).

В таком виде валкодер можно использовать для управления каким-либо устройством. В моем случае я не захотел усложнять программу и поставил небольшой дешифратор на 561ЛА7 (который придумал Игорь, RA9UWD, за бутылкой пива):

На вход подаем импульсы с оптопар, на выходе: при вращении ручки на одном из выходов присутствует последовательность импульсов, на другом выходе стоит логическая "1". При вращении ручки в другую сторону выходы меняются местами. В таком виде валкодер может управлять последовательно включенными счетчиками на 155ИЕ6 (ИЕ7) или моим блоком управления "маяком". Выходы валкодера подключаются на место (или вместе) кнопок "вверх" и "вниз". Диоды остаются как и в исходном варианте.

Гетеродины и задающие генераторы современных приемников и радиолюбительских трансиверов сегодня все чащв делают на основе синтезаторов частоты с микроконтроллерным управлением. Однако настраивать такой приемник на станцию, набирая значение частоты на клавиатуре, очень неудобно, а для плавной перестройки (точнее, дискретной с очень мвлким шагом, имитирующей обычную аналоговую) необходим точный преобразователь угла поворота ручки настройки в цифровой код - так называемый валкодер. Стоимость этого прецизионного устройства нередко превосходит цену всех остальных деталей синтезатора вместе взятых. Тем не менее радиолюбителю из Германии (Steffen Braun, DJ5AM) удалось из деталей неисправной компьютерной "мыши" изготовить простой и дешевый, но вполне подходящий для любительского применения валкодер .

Вращательное движение шара компьютерной мыши внутри нее воспринимают два оптоэлектронных датчика угла поворота. Генерируемые ими импульсы поступают в компьютер, обрабатываются им и управляют перемещением курсора относительно осей X и Y экрана монитора. Основной принцип - преобразование угла поворота в число импульсов вполне подходит для валкодера, к тому жв каждый из датчиков "мыши" снабжен двумя соответствующим образом расположенными чувствительными элементами, что позволяет определить не только угол, но и направление поворота. Подробнее прочитать об устройстве и работе этих датчиков можно в .

Приступая к работе, необходимо вскрыть корпус "мыши" и убедиться, что пластмассовый подшипник, в котором вращается вал датчика, нвходится между контактирующей с обрезиненным шаром утолщенной частью вала и диском с прорезями. У многих "мышей" это не так - вал укреплен в двух подшипниках, расположенных по его концам. Такая конструкция для наших целей непригодна. Утолщенная часть (головка) вала диаметром приблизительно 4 мм должна быть достаточно длинной для установки ручки настройки. Расстояние от головки до диска должно быть не менее 15 мм.

Из "мыши" извлекают детали одного из двух имеющихся в ней датчиков: диск с проризями и его вал вместе с пластмассовой втулкой-подшипником, выпиливают лобзиком часть печатной платы с двумя оптопарами (каждая из них - находящиеся друг против друга излучающий диод ИК-диапазона и воспринимающий его излучение фототранзистор). Нужные детали показаны на рис. 1, о сохранности остальных можно не беспокоиться.

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

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

Излучающие диоды и фототранзисторы "мыши" внешне очень схожи. Различить их можно, проследив печатные проводники на плате. Излучатели обычно соединены последовательно. Эту цепь необходимо сохранить и подключить ее через гасящий резистор к источнику питания. Номинал резистора выбирают исходя из тока через диоды не более 5 мА. Чаще всего подходит 1 кОм.

Далее выводы омметра, установленного на предел измерения 100 кОм, подключают к коллектору и эмиттеру одного из фототранзисторов и, медленно вращая диск, убеждаются, что показания прибора резко уменьшаются при каждом освещении фототранзистора излучающим диодом через прорезь в диске. Если это не так, возможно, выводы коллектора и эмиттера определены неправильно и полярность подключения к ним омметра нужно изменить. На результат может повлиять и слишком яркое внешнее освещение, поэтому работу следует выполнять в тени. Таким же образом проверяют фототранзистор второй оптопары.

Схема электронной части валкодера показана на рис. 2.

Микросхемы DD1 и DD2 имеют отечественные аналоги: 4093 - К561ТЛ1, 4013 - К561ТМ2. Импульсы с коллекторов фототранзисторов BL1, BL2 поступают на входы формирователей - триггеров Шмитта DD1.1 и DD1.2 и далее - на входы С и D триггера DD2.1. Так как в зависимости от направления вращения вала изменяется очередность прихода импульсов на входы триггера, последний устанавливается в одно из двух устойчивых состояний. Соответствие между логическим уровнем на выходе триггера и направлением вращения определяют экспериментально. Импульсы с выхода элемента DD1.1 служат счетными - их число пропорционально углу поворота вала.

Микросхемы DD1, DD2 и прочие элементы соединяют согласно схеме жесткими проводами и выводами, всю сборку приклеивают к механическим узлам валкодера. Внешний вид этой конструкции показан на рис. 3.

Если валкодер послужит частью более сложного изделия, микросхемы DD1 и DD2 могут быть установлены на его печатной плате.

Литература

  1. Braun S. "Aus die Maus": Inkrementale Drehgeber - einfach realisiert. - Funkamateur, 2002, № 4, S. 362, 363.
  2. Долгий А. "Мышь": Что внутри и чем питается. - Радио, 1996, № 9, с. 28-30.

Приветик!

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

На всякий случай приклею график:

Сигналы с валкодера поступают со сдвигом фазы в 90 градусов.
То есть за один щелчок валкодер проходит все пять пунктов согласно таблице. Обычно один из сигналов (VAL0,VAL1) используется для счёта импульсов, а второй для определения направления. Например, при вращении ручки валкодера вправо, в момент появления напряжения на VAL0, на VAL1 его ещё нет. А при вращении ручки влево, в момент появления напряжения на VAL0, на VAL1 оно уже присутствует. То есть можно определить направление вращения, и сосчитать количество импульсов во время поворота ручки валкодера. Отсюда можно предложить следующую схему валкодера:

Здесь может быть использовано два щелевых оптрона, например АОТ147Б, можно использовать светодиод и сдвоенный фототранзистор из старой шариковой мышки. Оттуда же можно взять колесо со «щёлками».

А теперь о схеме подробнее. На транзисторах VT1 и VT2 собрана схема, укорачивающая импульсы VAL0, потому как самодельный оптический валкодер, как правило, не имеет фиксации в нейтральном положении, и что будет, если будет открыт верхний оптрон, программа в МК или будет бесконечно считать, или попросту зависнет, ожидая снятия напряжения с VAL0. Для этого и была введена данная укорачивающая схема, длина импульса выбирается, подборкой C1 и R5, достаточная для того, чтобы МК смог зафиксировать импульс.

В принципе данную схему можно собрать и на цифровой микросхеме, что, по-моему, даже лучше:

На элементах DD1.1 и DD1.4 собран аналог транзисторной схемы, а свободные элементы DD1.2 и DD1.3 применены в качестве буферных элементов. Это, конечно же, не универсальная схема, так что пробуйте, экспериментируйте.

Желаю удачи всем!!!

Валкодер – устройство, меняющее какую-то величину в зависимости от поворота оси. Такая штука водится, например, в роликовой мыши или в музыкальном центре. Собственно, сам по себе валкодер довольно прост, но мы усложним задачу тем, что не будем использовать микроконтроллер, как это практикуется во всех промышленных образцах. Валкодер интересен тем, что в нем переплетаются очень многие приемы, применяемые в цифровой и аналоговой электронике. Итак ТЗ: разработать устройство, изменяющее выходное напряжение в диапазоне 0 – 3В, в линейной зависимости от угла поворота оси. Изменение напряжение должно быть реверсивным, с количеством градаций не менее 80. Выходной сигнал должен быть изолирован он рабочих напряжений устройства (гальваническая развязка). Полное нарастание/спад напряжения происходит при изменении угла поворота оси от 0 до 1440 градусов (4 оборота). Устройство должно сохранять работоспособность в диапазоне питающего напряжения от 8 до 15В. Предусмотреть цифровую индикацию напряжения.

1. C чего начать?

Определим чего от нас хотят:
А. Во-первых «голова» устройства будет цифровой, т.к. будет считать импульсы, создаваемые вращающейся ручкой.
Б. Счет импульсов должен быть реверсивным, т.к. результирующая величина уменьшается и увеличивается в зависимости от направления вращения ручки.
В. Не менее 80 градаций выходного напряжения. Значит для установки напряжения нам потребуется не менее 8 бит двоичного кода (80 = 1010000 ). 80 градаций за 4 оборота, значит за оборот, ручка должна выдавать 20 импульсов. По одному импульсу через каждые 18 градусов.
Г. Для гальванической отвязки выходного напряжения, в преобразовательном каскаде (цифровой --> аналоговый) нужно будет использовать оптроны.
Д. При заявленном напряжении питания работают микросхемы серий К561 и 564.
Е. Цифровая индикация – простой узел, но потребуется еще 2 дешифратора в 7-и сегментный код.

2. Теперь попробуем описать алгоритм работы:

*При включении на выходе 0.

*ЕСЛИ на выходе 0 И есть импульс с датчика И ручка поворачивается по часовой стрелке – добавить 1 в выходной код.

*ЕСЛИ на выходе 0 И есть импульс с датчика И ручка поворачивается против часовой стрелки- не выполнять никаких действий

*ЕСЛИ на выходе 1010000 И есть импульс с датчика И ручка поворачивается по часовой стрелке- не выполнять никаких действий

*ЕСЛИ на выходе 1010000 И есть импульс с датчика И ручка поворачивается против часовой стрелки- вычесть 1 из выходного кода

*ЕСЛИ на выходе число отличное от 0 и 1010000 И есть импульс с датчика И ручка поворачивается по часовой стрелке – добавить 1 в выходной код

*ЕСЛИ на выходе число отличное от 0 и 1010000 И есть импульс с датчика И ручка поворачивается против часовой стрелки – вычесть 1 из выходного кода.

*ЕСЛИ нет импульса с датчика – не выполнять никаких действий.

3. Составим блок-схему устройства:

Очевидно, что механическая часть должна сообщать как о самом вращении, так и о его направлении. Значит датчик должен выдавать 2 сигнала. В результате получается, что устройство должно состоять из реверсивного счетчика, блока согласования-развязки и цифроаналогового преобразователя.

Согласователь должен выводить сигнал о переполнении и запрещать счетчику складывать (если получен максимум) или вычитать (если получен минимум).

4. Конструируем датчик:

Воды вылито достаточно, теперь можно говорить более предметно. Механика зависит от электроники, а электроника от механики, поэтому рассмотрим датчик как единое целое. Вполне понятно, что использовать оптический датчик гораздо удобнее, нежели контактный, значит мы пришли к перфорированному колесу. Получить импульсы проще простого, осталось определить направление вращения. Есть два пути: использовать две оптопары (излучатель + приемник) расположив их таким образом, что освещается сначала один приемник, а затем второй. Либо использовать заслонку, скользящую на той же оси, что и колесо (момент, создаваемый осью, должен превышать массу заслонки и она не должна поворачиваться под собственной тяжестью). Эта заслонка поворачивается синхронно с колесом на определенный угол (не более 4,5 градусов в обе стороны) и открывает/заслоняет дополнительный (стробирующий) фотоприемник. Этот вариант сильно усложняет механику, хотя весьма прост в схемотехнической реализации (логическая схема «И»), поэтому вернемся к первому варианту. Теперь прикинем временные эпюры сигналов, создаваемых датчиком.

Как видно из рисунка, сигналы приемников смещены по фазе на 90 градусов. Этого легко добиться расположив приемники рядом в одну линию. Таким образом, когда отверстие проходит над приемниками, сначала освещается первый приемник, затем оба, затем второй.

Предположим, колесо (3) вращается по часовой стрелке вокруг оси (2). Когда отверстие (1) подходит к оптопарам, Сначала освещается правый приемник (5), затем оба, затем только левый (4). И это повторяется 20 раз за один оборот. Из приведенных эпюр видно, что на заднем фронте импульса с правого приемника формируется некий стробирующий сигнал. На нем мы и будем строить результирующий сигнал датчика: во-первых, он генерируется в единственном экземпляре при освещении приемников, во-вторых, он прекрасно характеризует направление вращения. Совпадая с импульсом левого датчика при вращении по часовой стрелке, он дает возможность выделить положительный импульс при помощи логического элемента «И». Для получения этого чудо-импульса нам понадобится одновибратор для получения нужной длительности. Исходный фронт отрицательный, поэтому его нужно инвертировать. Попробуем набросать схему: петля ООС одновибратора рассчитывается исходя из максимальной частоты вращения колеса – длительность стробирующего импульса не должна превышать 1/4 периода «правого» сигнала. Цепочка С1R4 рассчитывается исходя из того, что формируемый ею импульс должен составлять 0,1Тстр.

5. Построим самый простой блок в устройстве – счетчик.

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

*Напряжение питания 8-15В

Таким условиям удовлетворяет К561ИЕ14

Как видно на картинке, у счетчика есть входы предустановки. При помощи этих входов мы можем быстро выставлять на выходе необходимое напряжение, вызывая из внешнего ОЗУ соответствующий код. Разумеется в ОЗУ должен быть создан некий банк сохраненных уровней. В ТЗ не оговорена такая возможность, поэтому используем входы предустановки для сброса. Так же есть вход запрещения счета (РО). Но использовать его для защиты валкодера от переполнения не получится. Дело в том, что этот вход вовсе блокирует считчик и не дает ему считать даже в свободном направлении, а нам нужно, чтобы при достижении критического уровня в одном направлении, свободное направление оставалось свободным. Поэтому сигнал переполнения мы выделим после дешифратора. Этим сигналом мы будем стробировать вход «С».

6. Теперь можно заняться сравнительно простыми, но громоздкими узлами – дешифратором и цифро-аналоговым преобразователем (ЦАП)

Вот таким, например, у меня получился дешифратор. Ничего хитрого: массовые дешифраторы и транзисторные ключи для управления оптронами и полупроводниковыми индикаторами СИД-ОА. Дешифраторы вполне традиционные: К561ИД1 – преобразователь двоичного кода в десятичный и К561ИД4 – преобразователь двоичного кода в семисегментный.

ЦАП будет построен подобным образом. Единственный тонкий момент – определение диапазонов. Сопоставление границ регулировки десяткам и единицам. У нас 7 десятков и 10 единиц. Разделим полное выходное напряжение на 80 градаций: получается 0,04. Умножим на 10 – получается 0,4. Значит, единичный разряд регулирует напряжение в пределах 400мВ. Следовательно, оставшиеся 2,6В управляются десятками. Теперь осталось только подобрать резисторы, переключаемые оптронными ключами и, с их помощью, выстроить нужную шкалу регулировки.

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
Рисунок 5.
Операционный усилитель 1 В блокнот
DD1 Микросхема К561ЛА7 1 В блокнот
VT1, VT3 Фототранзистор 2 В блокнот
VT2 Биполярный транзистор

КТ3102

1 В блокнот
VD1, VD2 Диод 2 В блокнот
С1, С2 Конденсатор 2 В блокнот
R1, R2, R6, R8 Резистор

100 кОм

4 В блокнот
R5 Резистор

10 кОм

1 В блокнот
R3, R4, R7 Резистор 3 В блокнот
Рисунок 6.
DD1 Микросхема К561ЛА7 1 В блокнот
DD2 Микросхема К561ЛА9 1 В блокнот
DD3, DD4 Микросхема 2 В блокнот
VD1, VD2 Диод 2 В блокнот
С1 Электролитический конденсатор 1 мкФ 1 В блокнот
R1 Резистор

100 кОм

1 В блокнот
R2 Резистор

20 кОм

1 В блокнот
Схема дешифратора.
DD1, DD4 Микросхема К561ИД4 2 В блокнот
DD2, DD3 Микросхема К561ИД1 2

Валкодер из "мыши"
Дмитрий ТЕЛЕШ, г. Минск, Белоруссия

Описание конструкции компьютерной "мыши" и одного из вариантов изготовления из нее валкодера были опубликованы в статье "Валкодер из "мыши" ("Радио", 2002 г., № 9, с 64). "Мыши" с такой конструкцией датчика у нас встречаются редко. В моей конструкции валкодера использованы датчик более распространенной "мыши" "Genius" и переменный резистор СПЗ-4.
С переменного резистора надо снять металлическую крышку, затем вынуть вал и демонтировать с него бегунок. Текстолитовые шайбы, находящиеся на валу, нам еще пригодятся, а бегунок нет. После этого зачистим кончик вала (на котором сидел бегунок) надфилем и вставим вал обратно в корпус. Далее надо надеть на вал текстолитовые шайбы и припаять к нему две П-образные скобы из медной проволоки диаметром 1 мм так, чтобы получилось "гнездо" для вала датчика. Вал переменного резистора должен иметь ход вдоль собственной оси не более 0,5 мм.
Теперь подготовим датчик. В большинстве "мышей" используются один
светодиод и сдвоенный фототранзистор на каждую координату Выпилим часть платы со светодиодом и сдвоенным фототранзистором и с помощью скоб из луженого медного провода диаметром 0,8...1 мм прикрепим пайкой печатную плату к корпусу переменного резистора. Вал датчика вынем из торцевых подшипников, укоротим длинную часть до размера выпиленной платы и вставим в "гнездо" из П-образных скоб на валу переменного резистора. Немного изгибая "гнездо", устраняем биения вала датчика и окончательно фиксируем их взаимное положение клеем

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

Устранить этот недостаток, а также увеличить чувствительность валкодеpa (число импульсов на один оборот вала) в четыре раза за счет более полного использования сигналов датчиков можно, анализируя не только текущее, ной предыдущее состояние датчиков. Зависимость напрааления вращения валкодера от текущего и предыдущего состояний датчиков дана в таблице. При подключении валкодера непосредственно к микроконтроллеру эта проблема решается небольшим усложнением программы опроса датчиков.

Предлагаемый мной узел выделения сигнала и направления счета (рис. 3) аппаратно реализует зависимость, приведенную в таблице, и может применяться с любыми инкре-ментными датчиками. Узел состоит из формирователей на триггерах Шмитта
(DD1.1, DD1.2), блоков запоминания предыдущего состояния датчиков на триггерах (DD2.1, DD2.2), выделения сигнала направления (DD3.2, DD3.4), сравнения (DD3.1, DD3.3, DD4.1) и формирователя импульсов счета (DD1.3, DD1.4, DD5.1-DD5.4).
Устройство работает так. Сигнал с датчиков через формирователи на триггерах Шмитта DD1.1 и DD1.2 поступает на входы триггеров DD2.1 и DD2.2 и схему сравнения. При изменении сигнала на любом из входов на выходе блока сравнения (DD4.1) появляется логическая единица, этот сигнал запускает одновибратор (DD5.3,

Поделиться