Как подключить потенциометр к компьютеру

Обновлено: 05.07.2024

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

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

Реостат, проволочный переменный резистор (де факто, реостат в миниатюре), некоторые переменные резисторы разных лет и разного назначения. Реостат, проволочный переменный резистор (де факто, реостат в миниатюре), некоторые переменные резисторы разных лет и разного назначения.

Вот об одном типе таких переменных резисторов, изменившемся до не узнаваемости в цифровую эпоху, и пойдет сегодня разговор.

Зачем нужен цифровой потенциометр

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

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

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

Такие переменные резисторы с электромеханическим управлением были неудобны и не очень надежны. Поэтому широкого распространения не получили. Из применяли только в тех случаях, когда другие варианты были не возможны.

Естественно, с появлением микросхем и цифровых, логических, схем возникло желание, а самое главное, возможность, отказаться от сложных и громоздких электромеханических приводов. Так появляются потенциометры электронные.

Как устроен электронный потенциометр

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

Аналоговый непрерывный и аналоговый дискретный потенциометры. Иллюстрация моя Аналоговый непрерывный и аналоговый дискретный потенциометры. Иллюстрация моя

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

Возможны различные варианты реализации такого коммутатора. Особенно, при использовании дискретных транзисторов. Но наибольшее распространение нашли схемы аналоговых ключей на полевых транзисторах с изолированными затворами. Давайте посмотрим на такой ключ (один канал микросхемы 168КТ2)

Фрагмент схемы микросхемы 168КТ2, один канал. Из документации Фрагмент схемы микросхемы 168КТ2, один канал. Из документации

В данном случае вывод 12 это аналоговый вход, а вывод 14 это аналоговый выход. Вывод 13, затвор полевого транзистора, управляет состоянием ключа. В данном случае, при нулевом напряжении на затворе ключ закрыт, а при отрицательном напряжении (-15 В) ключ открыт.

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

Для 168КТ2 на вывод 11 требовалось подавать напряжение +5 В, что сдвигало пороговое напряжение затвора и исключало влияние коммутируемых напряжений амплитудой менее 5 В.

168КТ2 предназначалась для специального (военного) применения. Ее гражданским аналогом является микросхема К547КП1. Были и другие подобные микросхемы ключей. И, разумеется, такие аналоговые ключи можно было собрать на дискретных транзисторах. Правда отдельного вывода подложки уже не будет. Это даст некоторые ограничения, но ключ будет работать.

Ну а наш электронный потенциометр может быть, например, таким

Пример построения электронного потенциометра на ключах на полевых транзисторах с изолированным затвором и индуцированным каналом n-типа. Иллюстрация моя Пример построения электронного потенциометра на ключах на полевых транзисторах с изолированным затвором и индуцированным каналом n-типа. Иллюстрация моя

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

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

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

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

Обратите внимание, что не смотря на инвертор этот потенциометр все равно будет электронным, но не еще цифровым. Остается сделать всего один шаг

Как устроен цифровой потенциометр

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

Но ведь можно просто добавить в схему потенциометра счетчик и дешифратор. И мы получим уже цифровой потенциометр. Правда пока довольно простой

Пример схемы простого цифрового потенциометра. Иллюстрация моя Пример схемы простого цифрового потенциометра. Иллюстрация моя

AMUX это аналоговый коммутатор. Для счетчика предусмотрена возможность загрузки заданного значения, например, начального состояния. И выводы для шагов движения "ползунка" потенциометра.

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

И тут нам на помощь приходят готовые интегральные цифровые потенциометры.

Как устроены микросхемы цифровых потенциометров

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

Основным блоком, который добавляется к нашему цифровому потенциометру, является модуль интерфейса шины. Именно этот модуль позволяет подключить цифровой потенциометр к микроконтроллеру для получения управляющих команд. Наиболее распространены интерфейсы I2C и SPI.

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

Давайте посмотрим, как устроены несколько микросхем цифровых потенциометров. От простых, до более сложных.

MCP4018

