Информационное письмо
Образец оформления статьи
Анкета автора
28.02.2018

Мультиметр с компьютерным управлением

Сырцова Анастасия Олеговна
магистрант, факультет «Информатика и вычислительная техника», ФБГОУ «Московский государственный технический университет имени Н.Э. Баумана», г. Москва, Россия
Аннотация: Спроектирован и изготовлен электронный измерительный прибор с компьютерным управлением, предназначенный для измерения напряжения постоянного и переменного тока с диапазонами 0,54 мВ, 5, 10 и 30 В, силы тока до 2 А. Измерительное ядро прибора – Arduino UNO, электрическая схема выполнена на платах пяти модулей. Проведено моделирование в программе LTSpice основных узлов прибора.
Ключевые слова: измерение, мультиметр, напряжение, сила тока, моделирование
Электронная версия
Скачать (955.5 Kb)

Мультиметр — сложное электронное устройство, предназначенное для измерения нескольких электрических величин. Обычно мультиметр представляет собой автономный, более или менее компактный прибор, управляемый с помощью переключателей или клавиатуры, размещенных на его корпусе. С развитием вычислительной техники (компьютеров) появилась возможность и в ряде случаев потребность в дистанционном управлении измерительными приборами, в том числе и мультиметрами. В связи с этим целью данной работы была определена разработка мультиметра с компьютерным управлением.На рис.1 представлена физическа структура схемы мультиметра.

Рис. 1. Физическая структура измерительной схемы: А – модуль диапазонов измерения, Б – блок выпрямителя модуля выпрямления, В – блок сглаживающих фильтров модуля выпрямления, Г – модуль детектирования направления тока, Д – модуль инвертирования.

Рис. 1. Физическая структура измерительной схемы: А – модуль диапазонов измерения, Б – блок выпрямителя модуля выпрямления,
В – блок сглаживающих фильтров модуля выпрямления, Г – модуль детектирования направления тока, Д – модуль инвертирования.

В качестве измерительного ядра мультиметра выбран микроконтроллер широко используемого в настоящее время устройства Arduino UNO [1-3].

Делитель напряжения, выполненный на резисторах, позволяет реализовать 4 диапазона измерения напряжения: 5, 10 и 30 В. Использование операционного усилителя позволило добавить диапазон с напряжением 0,54 мВ.

Для обеспечения защиты и ограничения напряжения, подаваемого на вход Arduino, использован стабилитрон.

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

В настоящей работе проведено моделирование в программе LTSpice работы трех типов фильтров (Баттерворта, Чебышева, Бесселя [4,5]) при различных номиналах резисторов и конденсаторов. Результаты моделирования для некоторых вариантов этих фильтров представлены на рис. 2.

Рис. 2. Моделирование схемы выпрямителя и фильтров: А и Г – Баттерворта, Б и Д – Чебышева, В и Е – Бесселя; частота: А, Б, В – 1 Гц, Г, Д, Е – 10 Гц

Рис. 2. Моделирование схемы выпрямителя и фильтров: А и Г – Баттерворта, Б и Д – Чебышева, В и Е – Бесселя; частота: А, Б, В – 1 Гц, Г, Д, Е – 10 Гц

Как видно, на частоте 1 Гц фильтр Бесселя сглаживает пульсации напряжения лучше, однако время установления выходного сигнала больше в 2 раза по сравнению с фильтрами Баттерворта и Чебышева. Фильтр Чебышева дает самую большую величину пульсаций.

При увеличении частоты до 10 Гц, величина пульсаций после фильтра Чебышева также остаётся больше пульсаций после фильтров Баттерворта и Бесселя. Фильтр Баттерворта устанавливает выпрямленный выходной сигнал более чем в 2 раза быстрее фильтра Бесселя.

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

На основе анализа результатов моделирования различных комбинаций фильтров была выбрана оптимальная цепочка, состоящая из фильтра Баттерворта, RC-фильтра и фильтра Чебышева. Величина пульсаций на частоте в 1 Гц составляет около 1% от входного напряжения времени установления сигнала порядка 3 с.

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

Результаты моделирования разработанного модуля выпрямления представлены на рис. 3.

Рис. 3. Моделирование модуля выпрямления в LTSpice. Входное напряжение: А и Б – 5 мВ, В и Г – 5 В; частота: А и В – 1 Гц, Б и Г – 50Гц

Рис. 3. Моделирование модуля выпрямления в LTSpice. Входное напряжение: А и Б – 5 мВ, В и Г – 5 В; частота: А и В – 1 Гц, Б и Г – 50Гц

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

Модуль Г предназначен для определения знака подаваемого напряжения. Операционные усилители в этом блоке предназначены для корректировки падения напряжения на диоде. Моделирование модуля детектирования в LTSpice показало, что при любом напряжении в диапазоне от 5мВ до 5В напряжение, поступающее на вход АЦП, будет достаточным для надёжного детектирования знака. При отрицательном напряжении в диапазоне от -5мВ до -5В напряжение после диода практически равно нулю.

В соответствии с наличием или отсутствием какого-либо напряжения на входе АЦП Arduino UNO, необходимо либо инвертировать напряжение, либо пропустить его на другой вход АЦП, который зарезервирован для проведения основных измерений напряжения. Для этого в схему мультиметра введен модуль Д инвертирования с предусмотренным пустым проводом.

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

Переключение между частями преобразователя производится с помощью реле. Один из выводов реле подключается к соответствующему цифровому входу микроконтроллера, а второй служит для подключения модуля реле к питанию. Напряжение питания выбрано равным 5 В, так как его можно получить с Arduino UNO, подключившись к предназначенному для этого разъёму.

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

Логическая структура программного комплекса мультиметра показана на рис. 5. Программа для Arduino выполняет следующие функции:

  • принимать и обрабатывать данные, полученные с АЦП;

  • отправлять обработанные данные в управляющее приложение;

  • принимать команды от управляющего приложения о необходимости переключения участка цепи;

  • управлять состоянием реле по команде.

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

Рис. 5. Логическая структура программного комплекса мультиметра
Рис. 5. Логическая структура программного комплекса мультиметра

Управляющее приложение должно выполнять следующие функции:

  • отображать интерфейс для взаимодействия между пользователем и компьютером;

  • посылать сигналы на Arduino в зависимости от выбора, сделанного пользователем;

  • принимать обработанные данные и выводить их на экран.

Настройка взаимодействия программ происходит по Serial порту.

Для разгрузки последовательного порта добавляется булева переменная. Поскольку данных от управляющего приложения поступает меньше, чем данных об измеренных значениях, приоритетность по использованию Serial порта отдаётся Arduino.

Вводится функция посыла строки в управляющую программу establishContact() со стороны Arduino. Получение ответа от неё означает, что она готова на приём данных.

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

  • считывание поступающих данных;

  • проверка на пустой массив данных или «ноль»;

  • удаление пробелов;

  • при первом приёме данных изменение значение булевой переменной firstContact (необходимой для определения соединения с Arduino) и сообщение микроконтроллеру о готовности к приёму данных;

  • при повторном приёме необходимого типа данных отображение их в консоли и ответ микроконтроллеру о событии (например, о клике на интерфейсную кнопку);

  • сообщение микроконтроллеру о готовности принимать новые данные.

Таким образом, взаимодействие организовано следующим образом:

  • При запуске Arduino отсылает приветственное сообщение, после которого начинается обмен управляющими символами;

  • Если в порту обнаруживается «A», управляющая программа принимает значения;

  • Если в порту обнаруживается «1», микроконтроллер принимает сигнал.

Принятие данных организовано с помощью стандартной команды AnalogRead().

Данные, получаемые с АЦП — целые числа, находящиеся в диапазоне от 0 до 1023. Преобразование этих данных в значение измеряемой величины происходит расчетом по формуле


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

Логически процесс переключения происходит следующим образом:

  • пользователь нажимает на кнопку;

  • управляющая программа реагирует на её нажатие и посылает об этом сигнал микроконтроллеру;

  • микроконтроллер воспринимает данные, полученные от управляющей программы;

  • в соответствии с тем, какие данные пришли от управляющей программы, переключается определенное реле или несколько.

Переключение реле можно выполнять с помощью команды digitalWrite(a, b), где a — номер порта, b — низкий (Low) или высокий (High) уровень напряжения на этом порту.

За каждой интерфейсной кнопкой закрепляется определённый символ, который позволяет определять нажатую кнопку и передавать этот символ в микроконтроллер, по которому бы он понимал, какие именно реле нужно переключить и в какие положения.

В управляющей программе используются 2 функции: стандартные функции mousePressed и MouseIsOver(). Обе эти функции соединены через конъюнкцию в условии оператора «Если». Внутри этого оператора в последовательный порт отправляется символ, означающий нажатие конкретной кнопки.

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

Передача измеренных значений из Arduino в управляющую программу происходит следующим образом.

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

Значение вычисляется по формуле (1), далее к нему добавляются единицы измерения: ампер или вольт. В конце к нему возможно добавление знака «-», положительный знак не ставится.

Интерфейс программы управления представлен на рис. 6.

Рис. 6. Интерфейс программы   

Рис. 6. Интерфейс программы

Заключение.

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

Список литературы:

  1. Arduino [Электронный ресурс]. – Режим доступа: http://arduino.ru/About (Дата обращения: 16.12.2017 г.).

  2. Программирование Ардуино [Электронный ресурс]. – Режим доступа: http://arduino.ru/Reference (Дата обращения: 01.12.2017 г.).

  3. Processing — язык программирования в Arduino [Электронный ресурс]. – Режим доступа: https://voltiq.ru/wiki/processing/ (Дата обращения: 01.11.2017 г.).

  4. Хоровиц П., Хилл У. Искусство схемотехники. М.: Мир, 2003.

  5. Активные фильтры. / Е.Н. Егоров, А.А Короновский, А.Е. Храмов. [Электронный ресурс]. – Режим доступа: http://www.sgu.ru/sites/default/files/textdocsfiles/2015/02/16/08_aktivnye_filtry.pdf (Дата обращения: 01.12.2017 г.).