Как стать автором
Обновить
2492.35
RUVDS.com
VDS/VPS-хостинг. Скидка 15% по коду HABR15

Как работает шариковая мышка?

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров8.4K


Привет, Хабр! Помните олдскульные механические мышки, в которых обрезиненный стальной шарик катался по поверхности стола или специального коврика? Внутри корпуса шарик соприкасался с двумя перпендикулярными пластиковыми валиками, на которые периодически наматывалась всякая грязь. Приходилось вынимать шарик, чистить валики, доставать шарик оттуда, куда он закатился, и устанавливать его на место.

В таких мышках, а также струйных принтерах, использовались относительные оптические энкодеры. Пластиковый диск с прорезями или лента из прозрачной плёнки с непрозрачными полосками устанавливались на пути света от светодиода до фототранзистора.

Количество импульсов соответствовало пройденному пути, а для определения направления движения применялась специальная электронная схема. Ведь недостаточно просто сосчитать импульсы. Надо знать, прибавлять или убавлять координату курсора. Сегодня я расскажу про один из вариантов решения этой задачи, на базе интереснейшей микросхемы сдвоенного ждущего мультивибратора CD4528.

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



Модель стиральной машины из предыдущей статьи укомплектована точно таким же моторчиком, и даже с настоящей планшайбой от CD-привода. Там он символизирует стиральный барабан, причём вертикальный, судя по алгоритмам работы. Такая стиральная машина допускает работу без водопровода с ручным заливом воды, что в сельской местности просто незаменимо.



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

▍ Не перегреется ли резистор?


Электродвигатель подключён к разъёму питания через резистор R9 сопротивлением 100 Ом. При питающем напряжении 4.91 В разность потенциалов между проводами моторчика составляет 2.75 В.



Получается падение напряжения на резисторе 2.16 В, что соответствует силе тока 21.6 мА и мощности тепловыделения 47 мВт. Это составляет 37% от допустимой мощности для металлоплёночного резистора типоразмера 0805, которая равняется 125 милливаттам.

▍ U-оптрон


Прорези обтюратора перекрывают инфракрасный луч в двух фотодатчиках U1 и U2. Датчик с маркировкой GK152 производится компанией EVERCOLORS и представляет собой транзисторную оптопару в подковообразном корпусе из чёрного пластика, прозрачного для инфракрасного излучения. Такие приборы называются U-оптронами, потому что в латинском алфавите нет буквы «П», зато есть «U».

Светодиоды фотодатчиков питаются через резисторы R1 и R3 сопротивлением по 2 килоома. Типичное прямое падение напряжения на инфракрасном светодиоде составляет 1.2 вольта. Таким образом, резистору остаётся 5 — 1.2 = 3.8 В, что соответствует току 1.9 мА. Длина волны испускаемого светодиодом излучения равняется 940 нанометрам.



Эмиттеры фототранзисторов соединены с землёй схемы, а коллекторы подтянуты к плюсу питания резисторами R2 и R4 по 10 кОм. Когда транзистор засвечен, на его коллекторе присутствует логический ноль, тогда как на коллекторе затемнённого фототранзистора наблюдается логическая единица.

▍ Продвинутый одновибратор


Сигнал PULSE1 с фотодатчика U1 поступает на входы TR- двух половинок микросхемы CD4528, обозначенной на схеме как U3.

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



Зелёным и оранжевым обведены почти одинаковые конструкции, каждая из которых содержит пару логических элементов И-НЕ.

Как мы с вами хорошо знаем, это не что иное, как самые обычные RS-триггеры с инвертирующими входами.



Логическое уравнение для входа сброса «зелёного» триггера выглядит следующим образом:

¬R1 = ¬(A|¬B);
R1 = A|¬B.

То есть, левый по схеме триггер сбросится в логический ноль на выходе при высоком уровне напряжения на входе А или низком уровне на входе В.



Вход сброса «оранжевого» триггера подключён к той же комбинации элементов НЕ и ИЛИ-НЕ в левом нижнем углу схемы, но через логический инвертор. Получается такое уравнение состояния этого входа:

¬R2 = ¬¬(A|¬B);
R2 = ¬(A|¬B) = ¬A&B.

Правый по схеме триггер сбросится при логической единице на входе В и логическом нуле на входе А.

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

Установка «зелёного» триггера в высокий уровень на выходе происходит при установке в логическую единицу «оранжевого» триггера через элемент «НЕ» снизу посередине схемы.

«Оранжевый» триггер отличается от «зелёного» тем, что его левый по схеме логический элемент И-НЕ является не двухвходовым, а трёхвходовым. Это означает, что у данного триггера не один, а два независимых друг от друга инвертирующих входа установки.

Логический ноль на любом из этих входов установит в единицу «оранжевый» триггер, а стало быть, и «зелёный» тоже.

Один из упомянутых входов подключён к входу С через два логических инвертора. То есть, оба «цветных» триггера установятся в логическую единицу нулём на входе С.

Также логический ноль на входе С откроет P-канальный полевой транзистор с изолированным затвором (MOSFET) в верхней центральной части схемы. На его истоке, и соответственно, на выходе Т2, предназначенном для подключения времязадающих конденсатора и резистора, появится логическая единица.

Конденсатор мгновенно зарядится до напряжения питания. Также он зарядится до высокого логического уровня через времязадающий резистор во время простоя схемы, и разрядится только через N-канальный МОП-транзистор.

Последний откроется высоким уровнем на затворе только в случае, когда сброшены оба триггера. В противном случае, на выходе логического элемента ИЛИ-НЕ в центральной части схемы будет логический ноль.

Булевы уравнения для неинвертирующего и инвертирующего выходов одновибратора будут иметь следующий вид:

¬Q = ¬¬(Q1&T2) = Q1&T2;
Q = ¬¬¬(Q1&T2) = ¬(Q1&T2) = ¬Q1 | ¬T2.

Итак, для логической единицы на неинвертирующем выходе необходим низкий уровень напряжения на времязадающем конденсаторе либо сброшенное состояние «зелёного» триггера.

Получается следующая таблица состояний ждущего мультивибратора.



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

Когда на входе сброса логическая единица, наблюдается исходное состояние схемы, показанное на рисунке.



Переход сигнала ¬R1 в низкий уровень сбросит «зелёный» триггер, а переход ¬R1 в высокий уровень сбросит «оранжевый» триггер. Логический ноль на обоих входах элемента ИЛИ-НЕ посередине схемы приведёт к высокому уровню на его выходе и открытию N-канального транзистора.

Времязадающий конденсатор разрядится и начнёт заряжаться через времязадающий резистор. Логические нули на обоих входах элемента ИЛИ установят в единицу «оранжевый» триггер, который установит в единицу «зелёный» триггер.

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

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

▍ Возвращаемся к схеме


Получается, что вспышка инфракрасного излучения при прохождении щели обтюратора через фотодатчик U1 запускает два ждущих мультивибратора U3A и U3B.



Сигналы с неинвертирующего и инвертирующего выходов U3A поступают на входы данных микросхемы SN74LS173 (К555ИР15), являющейся четырёхразрядным регистром-защёлкой D-типа с тремя состояниями на выходе. Сегодня мы используем только два разряда из четырёх.

В действующем процессоре на 13 микросхемах стандартной логики мы также пользовались 4-разрядными регистрами-защёлками, но там в их качестве применены продвинутые двоичные счётчики SN74HC161N (1564ИЕ10).

По сути, регистр SN74LS173 представляет собой счетверённый синхронный D-триггер с асинхронным сбросом, к которому добавлены электронные ключи, дающие возможность переводить выходы в состояние высокого сопротивления. Иными словами, отключать их.



Логическая единица на входе асинхронного сброса ¬CR устанавливает все разряды в ноль. Сегодня мы не используем эту функцию, поэтому соответствующая ножка микросхемы просто соединена с общим проводом.



