- Потрібні компоненти
- Розрахунок частоти та індуктивності
- Принципова схема та пояснення
- Пояснення програмування
Всі вбудовані любителі знайомі з мультиметром, який є чудовим інструментом для вимірювання напруги, струму, опору тощо. Але іноді нам потрібно виміряти індуктивність та ємність, що неможливо за допомогою звичайного мультиметра. Є кілька спеціальних мультиметрів, які можуть вимірювати індуктивність та ємність, але вони дорогі. Ми вже побудували частотомір, ємність та вимірювач опору за допомогою Arduino. Отже, сьогодні ми збираємося зробити індикатор РХ-лічильника за допомогою Arduino. У цьому проекті ми покажемо значення індуктивності та ємності разом із частотою на РК-дисплеї 16x2. У ланцюзі дається кнопка для перемикання між показником ємності та індуктивності.
Потрібні компоненти
- Arduino Uno
- 741 ОП підсилювача
- 3В акумулятор
- 100-омний резистор
- Конденсатори
- Індуктори
- Діод 1n4007
- 10k резистор
- 10к горщик
- Блок живлення
- Нажимна Кнопка
- Макет або друкована плата
- Підключення проводів
Розрахунок частоти та індуктивності
У цьому проекті ми збираємося вимірювати індуктивність та ємність, використовуючи паралельно LC-схему. Цей ланцюг нагадує кільце або дзвін, які починають резонувати з певною частотою. Кожного разу, коли ми застосовуємо імпульс, ця LC-ланцюг починає резонувати, і ця резонансна частота має аналогову форму (синусоїдальна хвиля), тому нам потрібно перетворити її в squire-хвилю. Для цього ми застосовуємо цю аналогову резонансну частоту до підсилювача (741 у нашому випадку), який перетворить її в хвилю (частоту) в сквайр при 50% робочого циклу. Тепер ми вимірюємо частоту за допомогою Arduino, і за допомогою математичного розрахунку ми можемо знайти індуктивність або ємність. Ми використали наведену формулу частотної характеристики АЧХ ланцюга.
f = 1 / (2 * раз)
де час вихід pulseIn () функція
тепер у нас є частота LC ланцюга:
f = 1/2 * Pi * квадратний корінь з (LC)
ми можемо вирішити це, щоб отримати індуктивність:
f 2 = 1 / (4Pi 2 LC) L = 1 / (4Pi 2 f 2 C) L = 1 / (4 * Pi * Pi * f * f * C)
Як ми вже згадували, що наша хвиля є синусоїдальною хвилею, тому вона має однаковий період часу як в позитивній, так і в негативній амплітуді. Це означає, що компаратор перетворить його у квадратну хвилю, що має 50% робочого циклу. Тож ми можемо виміряти його за допомогою функції pulseIn () від Arduino. Ця функція дасть нам часовий проміжок, який можна легко перетворити в частоту шляхом інвертування часового періоду. Оскільки функція pulseIn вимірює лише один імпульс, то тепер, щоб отримати правильну частоту, ми повинні помножити її на 2. Тепер у нас є частота, яку можна перетворити в індуктивність за допомогою наведеної вище формули.
Примітка: під час вимірювання індуктивності (L1) значення конденсатора (C1) має становити 0,1 мкФ, а під час вимірювання ємності (C1) значення індуктивності (L1) має становити 10mH.
Принципова схема та пояснення
У цій схемі схеми LC Meter ми використовували Arduino для управління роботою проекту. У цьому ми використовували LC-схему. Цей ланцюг LC складається з індуктора та конденсатора. Для перетворення частоти синусоїдального резонансу в цифрову або квадратну хвилю ми використали операційний підсилювач, а саме 741. Тут нам потрібно застосувати негативний живлення до підсилювача, щоб отримати точну вихідну частоту. Отже, ми використовували акумулятор на 3 В, підключений із зворотною полярністю, означає, що 741 мінус-контакт підключений до мінусової клеми акумулятора, а позитивний контакт акумулятора - до землі решти ланцюга. Для більш детального роз'яснення див. Принципову схему нижче.
Тут ми маємо кнопку для зміни режиму роботи, чи вимірюємо індуктивність чи ємність. РК-дисплей 16x2 використовується для показу індуктивності або ємності з частотою LC-ланцюга. Для управління яскравістю РК-дисплея використовується 10-канальний горщик. Схема живиться за допомогою джерела живлення Arduino 5v, і ми можемо живити Arduino від джерела живлення 5v за допомогою USB або адаптера 12v.
Пояснення програмування
Програмна частина цього проекту LC Meter дуже проста. Повний код Arduino наведено в кінці цієї статті.
Спочатку ми повинні включити бібліотеку для РК-дисплея та оголосити кілька контактів та макросів.
#включати
Після цього у функції налаштування ми ініціалізували РК та послідовний зв’язок для відображення виміряних значень на РК та послідовному моніторі.
void setup () { #ifdef serial Serial.begin (9600); #endif lcd.begin (16, 2); pinMode (freqIn, INPUT); pinMode (заряд, ВИХІД); pinMode (режим, INPUT_PULLUP); lcd.print ("LC Meter Using"); lcd.setCursor (0, 1); lcd.print ("Arduino"); затримка (2000); lcd.clear (); lcd.print ("Circuit Digest"); затримка (2000); }
Потім у функції петлі подайте імпульс фіксованого періоду часу до ланцюга LC, який буде заряджати ланцюг LC. Після зняття імпульсу LC ланцюг починає резонувати. Потім ми зчитуємо його перетворення квадратної хвилі, що надходить від операційного підсилювача, за допомогою функції pulseIn () і перетворюємо це, помноживши на 2. Тут ми також взяли деякі зразки цього. Ось як розраховується частота:
void loop () { for (int i = 0; i
Отримавши значення частоти, ми перетворили їх в індуктивність за допомогою заданого фрагмента коду
ємність = 0,1Е-6; індуктивність = (1. / (ємність * частота * частота * 4. * 3.14159 * 3.14159)) * 1.E6; #ifdef serial Serial.print ("Ind:"); якщо (індуктивність> = 1000) { Serial.print (індуктивність / 1000); Serial.println ("mH"); } else { Serial.print (індуктивність); Serial.println ("uH"); } #endif lcd.setCursor (0, 1); lcd.print ("Ind:"); якщо (індуктивність> = 1000) { lcd.print (індуктивність / 1000); lcd.print ("mH"); } else { lcd.print (індуктивність); lcd.print ("uH"); } }
І за допомогою заданого коду ми розрахували ємність.
if (Bit.flag) { індуктивність = 1.E-3; ємність = ((1. / (індуктивність * частота * частота * 4. * 3.14159 * 3.14159)) * 1.E9); якщо ((int) ємність <0) ємність = 0; #ifdef serial Serial.print ("Ємність:"); Serial.print (ємність, 6); Serial.println ("uF"); #endif lcd.setCursor (0, 1); lcd.print ("Cap:"); якщо (ємність> 47) { lcd.print ((ємність / 1000)); lcd.print ("uF"); } else { lcd.print (ємність); lcd.print ("nF"); } }
Ось як ми розрахували частоту, ємність та індуктивність за допомогою Arduino та відобразили це на РК-дисплеї 16x2.