Назад в библиотеку

УДК 004.3                      

РАЗРАБОРКА БЕСПРОВОДНОГО ЦИФРОВОГО ИЗМЕРИТЕЛЯ

 

Янушкевич В.А., Новикова А.А., Цололо С.А.

ГВУЗ «Донецкий национальный технический университет», г. Донецк, Украина

vadik.ya@gmail.com, stasy.novikova@gmail.com

 

Аннотация:

Янушкевич В.А., Новикова А.А. Разработка беспроводного цифрового измерителя. Разработано беспроводное устройство измерения сопротивления. В комбинации с любым датчиком (потенциометром), предоставляет возможность измерять сопротивление, оцифровывать значения, передавать их на рабочую станцию и немедленно обрабатывать измеряемый сигнал. Устройство питается от 4 батареек R6 1.5V. На рабочей станции используется стандартный HID драйвер, поэтому дополнительная установка драйверов не требуется.

 

Введение

Существует множество различных способов измерения сопротивления и оцифровки сигнала. Наиболее распространённым способом оцифровки сигнала является использование готовых коммерческих микросхем аналого-цифровых преобразователей (АЦП)[1]. В данной работе рассматривается другой способ — измерение сопротивления путём замера скорости разряда конденсатора. Реализация этого способа значительно дешевле, чем использование коммерческих АЦП, а скорость работы устройства приемлема для многих задач. Для передачи на рабочую станцию может быть использован контроллер беспроводной клавиатуры,  а управляет работой всей схемы микроконтроллер ATmega32 производства фирмы Atmel.

Прежде всего, рассмотрим принцип управления клавиатурой.

Управление клавиатурой с помощью цифрового сигнала

Контроллер стандартной клавиатуры имеет 26 контактов, используемых для опроса состояний клавиш. Они разделены по назначению на 2 группы, по 13 контактов в  каждой. Условно назовем их порт A и порт B. Часть платы контроллера клавиатуры  изображена на рис 1.

Рис. 1 – Контакты контроллера клавиатуры

К каждой клавише на клавиатуре подведен один из контактов порта А и один из контактов порта B. Если задействовать все пары контактов контроллера, то максимально возможное число клавиш 13 * 13 = 169. При нажатии на клавишу соответствующие контакты портов А и B замыкаются. В контроллере порт А является портом ввода с подтягивающим  резистором. Это значит, что он имеет высокое выходное сопротивление (порядка 40 кОм) и если он ни к чему не подключен, то на его выходе фиксируется высокий уровень (3 вольта). Порт B является портом вывода, выходное сопротивление порядка 20 Ом. В каждый момент времени только 1 контакт порта В имеет на выходе низкий уровень, остальные зафиксированы в высоком.

Чтобы проверить состояние группы клавиш, связанных с конкретным контактом порта В, контроллер сбрасывает напряжение на этом контакте в логический «0»(0В).  Если нажата клавиша, связанная с этим контактом порта B, то низкий уровень пройдет через неё на соответствующий контакт порта А. Контроллер прочитает значение порта А, и таким образом определит, какие клавиши нажаты [2].

На рис.2 приведены контакты, используемые в данной работе для организации передачи данных. Так же, написанный рядом символ соответствует нажимаемой клавише в английской раскладке клавиатуры. Опрос клавиш контроллер проводит беспрерывно, на частоте 200 Гц.

Рис. 2 — Используемые контакты и соответствующие им символы

 

Для того, что бы иметь возможность с помощью внешнего цифрового электрического сигнала (принимающего значения 0В и 5В) замыкать и размыкать контакты, используется схема согласования, приведенная на рисунке 3.

Описание: C:\Documents and Settings\Loner\Рабочий стол\asdfsdaf.png

Рис.3 — Схема управления клавиатурой

 

Принцип действия схемы таков: напряжение на управляющих контактах C0..C4 может принимать значения только 0В или 5В. Рассмотрим работу схемы для управляющего сигнала С0. Для остальных сигналов схема работает абсолютно аналогично.  Когда С0 = 0В (НУ), то не зависимо от напряжение на выходе B7 транзистор Q1 закрыт, и его присутствие не влияет на работу схемы, цепь разомкнута. Если C0 = 5В, то транзистор Q1 находится в режиме насыщения при любом допустимом напряжении на линии B7 (от 0 до 3В). При этом напряжение на коллекторе Q1 полностью повторяет напряжение на  эмиттере, то есть образуется замкнутая цепь. 

Измерение текущего сопротивления потенциометра

Для измерения сопротивления используем следующий способ. Подключаем конденсатор к цифровому порту ввода-вывода микроконтроллера. Конденсатор заряжается до напряжения питания через низкое сопротивление (порт в режиме вывода), потом запускается отсчет времени, и конденсатор разряжается через потенциометр. Порт при этом переключается в режим ввода, которому соответствует высокое выходное сопротивление. Когда напряжение на конденсаторе падает до 1.4В, значение логического уровня переключается, и отсчет времени прекращается. Полученное время разряда пропорционально текущему сопротивлению потенциометра.  Схема измерения приведена на рис 4, где A0, A1 — ножки МК, цифровой порт А.

Описание: C:\Documents and Settings\Loner\Рабочий стол\dsfsdafasdf.png

Рис.4 — Схема измерения сопротивления потенциометра

 

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

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

Формула времени разряда конденсатора через резистор имеет вид:  

(1)

Необходимо подобрать R и С таким образом, что бы обеспечить время разряда с 5В  (ВУ) до 1.4В (переключения логического уровня в «0») за время 20мс при максимальном сопротивлении, и за время 2мс при минимальном сопротивлении. При этом величина ёмкости постоянна в обоих случаях, а R отличается на 50кОм (сопротивление потенциометра). Время было выбрано из соображений точности, скорости работы микроконтроллера и  наиболее точного соответствия реальным номиналам резисторов и конденсаторов.

Подставив значения в формулу (1), и решая систему уравнений, определяем значение резистора R13 и конденсатора C1.

(2)

        Решая систему уравнений (2) относительно R и C, получаем приближенные номиналы  резистора и ёмкости:

Окончательный выбор номиналов элементов схемы выглядит так:

R12 = 220 Ом;   R13 = 6.8 кОм;  R14 = 1 кОм; R15 = 0..50 кОм; С1 = 1 мкФ.

Измерения производятся с точностью 8 бит. Для масштабирования измеренного времени в диапазон 0 – 255 (1 байт) используется программный коэффициент, при этом значение сопротивления R15=0 принимается за условный «0», а значение сопротивления  R15=50 кОм за «255».  На рис 5 приведена общая схема устройства, которая состоит из схемы управления клавиатурой, схемы измерения, схемы питания, контроллера клавиатуры и управляющего контроллера.

Описание: C:\Documents and Settings\Loner\Рабочий стол\sfsafasdf.png

Рис.5 — Общая схема устройства оцифровки и передачи сигнала

 

Схема питания построена на элементах питания и делителях напряжения. Номиналы резисторов: R6=110 Ом, R7=1.5 кОм R8=5.6 кОм R9=1.5 кОм R10=2 кОм R11=2.2 кОм.

Передача данных на компьютер

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

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

            Кодировка символов:                     


A7 – B7 (;)  - старт передачи

            A1 – B7 (p) - 00

            A3 – B7 (\)  - 01

A4 – B7 (0)  - 10

A5 – B7 (')   - 11

 


 

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

Например, пусть контроллером были переданы символы «;p''\». Тогда переданное число равняется 00111101b = 0x3D = 61. Передача идет беспрерывно и достигает скорости нескольких байт в секунду. Основное ограничение по скорости передачи определяется частотой опроса состояния клавиш контроллером клавиатуры.

        Применение устройства

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

 

Описание: F:\STUD\6sem\Конф\game1.jpg

Выводы

В работе рассмотрены способы измерения  сопротивления потенциометра и  передача измеренного значения на компьютер с помощью беспроводной клавиатуры. Предложен способ измерения аналогового сигнала путем измерения скорости разряда конденсатора цифровым входом микроконтроллера. Преимуществом этого способа, перед использованием коммерческих АЦП, является цена. Точность измерения составляет не менее 8 бит, время измерения – 0.02 секунды. Таким образом, разработано устройство, реализующее измерение и передачу сигнала через беспроводной канал передачи, посредством клавиатуры. Скорость работы устройства ограничена, но удовлетворяет потребностям систем контроля, не требующих измерения чаще, чем несколько раз в секунду. Увеличить скорость работы можно, изменив протокол передачи и добавив дополнительные символы для кодирования передаваемого байта.

 

Литература

1.    Волович Г.И. Схемотехника аналоговых и аналого-цифровых электронных устройств: Додэка-XXI, 2007.

2.    SK5100/SK5101 FlexMatrix Keyboard Controller. – Sprintek Corporation, 2010. – 27c.

3.    Колин Мук ActionScript 3.0 для Flash. Подробное руководство. – Пер. с англ. – СПб.: Питер, 2009. – 992с.

4.    Лотт Д., Шалл Д., Питерс К. ActionScript 3.0. Сборник рецептов. – Пер. с англ. –СПб: Символ-Плюс, 2007. – 608с.