Также соединены с землёй схемы оба входа разрешения записи в регистр ¬STA и ¬STB. Таким образом, при каждом положительном фронте импульса на тактирующем входе СР содержимое, хранящееся в триггерах, будет обновляться с их входов.

Чтобы преобразовать негативный фронт синхроимпульса с фотодатчика U2 в позитивный, используется U4A — один из шести логических инверторов микросхемы HEF4069 (К1561ЛН4).

Остальные пять инверторов не используются. С таким же успехом можно было бы применить вместо целой 14-выводной микросхемы один NPN-транзистор с одним резистором в коллекторной цепи, построив классический каскад по схеме с общим эмиттером. Резистор для ограничения тока базы у нас уже есть: это R4.

А можно обойтись и без дополнительного транзисторного инвертора. Напишите в комментариях, каким образом.

Два фотодатчика расположены под острым углом друг к другу. При вращении оси электромоторчика против часовой стрелке щели обтюратора сначала засвечивают фототранзистор U1, а затем U2, после чего следует пауза, и последовательность импульсов повторяется.



Получаются следующие эпюры напряжений в контрольных точках платы.



Синхроимпульс TP3, инициирующий запись в управляющий индикаторными светодиодами регистр, приходится на тот промежуток времени, когда времязадающий конденсатор С2 ждущего мультивибратора U3A не успел зарядиться до порога срабатывания.

В триггер 1D записывается логическая единица, а в 2D — логический ноль. Соответственно, включается светодиод LED2, расположенный на плате слева, а правый светодиод LED1 отключён, так как их аноды подключены к плюсу питания через 2-килоомные резисторы R7 и R8. То есть, светодиод зажигается низким уровнем напряжения на катоде.

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



Синхроимпульс приходится на время паузы между импульсами одновибратора U3A. В 1D запишется ноль, а в 2D — единица. Соответственно, загорится светодиод LED1, расположенный на плате справа, а левый LED2 не будет светить.

Ждущий мультивибратор U3B нужен затем, чтобы гасить оба светодиода, когда планшайба на валу электродвигателя не вращается. Соответственно, импульсов с фотодатчика U1 не поступает.

Высокий логический уровень напряжения на управляющих входах ¬STA и ¬STВ переводит выходы данных микросхемы 74LS173 в третье состояние с высоким сопротивлением. Таким образом, ни один из индикаторных светодиодов не светит.

▍ Подводные камни


Авторы пособия не забыли и про две традиционные ошибки на плате. Первая из них — это отсутствующая дорожка между седьмой ножкой микросхемы CD4528 и тринадцатой ножкой 74LS173. Эту ошибку можно устранить обрезком вывода резистора, впаянным в монтажное отверстие TP5.



Вторая ошибка спрятана несколько хитрее. При подключении питания электродвигателя он не вращается, и может показаться, что он неисправен.



На самом деле, дорожка, ведущая от точки пайки провода электромоторчика до резистора R9, разрывается по линии шелкографии посадочного места последнего. Проблема решается зачисткой паяльной маски и каплей припоя.

▍ Результаты и выводы


Работу налаженного устройства и процесс монтажа его компонентов на печатную плату можно наблюдать на видео.


Чтобы датчик направления вращения электродвигателя работал правильно, длительность импульса ждущего мультивибратора U3A должна быть чуть больше половины промежутка между сигналами с оптронного фотодатчика. Это можно настроить при помощи десятиоборотного подстроечного резистора RP1.

А продолжительность зажигающего светодиоды импульса одновибратора имеет смысл установить на максимум, повернув шпиндель RP2 по часовой стрелке до упора. Этот ждущий мультивибратор не участвует в определении направлении вращения, а лишь управляет включением и отключением выходов регистра-защёлки 74LS173 в зависимости от того, вращается ли планшайба.

Telegram-канал со скидками, розыгрышами призов и новостями IT 💻
Теги:
Хабы:
Всего голосов 42: ↑40 и ↓2+58
Комментарии28

Публикации

Информация

Сайт
ruvds.com
Дата регистрации
Дата основания
Численность
11–30 человек
Местоположение
Россия
Представитель
ruvds