Это один из самых простых потенциометров. Он может отрабатывать только 128 положений ползунка. А из команд только "установить ползунок" и "получить положение ползунка".

Функциональная схема цифрового потенциометра MCP4018. Из документации Функциональная схема цифрового потенциометра MCP4018. Из документации

Причем вывод В собственно потенциометра (резисторной матрицы Pot0) соединен с выводом отрицательного полюса источника питания (Vss). Так как этот потенциометр располагается в миниатюрном корпусе SC70-6 и отдельного вывода просто нет.

Блок интерфейса шины рассматривать нет смысла. Он стандартный. Чтение по адресу устройства просто возвращает текущее положение ползунка, а запись выполняет установку ползунка в новое положение. Никаких других возможностей не предусмотрено.

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

Матрица резисторов и аналоговый коммутатор выглядят в точности так, как мы ранее рассматривали

Матрица резисторов и аналоговый коммутатор. Из документации Матрица резисторов и аналоговый коммутатор. Из документации

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

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

DS1803

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

Здесь есть три дополнительных вывода, с помощью которых можно задать три младших бита адреса. А значит, на одной шине может находиться до 8 таких микросхем.

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

А вот при записи уже требуется посылать одну из трех возможных команд: установить ползунок 1, установить ползунок 2, установить оба ползунка в одно положение.

MCP4641

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

Функциональная схема цифрового потенциометра MCP4641. Из документации Функциональная схема цифрового потенциометра MCP4641. Из документации

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

По адресам с 06h по 0Fh расположились ячейки энергонезависимой памяти общего применения. Программа может хранить здесь любую информацию. Эта область памяти нам не интересна.

Ячейки 00h и 01h это регистры положения двух ползунков. Они ничем не отличаются от ранее рассмотренных случаев. И точно так же хранят положение ползунка только при наличии питания.

А вот адреса 02h и 03h занимают энергонезависимые ячейки памяти положения ползунков. При изготовлении по этим адресам записывается информация соответствующая среднему положению. А вот при работе микросхемы здесь сохраняется о текущем положении ползунков. И при последующем включении питания информация из этих ячеек копируется в ячейки по адресам 00h и 01h. Таким образом, положение ползунков восстанавливается.

Регистр TCON нам раньше еще не встречался. С помощью этого регистра можно управлять подключением выводов собственно потенциометра (A, B, W) к выводам микросхемы.

Причем для ползунков можно задать, нужно ли их соединять с выводом В в состоянии "останов" (в том числе, при включении питания до выполнения инициализации и восстановления состояния).

Регистр STATUS, как и следует из его названия, позволяет получить информацию о текущем состоянии микросхемы.

Но это еще не все! Вывод WP управляет блокировкой записи в энергонезависимую память. Если блокировка включена, то из энергонезависимой можно только считывать. Кроме всего прочего, это запрещает обновление информации о текущем положении ползунков в энергонезависимой памяти. А значит, можно записать положение ползунков при выполнении калибровки и запретить запись в память. При работе возможность изменения положения ползунков сохранится, но при каждом включении питания они будут восстанавливать то положение, которое было задано при калибровке.

Если полная блокировка записи в энергонезависимую память является слишком жесткой, то можно использовать WiperLock. Это позволит сохранить возможность использования энергонезависимой памяти, но зафиксирует ползунки.

По шине I2C микросхема принимает уже 4 команды. Чтение, запись, увеличение, уменьшение. То есть, мы можем не просто установить ползунки в определенное положение, но и сделать один шаг.

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

AD7376

Это был бы совершенно типичный цифровой потенциометр, если бы не две особенности. Первая, здесь есть вход замыкающий движки на общий провод. Вторая, микросхема может работать при питающем напряжении до 30 В при однополярном питании, и до +15 -15 В при двухполярном.

Я остановлюсь лишь на первой особенности

Как видно, сигнал SHDN отключает матрицу резисторов от вывода А и соединяет выводы W и В.

Общие характеристики цифровых потенциометров

