Измеритель емкости и индуктивности на Arduino

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

Внешний вид измерителя емкости и индуктивности на Arduino

На нашем сайте мы уже рассматривали создание измерителя емкости, измерителя частоты и измерителя сопротивления (омметра) на основе платы Arduino. А в этой статье мы рассмотрим создание измерителя емкости и индуктивности (Inductance LC Meter) на основе платы Arduino. Измеренные значения емкости и индуктивности мы будем показывать на экране ЖК дисплея 16х2. Кнопка в схеме проекта будет использоваться для переключения между режимом измерения емкости и индуктивности.

Необходимые компоненты

  1. Плата Arduino Uno.
  2. Микросхема операционного усилителя 741.
  3. Батарея на 3v.
  4. Резистор 100 Ом.
  5. Конденсаторы.
  6. Индуктивности.
  7. Диод 1n4007.
  8. Резистор 10 кОм.
  9. Потенциометр 10 кОм.
  10. Источник питания.
  11. Кнопка.
  12. Макетная или печатная плата и соединительные провода.

Внешний вид некоторых из использованных в проекте компонентов показан на следующем рисунке.

Расчет частоты и индуктивности

В этом проекте мы будем измерять емкость и индуктивность с помощью LC цепи, включенной параллельно – то есть, по сути, это хорошо известный нам LC контур. Эту цепь можно сравнить со звонком, который начинает резонировать на определенной частоте. При подаче на эту цепь импульса она начинает резонировать и на ее выходе образуется синусоидальное колебание на резонансной частоте. Это синусоидальное колебание нам необходимо преобразовать в прямоугольную волну. Для этого мы будем использовать операционный усилитель на микросхеме 741, который будет преобразовывать синусоидальное колебание в последовательность прямоугольных импульсов с коэффициентом заполнения 50%. Затем мы будем измерять частоту этих импульсов с помощью платы Arduino и затем с помощью ряда математических преобразований мы можем определить измеряемые индуктивность или емкость. Для этого мы будем использовать обычную формулу, связывающую частоту и время для прямоугольной волны:

f=1/(2*time)

где time (время) будет определяться с помощью функции pulseIn() .

Также нам известна формула для расчета частоты LC контура:

f=1/2*Pi* square root of (LC)

square root – квадратный корень.

Из этого выражения мы можем выразить индуктивность L:

f2 = 1/ (4Pi2LC)
L= 1/ (4Pi2 f2C)
L = 1/(4* Pi * Pi * f * f * C)

Поскольку синусоидальная волна с выхода LC контура имеет одинаковую длительность положительность и отрицательной полуволны, то компаратор на основе операционного усилителя преобразует ее в прямоугольную волну (последовательность прямоугольных импульсов) с коэффициентом заполнения 50% — мы можем измерить частоту этой прямоугольной волны с помощью функции pulseIn() в Arduino. Эта функция определит нам временной период, который мы затем переведем в значение частоты с помощью выше приведенной формулы. Поскольку функция pulseIn измеряет только один импульс, поэтому чтобы получить правильное значение частоты мы его в формуле умножаем на 2. А когда у нас значение частоты, мы с помощью формулы для LC контура определим значение индуктивности.

Примечание: во время измерения индуктивности (L1) емкость C1) в нашем проекте должна быть 0.1 мкФ, а во время измерения емкости (C1) индуктивность (L1) должна быть равна 10 мГн. Если вы хотите изменить эти значения, то вам необходимо будет внести соответствующие изменения в код программы.

Работа схемы

Схема измерителя емкости и индуктивности на основе платы Arduino представлена на следующем рисунке.

Схема измерителя емкости и индуктивности на основе платы ArduinoПлата Arduino в этой схеме управляет всеми процессами. Для измерения емкости или индуктивности используется LC контур, состоящий из конденсатора и катушки индуктивности. Для преобразования синусоидальной волны с выхода LC в прямоугольную волну мы использовали операционный усилитель на микросхеме 741. Для этого мы должны подать отрицательное напряжение питания на операционный усилитель – с этой целью мы используем батарейку на 3 В, соединенную в отрицательной полярности. Это означает что отрицательный контакт микросхемы 741 подключен к отрицательному контакту батареи, а положительный контакт батареи подключен к земле схемы.

Кнопка в схеме используется для смены режима – измерения емкости или индуктивности. ЖК дисплей используется для отображения результатов измерений. Потенциометр предназначен для управления яркостью ЖК дисплея. Схема запитывается от контакта 5v платы Arduino, а саму плату Arduino можно запитать через USB кабель от компьютера или с помощью адаптера на 12 В.

Внешний вид собранной на макетной плате схеме показан на следующих рисунках, а также на них показан пример работы схемы в режиме измерения емкости и в режиме измерения индуктивности.

Работа проекта в режиме измерения емкости

Работа проекта в режиме измерения индуктивности

Объяснение программы для Arduino

Полный код программы приведен в конце статьи, здесь же мы рассмотрим его основные фрагменты.

Сначала в программе нам необходимо подключить библиотеку для работы с ЖК дисплеем и инициализировать необходимые нам для работы контакты и переменные.

Далее, в функции setup мы инициализируем ЖК дисплей и последовательную связь чтобы показывать измеренные значения емкости и индуктивности на экране ЖК дисплея и в окне монитора последовательной связи (serial monitor).

Затем в функции loop мы будем формировать прямоугольный импульс фиксированной длительности для последующей подачи его на LC контур. Этот импульс зарядит LC контур. После снятия импульса LC контур начнет резонировать. После преобразования волны с выхода LC контура в прямоугольную мы ее считываем платой Arduino и с помощью функции pulseIn() мы измеряем длительность ее импульса, и на основании этой измеренной длительности мы рассчитываем частоту.

После получения значения частоты мы рассчитываем значение индуктивности.

С помощью аналогичного фрагмента кода мы можем определить и значение емкости.

Исходный код программы (скетча)

Код программы достаточно объемный, но по своей сути он достаточно простой, мы надеемся, что его понимание не вызовет у вас затруднений.

Видео, демонстрирующее работу схемы

(Проголосуй первым!)
Загрузка...
72 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *