ARDUINO Измеритель LC

Измеритель LC
Относительно простой и относительно дешевый измеритель емкости и индуктивности. Делюсь опытом своего повторения устройства и переводом программы на Arduino IDE.

110pf.jpg

Модуль измерителя
lc_meter_mearurementModule_1.png

Плата питания и Arduino Nano
lc_meter_MCmodule_1.png

Не стану излагать здесь всю теорию, ибо она хорошо описана в источниках. (советую почитать, интересно!)

Принцип измерения заключается в подаче меандра на измеряемый конденсатор или индуктивность и преобразовании тока разряда конденсатора (или тока индуктивности) в напряжение, которое сглаживается и подается на АЦП Arduino. При измерении емкости конденсатор во время положительного полупериода заряжается через резистор R6 и диод D5, во время отрицательного разряжается через резистор R6 и диод D1, и его разрядный ток поступает на вход 2 U1. При измерении индуктивности во время положительного полупериода ток в катушке нарастает до значения, определяемого номиналом резистора R7, а во время отрицательной - ток, создаваемый ЭДС самоиндукции через D2 и R2, RV2 также поступает на вход U1. Ток разряда конденсатора (а, значит, и напряжение на выходе измерителя) прямо пропорционален его емкости, если конденсатор успевает полностью зарядиться за положительный полупериод и полностью разрядиться за отрицательный. Также и ток самоиндукции катушки прямо пропорционален ее индуктивности, если ток в ней успевает нарастать до максимального значения и спадать до нуля.

Для этого частота автоматически изменяется от 1 мегагерца до 15 герц в зависимости от значения напряжения на выходе измерителя. Прибор имеет 9 диапазонов измерения, и на каждом последующем диапазоне частота снижается, а предел измерения увеличивается в 4 раза. На первом диапазоне частота равна 1 МГц, и максимальное измеряемое значение ~90 пФ/мкГн.
Диапазон/частота/макс. измеряемое значение:
//  |   Range  | frequency | max value
//  |   1(0)   | 1,000,000 |  89.2  
//  |   2(1)   | 250,000   |  356.8
//  |   3(2)   | 62,500    |  1427.2
//  |   4(3)   | 15,625    |  5,708.8
//  |   5(4)   | 3,906     |  22,835.2
//  |   6(5)   | 976       |  91,340.8
//  |   7(6)   | 244       |  365,363.2
//  |   8(7)   | 61        |  1,461,452.8
//  |   9(8)   | 15        |  5,845,811.2

Функционал. Я не стал отходить от первоначальной концепции, и функционал устройства можно описать вырезкой из первоисточника (в [] указаны обозначения на моей схеме):

"Кнопка SB1 [J2 Calibration] служит для программной коррекции нуля, что компенсирует начальное смещение нуля ОУ, а также емкость и индуктивность клемм и переключателя SA1 [SW1]. Нужный диапазон выбирается автоматически, причем после включения питания измерение начинается с 9 диапазона.

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

Результат измерения отображается в верхней строке. Измеренное значение напряжения с выхода ОУ интерпретируется как емкость или индуктивность в зависимости от положения переключателя SA1 [J3 MODE]"

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

330 нФ
330nf.jpg

10 мкГн 10%
Inductor.jpg

Калибровка
Calibration.jpg

Github проекта

Схема и печатная плата модуля измерителя KiCAD
Схема и печатная плата модуля питания и Arduino KiCAD
3D модель и чертежи корпуса FreeCAD

Источники:
https://ra4nal.ontvtime.ru/lc_arduino.shtml
Радио №3 1982
 

Вложения

Изменено:

Комментарии

aleks-22

✩✩✩✩✩✩✩
29 Дек 2021
1
0
приветствую.хочу собрать L C метр на Arduino UNO так как это девайс лежит без дела.если не трудно подправить прошивку под этот девайс.
 

edkotinsky

★✩✩✩✩✩✩
5 Мар 2021
19
17
22
Алматы
@aleks-22, прошивка изначально тестировалась на Arduino UNO, и затем на Nano. Они идентичны, поскольку у них один и тот же микроконтроллер - ATmega328P.
 

Boldy

✩✩✩✩✩✩✩
20 Мар 2022
1
2
Всем привет! Собрал сей девайс. Самый лучший из легкоповторяемых. MCP60хх заменил на lm358 , запитал её отдельно 6.6 В. Всё работает отлично. Пришлось только поиграться с инициализацией дисплея.Хорошая точность . Рекомендую.
 
  • Лойс +1
Реакции: Goracio888 и edkotinsky

edkotinsky

★✩✩✩✩✩✩
5 Мар 2021
19
17
22
Алматы
@EU3LD, ниже компилятор предлагает сигнатуру функции:
Код:
note: candidate: void LiquidCrystal_I2C::begin(uint8_t, uint8_t, uint8_t)
void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS );
Нужно просто заменить строку
lcd.begin();
на
lcd.begin(16, 2);

А вообще эта библиотека заброшена? Репо на гитхабе архивирован и ссылается на репозиторий на гитлабе, а там такого репозитория вовсе не существует.
 

EU3LD

✩✩✩✩✩✩✩
5 Ноя 2022
5
0
нет .что то не работает . старая версиия без проблем. скечь надо править или че !
 
Изменено:

edkotinsky

★✩✩✩✩✩✩
5 Мар 2021
19
17
22
Алматы
@EU3LD, попробуйте заменить строку lcd.begin(16, 2); на lcd.init();
Видимо, я использовал какую-то другую библиотеку, чем указана в шапке кода.
 

EU3LD

✩✩✩✩✩✩✩
5 Ноя 2022
5
0
нет! также как и было. опять нех загрузил через хлоадер!
 

IvanZah

✩✩✩✩✩✩✩
5 Фев 2023
2
1
На схеме С3 "плюсом" седит на земле. Так и должно быть?
 

IvanZah

✩✩✩✩✩✩✩
5 Фев 2023
2
1
@Геннадий П, Я в курсе. Просто усилитель на сколько японимаю работае в диаппазоне от 0 до 5 вольт, и как бы отрицательное напряжение на инверсном входе, врядли предполагается... Другое дело если бы вход был уже подтянут к +5, а отрицатеньным напряжением оно входное напряжение бы снижалось. Но в таком слечае, там все одно был бы положительный потенциал относительно земли... Тогда и кондер С3 стоило бы перевернуть... Короче мысли как то так пошли наверное не туда?
 
  • Лойс +1
Реакции: ТехнарьКто

hbars

✩✩✩✩✩✩✩
9 Дек 2022
1
0
@IvanZah, И все же на первый лучше поставить керамику. 2х22. Там действительно бывает небольшая переполюсовка. Второй - хороший электролит. Преполюсовки не бывает.
 

PiratFox

★★★★★✩✩
13 Фев 2020
1,722
481
@Иван 87, скомпилированный код занимает не более 5 кбайт, в мегу 8 вполне помещается. Что и зачем там переписывать?
 
Изменено:

Иван 87

✩✩✩✩✩✩✩
11 Сен 2018
18
1
У меня ругается компилятор на строку 147
exit status 1 SMCR = 0b00000011; //SM0 | SE enable ADC noise reduction sleep mode
'SMCR' was not declared in this scope
 

PiratFox

★★★★★✩✩
13 Фев 2020
1,722
481
@Иван 87, ну, тут несложно. В меге 8 регистр управления SMCR просто имеет другую мнемонику. Строка 147 должна выглядеть так:
MCUCR = 0b00000011; //SM0 | SE enable ADC noise reduction sleep mode
 
  • Лойс +1
Реакции: Иван 87

Иван 87

✩✩✩✩✩✩✩
11 Сен 2018
18
1
PiratFox
Спасибо откомпилировалось. Заряженный конденсатор переживет это устройство ?
 

Иван 87

✩✩✩✩✩✩✩
11 Сен 2018
18
1
Минимальное значение емкости 89.2 пФ Можно уменьшить это значение ? скажем разогнать атмегу до 21мГц ?
 

Bruzzer

★★★✩✩✩✩
23 Май 2020
324
101
@Иван 87,
Вы сделали устройство и у вас не измеряет меньше 89 пФ ?
В описании 89 пФ указано как МАКСИМАЛЬНОЕ измеряемое при 1 МГц.