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

MCP3422 LT3092 ULN2003

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

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

Миллиомметр с ЖК-индикатором на 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. К измерительным щупам миллиомметра подключен тестовый резистор.

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

Загрузки

  1. Исходный код (скетч Arduino), проектные файлы печатной платы и корпуса

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

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

MCP3422 Купить ЦенаКупить MCP3422 на РадиоЛоцман.Цены
BOARD EVAL MCP3422 PICKIT SERIAL
ЭИК
Россия
MCP3422EV
Microchip
1 061 ₽
Кремний
Россия и страны СНГ
MCP3422A6-E/SN
Microchip
по запросу
Зенер
Россия и страны ТС
MCP3422EV
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ключил и уже с малоомными резисторами легче.
  • Согласен ...
Полный вариант обсуждения »