Линейка продуктов KEEN SIDE

Миллиомметр с ЖК-индикатором на Arduino своими руками

MCP3422 LT3092 ULN2003

У каждого радиолюбителя, инженера, разработчика есть различного рода измерительные приборы. Это могут быть как сложные многофункциональные приборы промышленного изготовления, так и простые вольтметры, амперметры, измерители емкости аккумуляторов, омметры, измерители ESR, которые собраны своими руками. Об одном из таких приборов, который пригодиться любому радиолюбителю, пойдет речь в статье (Рисунок 1).

Компактные и мощные DC/DC-преобразователи MEAN WELL серии RQB со склада КОМПЭЛ

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

Миллиомметр с ЖК-индикатором на Arduino.
Рисунок 1. Миллиомметр с ЖК-индикатором на Arduino.

В сети Интернет можно встретить много подобных конструкций, но в статье мы рассмотрим версию прибора, которая отличается реализацией аппаратной части. В миллиомметре используется прецизионный приемник тока и аналого-цифровой преобразователь (АЦП) высокого разрешения. Управление приемником тока (для выбора диапазона измерений) и АЦП осуществляет микроконтроллер (МК) на плате Arduino Nano (Рисунок 2). Полный список компонентов, примененных в приборе, приведен в Таблице 1 ниже.

Принципиальная схема миллиомметра на Arduino.
Рисунок 2. Принципиальная схема миллиомметра на Arduino.

Микросхема LT3092 представляет собой интегральный прецизионный источник тока, но в данной конструкции используется в режиме приемника тока (или источника втекающего тока). Для управления приемником тока использованы цепи на транзисторах T1, T2, T3 и резисторах R12, R13, R14. Управление транзисторами (выбор диапазона измерения) выполняет МК через микросхему ULN2003 (набор мощных составных ключей).

В качестве АЦП используется микросхема MCP3422A0. Это 18-разрядный двухканальный АЦП последовательного приближения со встроенным источником опорного напряжения и выходным интерфейсом I2C. Входные каналы АЦП являются дифференциальными, поэтому в приборе используется только один канал микросхемы (CH1+ и CH1-), который подключается к тестируемому резистору (сигналы S+ и S-). АЦП настроен на разрешение 18 бит, но, поскольку S+ всегда больше чем S-, эффективное разрешение будет 17 бит.

Чтобы уменьшить влияние сопротивления измерительных проводов (щупов) на результаты измерений, в приборе для подключения исследуемого резистора к точке измерения используются специальные тестовые зажимы Кельвина (Рисунок 3). Это 4-проводные щупы предназначенные для измерения сопротивления методом Кельвина.

Специализированные тестовые щупы Кельвина.
Рисунок 3. Специализированные тестовые щупы Кельвина.

Прибор имеет три диапазона измерений:

  • Диапазон 0m1:  от 0.1 мОм до 12.999 Ом;
  • Диапазон 1m0: от 1 мОм до 129.999 Ом;
  • Диапазон 10m: от 10 мОм до 1299.99 Ом.

Выбор диапазона измерения производится одной из двух кнопок в приборе. Результаты измерений и текущий диапазон измерения отображаются на двухстрочном ЖК индикаторе (стандартный ЖК индикатор 16×2).  

Питается прибор от внешнего блока 12 В. Питание измерительных цепей, приемника тока, АЦП, ЖК индикатора осуществляется от встроенного на плату Arduino Nano регулятора напряжения 5 В.

Из-за сложности проекта не рекомендуется выполнять монтаж элементов на монтажной плате, это отнимет много времени и не исключит ошибки. Для прибора была разработана печатная плата в САПР Eagle. Внешний вид проекта печатной платы изображен на Рисунке 4. Схема и проект печатной платы доступны для скачивания в разделе загрузок. Вид готовой платы представлен на Рисунке 5. Как можно заметить (по печатной плате и по списку примененных компонентов), большинство элементов в корпусах для поверхностного монтажа, поэтому для их установки потребуется пинцет, паяльный фен или паяльник с тонким жалом.

Проект печатной платы для миллиомметра разработан в САПР Eagle.
Рисунок 4. Проект печатной платы для миллиомметра разработан в САПР Eagle.
 
Внешний вид готовой печатной платы миллиомметра на Arduino.
Рисунок 5. Внешний вид готовой печатной платы миллиомметра на Arduino.
 
Таблица 1. Список примененных компонентов.
Обозначение в схеме Количество Описание, корпус
C1, C2, C3, C4 4 100 нФ, 50 В, SMD 0603, X5R
R1, R2, R5, R6, R7, R8,
R9, R16, R17
9 4.7 кОм, 5%, SMD 0603
R3, R4, R18, R19, R20 5 470 Ом, 5%, SMD 0603
R10 1 30.9 кОм, 0.1%, SMD 0603
R11 1 31.6 кОм, 0.1%, SMD 0603
R12 1 1 Ом, 0.5%, SMD 1206
R13 1 10 Ом, 0.1%, SMD 0603
R14 1 100 Ом, 0.1%, SMD 0604
R15 1 Самовосстанавливающийся предохранитель,
250 мА, SMD 1206
D1 1 Защитный диод, SMBJ12CA-13-F
D2 1 Диод Шоттки, B340LB-13-F
D3, D4 2 MMBZ10VAL, SMD SOT23
IC1 1 Arduino Nano
IC2 1 MCP3422A0, SMD SOIC8
IC3 1 ULN2003APWR, SMD TSSOP16
IC4 1 LT3092EST
T1 1 PSMN0R9-25YLC, SMD LFPAK
T2, T3 2 PMV20EN, SMD SOT23
J1, J2, J4 3 2--выводные угловые разъемы на плату
J3, J5 2 4-выводные угловые разъемы на плату

Корпус

Чтобы прибор имел презентабельный вид, для него был разработан алюминиевый корпус. Необходимые файлы проекта (Inkscape), шаблоны и трафареты также доступны в разделе загрузок.

На передней панели прибора расположены кнопки управления (выбор диапазона измерения, удержание показаний), разъемы для подключения тестовых щупов и ЖК-индикатор. Внешний вид передней панели прибора и расположение на ней кнопок, разъемов и индикатора изображено на Рисунке 6.

Вариант передней панели и корпуса миллиомметра.
Вариант передней панели и корпуса миллиомметра.
Передняя панель миллиомметра.
Рисунок 6. Вариант передней панели и корпуса миллиомметра.

Подключение ЖК-индикатора, разъемов  и кнопок указано на Рисунке 7. На рисунке отмечено: 1 – печатная плата прибора, 2 – разъем внешнего питания, 3 – ЖК-индикатор, 4 –разъемы для тестовых щупов Кельвина, 5 –кнопки управления.

Подключение кнопок управления, ЖК индикатора, тестовых щупов к разъемам на печатной плате миллиомметра.
Рисунок 7. Подключение кнопок управления, ЖК индикатора, тестовых щупов к разъемам на
печатной плате миллиомметра.

Программная реализация

Алгоритм работы прибора и сам код довольно сложны. Необходимо установить диапазон измерения, управляя входами ULN2003 (выходы Arduino D10, D11, D12), который вместе с режимом работы (определяется состоянием кнопок) учитывается в дальнейшем. Затем выполняется считывание АЦП для расчета сопротивления и отображение значения на индикаторе.

С целью упрощения программного кода в скетче было использовано несколько библиотек, в том числе Wire.h, LiquidCrystal_I2C и библиотека для работы с EEPROM. Библиотека Wire используется для облегчения процесса обмена данными по шине I2C между Arduino, ЖК индикатором и АЦП. Частота тактового сигнала шины I2C выбрана 400 кГц. Библиотека LiquidCrystal_I2C (не предустановленная в Arduino IDE) помогает взаимодействовать с ЖК-индикатором, а библиотека EEPROM используется для доступа к энергонезависимой памяти МК, обеспечивая хранение информации о режиме работы и диапазоне измерения.

Библиотеки Wire и EEPROM предуставновлены в среде Arduino IDE, библиотеку LiquidCrystal_I2C можно установить с помощью менеджера билиотек.

Исходный код довольно громоздкий, но снабжен подробными комментариями. Тем не менее, стоит пояснить, что работа с измерительным узлом, АЦП и индикатором в исходном коде строится на основе определений, макросов и функций. Поэтому основные функции setup() и loop() содержат очень мало строк кода. Скетч доступен для скачивания в разделе загрузок.

После компиляции скетча в Arduino IDE загрузите его в плату, и, если все правильно собрано, прибор запустится (Рисунок 8).

Миллиомметр на Arduino
Рисунок 8. Работа миллиомметра, если к измерительным щупам ничего не подключено.

Если подключить к измерительным щупам резистор с сопротивлением миллиомного диапазона, то на индикаторе вы увидете значение сопротивления (Рисунок 9).

Миллиомметр на Arduino
Рисунок 9. К измерительным щупам миллиомметра подключен тестовый резистор.

Ниже вы можете посмотреть видео о работе миллиомметра.

Загрузки

Перевод: Vadim по заказу РадиоЛоцман

На английском языке: Arduino based Milliohm Meter with LCD display

10 предложений от 10 поставщиков
Набор разработчика, Evaluation Board For 18Bit Multichannel Analog To Digital Converter With IC Interface
Lixinc Electronics
Весь мир
MCP3422EV
1 229 ₽
ChipWorker
Весь мир
MCP3422EV
Microchip
1 707 ₽
MCP3422
Microchip
по запросу
Кремний
Россия и страны СНГ
MCP3422EV
Microchip
по запросу
ТМ Электроникс. Электронные компоненты и приборы. Скидки, кэшбэк и бесплатная доставка
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя
Фрагменты обсуждения:Полный вариант обсуждения »
  • 0,1 mOm или всё таки 0,1 Ом???
  • Дык указанно ж в статьё: "Диапазон 0m1: от 0.1 мОм до 12.999 Ом;"
  • Судя по токозадающим резисторам , всё же 0,1 Ом.
  • В английском варианте написано так: Scale 0m1: 0.1 mOhm to 12.9999 Ohm. Scale 1m0: 1 mOhm to 129.999 Ohm. Scale 10m: 10 mOhm to 1299.99 Ohm. То есть, в переводе во втором и третьем диапазоне нижняя граница наврана на три порядка.
  • Ом, наверное, а не миллиом. Подозрительная схемка. При токе в 1А на измеряемом сопротивлении в 100 микроом упадет 100 микровольт. И они этой схемкой-игрушкой эти микровольты померяют ? Не верю. Мало того, они использовали источник тока на микросхеме, которая физически не может дать больше 200мА. Т.е., даже не ампер, а в 5 раз меньше (!!!). Т.е., имеем 20 микровольт. Эта игрушка их измерит ? Не верю. В свое время делал обзоры микроомметров с целью купить себе такой прибор. Не вопрос, они есть, но измерительный ток там на нижних диапазонах - 5 или 10А. А тут ...
  • не путайте теплое с мягким.... именно 0,1милиОм просто перевод рогобанский, scale в даном случае не диапазон, а масштаб или градация , применительно к цифровому показометру МЗР(младший значащий раздяд) , вы же не пытаетесь микроамперметром на 100мкА измерять 0,1мкА. и да покажет, даже без усилителя АЦП имеет МЗР 2.048в/2^18 = 7.8мкВ
  • Ладно. Лично не собирал. Но сомневаюсь. Очень. Ибо проектировал нечто подобное. На токе в 200 мА мерить доли миллиома - это что-то (у меня был 18-разрядный АЦП) ...
  • Для этих целей я [URL="https://www.priborelektro.ru/product/catalog/izmeriteli-immitansa-rlc-12/514.html"]использую Е7-8[/URL], купил как-то на барахолке. Прибор не врет даже спустя 30 лет. Но его, конечно, в карман не положишь.
  • Да есть они, переносные, современные. И все в них хорошо, кроме стоимости :) [url]https://masteram.com.ua/uk/catalogue/test-and-measuring-equipment/other-meters-and-testers/micro-ohm-meter/[/url] А на советские приборы так и вовсе цены заоблачные. Вот я и взялся за проектирование своего прибора. А вообще, для разового измерения (нужно было измерить сопротивление сварочного кабеля) я поступил проще. Взял комп. БП и нагрузил его 5В - канал упомянутым кабелем через проволочный резистор. Получился ток порядка 10 А. Дальше все просто. Берем чувствительный вольтметр и измеряем напряжение на кабеле. Ток есть, напряжение есть. Дальше - закон Ома ...
  • Я при наличии нормальных приборов таким способом довольно часто пользуюсь!
  • Просто хороший, чувствительный вольтметр стоит гораздо дешевле миллиомметра. А остальные необходимые для опыта детали: провода, комп. БП, проволочные резисторы - вообще бесплатны или стоят чисто символически ...
  • Ошибка в описании, переводе. Уже поправили
  • А есть такой измеритель еср, и резисторов до миллиОм [url]https://vrtp.ru/index.php?showtopic=26768&st=0[/url]
  • И вот фото чё бы не быть голословным :
  • Все так, только эквивалентное опорное напряжение АЦП 256 мВ. 18 разрядов. Разрешающая способность примерно 1 мкВ
  • ..... и этот самый микровольт утонет в шумах, вызванных, как минимум, неграмотной разводкой. Не случайно микроомметры фабричного производства стоят так дорого ...
  • Для дежурных, бытовых нужд и такое сгодиться. [url]http://chemelec.com/Projects/Low-Ohm/Low-Ohm.htm[/url] В китай тестер воткнул, зарядку от сотового поlключил и уже с малоомными резисторами легче.
  • Согласен ...
Полный вариант обсуждения »