Думаю уже видно, что цифровые потенциометры устроены не так и сложно. А собственно потенциометр, без учета логики шины, в микросхемах устроен практически одинаково. А раз так, то и, как минимум, некоторые их характеристики должны быть сходными. С точки зрения сравнения разных микросхем.

Давайте отбросим очевидные, напряжение питания, число каналов, количество положений ползунков, полное сопротивление между выводами 1 и 2 (А и В), наличие энергонезависимой памяти. Посмотрим на те характеристики, которые определяют микросхему именно как потенциометр.

Диапазон напряжений на выводах потенциометра

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

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

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

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

Частотные свойства

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

Естественной причиной ограничений являются внутренние емкости микросхемы. Поэтому цифровые потенциометры с большим сопротивлением имеют и большие частотные ограничения.

Для примера, MCP4641, на уровне -3 dB и емкости нагрузки 30 пФ имеют такие предельные рабочие частоты

  • 5 кОм - 2 МГц
  • 10 кОм - 1 МГц
  • 50 кОм - 200 кГц
  • 100 кОм - 100 кГц

Иногда могут приводиться и графики зависимости усиления (ослабления) от частоты

Мне для сбора специального тренажера нужно подключить переменный резистор к компьютеру, друг сделал через джойстик у меня такого нет, если что есть программа для определения значений и позиций резистора (переменного) , но как присобачить к компу не знаю (

Если есть программа, то читай ее мануал.
Переменный резистор - устройство аналоговое. Чтобы делать с ним что-либо в компьютере, необходимо положение резистора ОЦИФРОВАТЬ. Для этого и предназначен игровой порт (джойстиковый) . Он может оцифровывать одновременно до 4-х таких резисторов.
Другая возможность оцифровать - звуковая карта (микрофонный или линейный вход) . Но ее схемотехника такова, что приспособлена для переменных напряжений. Неподвижный резистор она измерить не может, т. к. в цепи стоит проходной конденсатор, а конденсаторы, как известно, не пропускают постоянного тока - только переменный. Разве что взять полудохлую старую звуковую карту и перепаять ее входные цепи под свои нужды.. .
Других средств оцифровки аналогового сигнала в компьютере НЕТ. Поэтому, если отсутствует аналоговый игровой порт, единственное, что тебе доступно - это оцифровать положение резистора за пределами компьютера, а полученные цифровые данные вводить в него через любой цифровой порт - USB, COM, LAN, Wi-Fi, Blue-Tooth, PS/2 и т. д. И, соответственно, обрабатывающую программу тоже настроить на прием данных с этого порта.
Возможно, в продаже можно найти адаптеры для аналогового джойстика и порта USB, или еще какие-нибудь оцифровывающие приспособления для разных целей. Их легко можно приспособить под себя.

А если я его припаяю к палте от джойстика? Тобишь на место кнопки например?

Дмитрий Низяев Искусственный Интеллект (639049) Если это был USB-шный джойстик, то там тоже должны были быть переменные резисторы и микросхемка АЦП. Тогда, конечно, можно. Только не вместо кнопки, а вместо бывшего переменника какого-нибудь.

смотря по какому порту компа этот тренажёр имеет свой интерфейс. там и надо химичить.

Чтобы изготовить руль и педали, достаточно купить несколько деталей, прочитать инструкции и советы и немного поработать руками. Как же все это работает. Большинство персональных компьютеров, используемых для игр, имеет звуковую карту. На этой карте есть геймпорт, в который можно подключать джойстики, геймпады, рули и прочее. Все эти устройства используют возможности игрового порта одинаково - разница лишь в конструкции устройства, а человек выбирает такое, какое является наиболее подходящим и удобным для той игры, в которую он играет. Геймпорт персонального компьютера поддерживает 4 переменных сопротивления (потенциометра) и 4 мгновенных кнопки-выключателя (которые включены, пока нажаты). Получается, что можно в один порт подключить 2 джойстика: по 2 сопротивления (одно - влево/вправо, другое - вверх/вниз) и по 2 кнопки на каждый.

Если посмотреть на звуковую карту, то можно без труда разглядеть геймпорт, как на этом рисунке. Синим цветом указано, каким иголкам в порту соответствуют функции джойстика: например j1 Х означает "джойстик 1 ось Х" или btn 1 - "кнопка 1". Номера иголок показаны черным цветом, считать надо справа налево, сверху вниз. при использовании геймпорта на звуковой плате нужно избегать подключений к иголкам 12 и 15. Саундкарта использует эти выходы для midi на передачу и прием соответственно. В стандартном джойстике потенциометр оси Х отвечает за движение рукоятки влево/вправо, а сопротивление оси Y - вперед/назад. Применительно к рулю и педалям, ось Х становится управлением, а ось Y соответственно дросселем и тормозом. Ось Y должна быть разделена и подключена так, чтобы 2 отдельных сопротивления (для педалей газа и тормоза) действовали как одно сопротивление, как в стандартном джойстике. Как только станет ясна идея геймпорта, можно начинать проектировать любую механику вокруг основных двух сопротивлений и четыех выключателей: рулевые колеса, рукоятки мотоцикла, контроль тяги самолета. насколько позволяет воображение.

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

На рисунках: 1 - рулевое колесо; 2 - ступица колеса; 3 - вал (болт 12мм x 180мм); 4 - винт (держит подшипник на валу); 5 - 12мм подшипник в опорном кожухе; 6 - центрирующий механизм; 7 - болт-ограничитель; 8 - шестерни; 9 - 100к линейный потенциометр; 10 - фанерная основа; 11 - ограничитель вращения; 12 - скоба; 13 - резиновый шнур; 14 - угловой кронштейн; 15 - механизм переключения передач.

На рисунках вверху показаны общие планы модуля (без механизма переключения передач) сбоку и в виде сверху. Для придания прочности всей конструкции модуля используется короб со скошенными углами из 12мм фанеры, к которому спереди прикреплен 25мм выступ для крепления к столу. Рулевой вал сделан из обычного крепежного болта длиной 180мм и диаметром 12мм. Болт имеет два 5мм отверстия - одно для болта-ограничителя (7), ограничивающего вращение колеса, и одно для стального пальца механизма центрирования, описанного ниже. Используемые подшипники имеют 12мм внутренний диаметр и прикручены к валу двумя винтами (4). Центрирующий механизм - механизм, который возвращает руль в центральное положение. Он должен работать точно, эффективно, быть простым и компактным. Есть несколько вариантов, здесь будет описан один из них.

Механизм (рис. слева) состоит из двух алюминиевых пластин (2), толщиной 2мм, через которые проходит рулевой вал (5). Эти пластины разделены четырьмя 13мм вкладышами (3). В рулевом валу просверлено 5мм отверстие, в которое вставлен стальной стержень (4). 22мм болты (1) проходят через пластины, вкладыши и отверстия, просверленные в концах стержня, фиксируя все это вместе. Резиновый шнур накручивается между вкладышами на одной стороне, затем по вершине рулевого вала, и, наконец, между вкладышами с другой стороны. натяжение шнура можно менять, чтобы регулировать сопротивление колеса. Чтобы избежать повреждений потенциометра, необходимо сделать ограничитель вращения колеса. Практически все промышленные рули имеют диапазон вращения 270 градусов. Однако здесь будет описан механизм поворота на 350 градусов, уменьшить который будет не проблема. Стальной г-образный кронштейн, длиной 300мм (14) прикрепляется болтами к основе модуля. этот кронштейн служит для нескольких целей:

- является местом крепления резинового шнура центрирующего механизма (два болта m6 по 20мм в каждом конце);
- обеспечивает надежную точку останова вращения колеса;
- усиливает всю конструкцию в момент натяжения шнура.

Болт-ограничитель (7) м5 длиной 25мм вкручивается в вертикальное отверстие в рулевом валу. Непосредственно под валом в кронштейн вкручивается болт 20мм m6 (11). Для уменьшения звука при ударе на болты можно одеть резиновые трубочки. Если нужен меньший угол поворота, тогда в кронштейн надо вкрутить два болта на необходимом расстоянии. Потенциометр крепится к основанию через простой уголок и соединяется с валом. Максимальный угол вращения большинства потенциометров составляет 270 градусов, и если руль разработан для вращения в 350 градусов, то необходим редуктор. Пара шестерен с поломанного принтера подойдут идеально. Нужно только правильно выбрать количество зубов на шестернях, например 26 и 35. В этом случае передаточное число будет 0.75:1 или вращение на 350 градусов руля даст 262 градуса на потенциометре. Если руль будет крутиться в диапазоне 270 градусов, то вал соединяется с потенциометром напрямую.

Педали. Основа модуля делается аналогично модулю руля из 12мм фанеры с поперечиной из твердой древесины (3) для крепления пружины возврата. Пологая форма основы служит подставкой для ног. Стойка педали (8) сделана из 12мм стальной трубки, к верхнему концу которой крепится болтами педаль. Через нижний конец стойки проходит 5мм стержень, который держит педаль в монтажных кронштейнах (6), прикрученных к основанию и сделанных из стального уголка. Поперечина (3) проходит через всю ширину педального модуля и надежно (должна выдерживать полное растяжение пружин) приклеивается и привинчивается к основанию (2). Пружина возврата (5) крепится к стальному винту с ушком (4), который проходит через поперечину прямо под педалью. Такая конструкция крепления позволяет легко регулировать натяжение пружины. Другой конец пружины цепляется к стойке педали (8). Педальный потенциометр установлен на простом L-кронштейне (14) в задней части модуля. Тяга (11) крепится к приводу (12) на втулках (9, 13), позволяя сопротивлению вращаться в диапазоне 90 градусов.

Ручка переключения передач. Рычаг коробки передач представляет собой алюминиевую конструкцию, как на рисунке слева. Стальной стержень (2) с нарезанной резьбой крепится к рычагу через втулку (1) и проходит через отверстие, просверленное в Г-образном кронштейне на основании модуля руля. С обеих сторон отверстия в кронштейне на стержень установлены две пружины (1) и затянуты гайками так, чтобы создавалось усилие при движении рычага. Две большие шайбы (4, 2) располагаются между двумя микровыключателями (3), которые прикручены один на другом к основанию. Все это хорошо видно на рисунках слева и снизу.

Справа на рисунке показан альтернативный механизм переключения передач - на руле, как в болидах формулы 1. Здесь используется два маленьких шарнира (4), которые установлены на ступицу колеса. Рычаги (1) крепятся к шарнирам таким способом, чтобы они могли двигаться только в одном направлении, т. е. к колесу. В отверстия в рычагах вставляются два маленьких выключателя (3), так, чтобы при нажатии они упирались в резиновые подушечки (2), приклеенные к колесу и срабатывали. Если выключатель имеет недостаточно жесткое давление, то возврат рычагов можно обеспечить пружинами (5), установленными на шарнир.

Проводка. Немного о том, как работает потенциометр. Если снять с него крышку, то можно увидеть, что он состоит из изогнутой токопроводящей дорожки с контактами А и С на концах и бегунка, соединенного с центральным контактом В (рис 11). Когда вал вращается против часовой стрелки, то сопротивление между А и В увеличится на то же самое количество, на какое уменьшается между С и В. Подключается вся система по схеме стандартного джойстика, имеющего 2 оси и две кнопки. Красный провод всегда идет на средний контакт сопротивления, а вот фиолетовый (3) может быть подключен на любой из боковых, в зависимости от того, как установлено сопротивление.

С педалями не так все просто. Поворот руля эквивалентен движению джойстика влево/вправо, а нажатие педалей газ/тормоз соответственно - вверх/вниз. И если сразу нажать на обе педали, то они взаимно исключат друг друга, и ни какого действия не последует. Это одно-осевая система подключения, которую поддерживает большинство игр. Но многие современные симуляторы, типа GP3, F1-2000, TOCA 2 и т.д., используют двух-осевую систему газ/тормоз, позволяя применять на практике методы управления, связанные с одновременным использованием газа и тормоза. Ниже показаны обе схемы.

Схема подключения одно-осевого устройства. Схема подключения двух-осевого устройства

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

Деталей в описываемом устройстве не много, и самые главные из них - потенциометры. Во-первых, они должны быть линейными, сопротивлением в 100к, и ни в коем случае не логарифмическими (их иногда называют аудио), потому что те предназначены для аудио-устройств, типа регуляторов громкости, и имеют нелинейную трассу сопротивления. Во-вторых, дешевые потенциометры используют графитовую трассу, которая износится весьма быстро. В более дорогих используются металлокерамика и токопроводящий пластик. Такие проработают намного дольше (примерно - 100,000 циклов). Выключатели - любые какие есть, но, как было написано выше, они должны иметь мгновенный (то есть незапирающий) тип. Такие можно достать из старой мыши. Стандартный разъем джойстика D-типа с 15 иголками продается в любом магазине, где торгуют радиодеталями. Провода любые, главное, чтобы их можно было легко припаять к разъему.

Подключение и калибровка. Все тесты должны проводиться на отключенном от компьютера утройстве. Сначала надо визуально проверить паяные соединения: нигде не должно быть посторонних перемычек и плохих контактов. Затем надо откалибровать рулевой потенциометр. Так как используется сопротивление 100к, то можно измерить прибором сопротивление между двумя соседними контактами и настроить на 50к. Однако, для более точной установки, нужно замерить сопротивление потенциометра, повернув руль до упора влево, затем до упора вправо. Определить диапазон, затем разделить на 2 и прибавить нижний результат измерений. Полученное число и надо выставить, используя прибор. За неимением измерительных приборов, нужно выставить потенциометр в центральное положение, насколько это возможно. Потенциометры педалей при установке должны быть слегка включены. Если применяется одно-осевая система, то сопротивление педали газа должно быть установлено в центр (50к на приборе), а сопротивление тормоза быть выключено (0к). Если все сделано правильно, то сопротивление всего педального модуля, измеренное между иголками 6 и 9, должно уменьшиться, если нажать на газ, и увеличится - если на тормоз. Если это не случится, тогда надо поменять местами внешние контакты сопротивлении. Если применяется схема двух-осевого подключения, то оба потенциометра могут быть установлены на ноль. Если есть переключатель, то проверяется схема одно-осевой системы.

Перед соединением с компьютером, необходимо проверить электрическую цепь, чтобы не возникло короткого замыкания. Здесь потребуется измерительный прибор. Проверяем, что нет контакта с питанием +5v (иголки 1, 8, 9 и 15) и землей (4, 5 и 12). затем проверяем, чтобы был контакт между 4 и 2, если нажать кнопку 1. Тоже самое между 4 и 7, для кнопки 2. Далее проверяем руль: сопротивление между 1 и 3 уменьшается, если повернуть колесо влево, и увеличивается, если вправо. В одно-осевой системе сопротивление между иголками 9 и 6 уменьшится, когда нажата педаль газа, и увеличивается, когда нажат тормоз.

Последний этап - подключение к компьютеру. Подключив штекер к саундкарте, включаем компьютер. Заходим в "Панель управления - Игровые устройства" выбираем "добавить - особый". Ставим тип - "джойстик", осей - 2, кнопок 2, пишем имя типа "LXA4 Super F1 Driving System" и давим OK 2 раза. Если все было сделано правильно и руки растут от куда надо, то поле "состояние" должно измениться на "ОК". Щелкаем "свойства", "настройка" и следуем инструкциям на экране. Остается запустить любимую игрушку, выбрать в списке свое устройство, если потребуется, дополнительно его настроить, и все, в добрый путь!

none Опубликована: 2004 г. 0 0


Вознаградить Я собрал 0 0

Недавно я прочитал статью Михаила Санникова “Подключаем энкодер к компьютеру”. И так совпало, что на днях мне прислали плату Arduino, поэтому захотелось повторить эту простую конструкцию или сделать нечто подобное,

image

Сначала немного о том, что такое энкодер и зачем он вообще нужен. Энкодер — это преобразователь “угол — код”, выходным сигналом которого является код Грея. Существуют устройства ввода, построенные на энкодерах и внешне выглядищие как массивная шайба, вращая которую, можно, например, поворачивать модель в 3D-редакторе.

Однако энкодера у меня не было, в магазин ехать не хотелось, поэтому вместо него было решено приспособить старый переменный резистор на 150 КОм, валявшийся без дела в коробке с разным хламом.

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

image

В руководстве по программированию на сайте Arduino был найден пример Analog In, Out Serial, полностью решающий первую и вторую задачи.
Резистор подключается по такой схеме:

Однако код пришлось немного изменить: убрать все строки с Serial.print и заменить одной Serial.write(outputValue):

const int analogInPin = A0; // Переменный резистор подключен к порту A0
int sensorValue = 0; // значение, считанное из порта

void setup() Serial.begin(9600); // Инициализация COM-порта
>

// Чтение из порта A0 и вывод этого значения в COM-порт
void loop() sensorValue = analogRead(analogInPin);
outputValue = map(sensorValue, 0, 1023, 0, 255);
Serial.write(outputValue);
delay(10);
>

Главное окно программы:

image

Диалоговое окно с настройками:

image

Примечание: нажатие на кнопку “Button” пока не обрабатывается.

Здесь стоит рассмотреть подробнее параметры из группы “Misc”. Первый нужен для эмуляции нажатия на клавишу, остальные — для устранения дребезга.

Latency — задержка в миллисекундах между нажатием на клавишу и отпусканием.
Buffer — количество последовательно считываемых значений из COM-порта.
Jitter — показывает допустимое отклонение от значения последней выборки.

  • в буфер считывается определенное число байт (параметр Buffer) из последовательного порта;
  • если последний байт в буфере больше суммы первого байта и значения Jitter, то это значит, что вал вращается вправо;
  • если последний байт в буфере меньше разности первого байта и значения Jitter, то это значит, что вал вращается влево.

int[] buffer = new int[(int)conf.buffer]; // Buffer
int bufferTop = (int)conf.buffer - 1;

for (int i = 0; i < conf.buffer; i++)
buffer[i] = sp.ReadByte();
>

if (buffer[bufferTop] > (buffer[0] + conf.jitter))
// “Нажимаем” клавишу
>
else if (buffer[bufferTop] < (buffer[0] - conf.jitter))
// “Нажимаем” клавишу
>

На этом пока все. Любопытный человек может доработать программу — реализовать обработку серии нажатий вместо одного, или же “нажимать” разные клавиши в зависимости от того, какое приложение активно в данный момент времени, или просто “полировать это глюкало” до бесконечности.

Рассмотрим управление цифровым потенциометром X9C (X9C102, X9C103, X9C503, X9C104) с помощью Arduino, а также то, какие области применения могут быть у данного устройства. Воспользуемся готовым модулем, который стоит меньше 1 доллара.

    или иная совместимая плата; ; (breadboard);
  • соединительные провода (рекомендую вот такой набор);
  • персональный компьютер со средой разработки Arduino IDE.

1 Описание цифрового потенциометратипа X9C

Потенциометр, или переменный резистор – это электротехническое устройство, которое позволяет изменять сопротивление электрическому току. Классический (механический) потенциометр представляет собой два вывода, между которыми располагается третий – подвижный («скользящий»). Перемещая подвижный вывод, мы меняем сопротивление между ним и каждым из неподвижных вывода.

Принцип работы механического потенциометра

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

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

Будем использовать готовый модуль с цифровым потенциометром X9C102 (X9C103, X9C104, X9C503). Китайские друзья продают их меньше чем за 100 рублей.

Модуль с цифровым потенциометром X9C102, X9C103, X9C104 Модуль с цифровым потенциометром X9C103S

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

НазваниеМаксимальное сопротивление
X9C1021 кОм
X9C10310 кОм
X9C50350 кОм
X9C104100 кОм

В названии потенциометра X9C три цифры означают: значение и количество нулей, которое нужно приписать к значению, чтобы получить номинал. Например: 102 это 10 и 2 нуля, или 1000 Ом (1 кОм); 503 – это 50 и 3 нуля, или 50000 (50 кОм) т.п.

2 Логика работы и схема подключения цифрового потенциометра X9C103 к Arduino

Между 0 и максимальным значением с шагом 1/100 от максимума можно регулировать сопротивление на третьем «подвижном» выводе.

Управление положением «подвижного» вывода осуществляется с помощью серии отрицательных импульсов. Каждый импульс смещает значение сопротивления на 1 шаг в сторону увеличения или уменьшения.

Потенциометр управляется по трём линиям:

Название выводаНазначениеПримечание
CS Выбор устройстваLOW - устройство активно
INC Изменение сопротивления выходаОтрицательные импульсы
U/ D Направление измененияU (вверх) – если напряжение на ножке микросхемы HIGH, D (вниз) – LOW

Вот так выглядит временная диаграмма управляющих сигналов:

Временная диаграмма управления потенциометром X9C102, X9C103, X9C104

Временная диаграмма управления потенциометром X9C102, X9C103, X9C104

Здесь VW – напряжение на центральном выводе.

Давайте соберём схему, как показано на рисунке:

Схема подключения цифрового потенциометра X9C102, X9C103, X9C104 к Arduino

Схема подключения цифрового потенциометра X9C102, X9C103, X9C104 к Arduino

Модуль требует питание +5 В.

3 Скетч управления цифровым потенциометром X9C102, X9C103, X9C104

Теперь напишем вот такой скетч:

Данный скетч содержит такой алгоритм: повышаем каждые 100 мс с шагом 10% сопротивление от 0 до 100% от максимума потенциометра.

Загрузим данный скетч в память платы Arduino.

4 Проверка работы цифрового потенциометра X9C102/103/104

С помощью логического анализатора посмотрим, получилось ли соблюсти временную диаграмму управления потенциометром:

Временная диаграмма управления цифровым потенциометром X9C

Временная диаграмма управления цифровым потенциометром X9C

Видно, что вполне. Опускаем линию CS в LOW, а также U/ D в LOW (уменьшение выходного сопротивления). Когда на INC отсчитали 100 импульсов, поднимаем U/ D в HIGH (изменяем сопротивление в сторону увеличения). С помощью INC относительно выставленного нулевого сопротивления начинаем отсчитывать нужное значение (в данном случае 10 импульсов равны 10% от максимума потенциометра).

Потенциометр X9C102/103/104 имеет 100 градаций сопротивления между минимальным и максимальным. Это позволяет не вводить никаких коэффициентов для пересчёта процентов в импульсы. Например: 10 импульсов INC изменяют текущее значение выходного сопротивления на 10%.

Если теперь с помощью мультиметра проконтролировать сопротивление между центральным и одним из конечных выводов, то мы зафиксируем изменения сопротивления.

Для наглядности я подам напряжение 5 вольт между конечными выводами потенциометра, а к центральному контакту подключу осциллограф DSO138. Фотографии и видео ниже иллюстрируют результат.

Изменение напряжения с помощью цифрового потенциометра X9C Изменение напряжения с помощью цифрового потенциометра X9C

Неплохая достаточно подробная статья про виды и устройство потенциометров тут.

Кстати, для экспресс-тестирования работы с потенциометром X9C103 отлично подходят микросхемы фирмы FTDI (FT2232 или другие) и программа SPI via FTDI. Для этого мы пин "CS" модуля подключаем к CS микросхемы FT2232, пин "U/D" – к пину DO, и записываем в режиме SPI нужное число байтов. Так, чтобы послать 10 импульсов потенциометру, можно послать 10 байтов 0x01 или 5 байтов 0x0A (в двоичном виде это 0101), и т.д.

Управление цифровым потенциометром X9C103 с помощью микросхемы FT2232H

Управление цифровым потенциометром X9C103 с помощью микросхемы FT2232H

Читайте также: