- Необходими компоненти
- Изчисляване на честотата и индуктивността
- Електрическа схема и обяснение
- Обяснение на програмирането
Всички вградени любители са запознати с мултицет, който е чудесен инструмент за измерване на напрежение, ток, съпротивление и т.н. Мултиметърът може лесно да ги измерва. Но понякога трябва да измерим индуктивност и капацитет, което не е възможно с нормален мултицет. Има някои специални мултиметри, които могат да измерват индуктивност и капацитет, но са скъпи. Вече сме изградили измервател на честота, измервател на капацитета и измервател на съпротивлението, използвайки Arduino. Така че днес ще направим LC измервател на индуктивност, използвайки Arduino. В този проект ще покажем стойностите на индуктивността и капацитета, заедно с честотата на 16x2 LCD дисплей. Във веригата е даден бутон за превключване между дисплея на капацитета и индуктивността.
Необходими компоненти
- Arduino Uno
- 741 opamp IC
- 3v батерия
- 100-омов резистор
- Кондензатори
- Индуктори
- 1n4007 диод
- 10k резистор
- 10к пот
- Захранване
- Натисни бутона
- Макет или печатни платки
- Свързващи проводници
Изчисляване на честотата и индуктивността
В този проект ще измерим индуктивност и капацитет, като използваме паралелно LC верига. Тази схема е като пръстен или камбана, които започват да резонират с определена честота. Винаги, когато прилагаме импулс, тази LC верига ще започне да резонира и тази резонансна честота е под формата на аналогова (синусоидална вълна), така че трябва да я преобразуваме в squire вълна. За да направим това, ние прилагаме тази аналогова резонансна честота към opamp (741 в нашия случай), който ще я преобразува в squire вълна (честота) при 50% от работния цикъл. Сега измерваме честотата с помощта на Arduino и с помощта на някои математически изчисления можем да намерим индуктивността или капацитета. Използвахме дадената формула за честотна характеристика на LC верига.
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.1uF, а докато измервате капацитета (C1), стойността на индуктора (L1) трябва да бъде 10mH.
Електрическа схема и обяснение
В тази схема на LC Meter ние използвахме Arduino за управление на работата на проекта. В това, ние използвахме LC верига. Тази LC верига се състои от индуктор и кондензатор. За да преобразуваме синусоидалната резонансна честота в цифрова или квадратна вълна, използвахме операционен усилвател, а именно 741. Тук трябва да приложим отрицателно захранване към операционния усилвател, за да получим точна изходна честота. Така че ние използвахме 3v батерия, свързана с обратна полярност, означава, че 741 отрицателен щифт е свързан към отрицателния терминал на батерията, а положителният щифт на батерията е свързан към масата на останалата верига. За повече пояснения вижте схемата по-долу.
Тук имаме бутон за промяна на режима на работа, независимо дали измерваме индуктивност или капацитет. LCD 16x2 се използва за показване на индуктивност или капацитет с честотата на LC веригата. 10k пот се използва за контрол на яркостта на LCD. Веригата се захранва с помощта на Arduino 5v захранване и можем да захранваме Arduino чрез 5v с помощта на USB или 12v адаптер.
Обяснение на програмирането
Програмиращата част на този проект LC Meter е много лесна. Пълният код на Arduino е даден в края на тази статия.
Първо трябва да включим библиотека за LCD и да декларираме някои пинове и макроси.
#include
След него, в настройка функция сме инициализирани LCD и серийна комуникация за показване на измерените стойности през LCD и сериен монитор.
void setup () { #ifdef serial Serial.begin (9600); #endif lcd.begin (16, 2); pinMode (freqIn, INPUT); pinMode (зареждане, ИЗХОД); pinMode (режим, INPUT_PULLUP); lcd.print ("Използване на измервател на LC"); 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 LCD.