- Wymagane składniki
- Obliczanie częstotliwości i indukcyjności
- Schemat obwodu i wyjaśnienie
- Objaśnienie programowania
Wszyscy miłośnicy rozwiązań wbudowanych znają multimetr, który jest doskonałym narzędziem do pomiaru napięcia, prądu, rezystancji itp. Multimetr może je łatwo zmierzyć. Ale czasami musimy zmierzyć indukcyjność i pojemność, co nie jest możliwe w przypadku zwykłego multimetru. Istnieją specjalne multimetry, które mogą mierzyć indukcyjność i pojemność, ale są one kosztowne. Zbudowaliśmy już miernik częstotliwości, miernik pojemności i miernik rezystancji przy użyciu Arduino. Więc dzisiaj zrobimy miernik indukcyjności LC za pomocą Arduino. W tym projekcie pokażemy wartości indukcyjności i pojemności wraz z częstotliwością na wyświetlaczu LCD 16x2. W obwodzie znajduje się przycisk do przełączania między wyświetlaniem pojemności i indukcyjności.
Wymagane składniki
- Arduino Uno
- 741 opamp IC
- Bateria 3V
- Rezystor 100 omów
- Kondensatory
- Cewki indukcyjne
- Dioda 1n4007
- Rezystor 10k
- Pula 10k
- Zasilacz
- Naciśnij przycisk
- Płytka prototypowa lub PCB
- Przewody łączące
Obliczanie częstotliwości i indukcyjności
W tym projekcie zamierzamy zmierzyć indukcyjność i pojemność przy użyciu równoległego obwodu LC. Ten obwód jest jak pierścień lub dzwonek, który zaczyna rezonować z pewną częstotliwością. Za każdym razem, gdy zastosujemy impuls, ten obwód LC zacznie rezonować, a ta częstotliwość rezonansowa ma postać analogową (fala sinusoidalna), więc musimy przekształcić ją w falę squire. Aby to zrobić, stosujemy tę analogową częstotliwość rezonansową do opampa (w naszym przypadku 741), który przekształci ją w falę squire'a (częstotliwość) przy 50% cyklu pracy. Teraz mierzymy częstotliwość za pomocą Arduino i używając pewnych obliczeń matematycznych, możemy znaleźć indukcyjność lub pojemność. Wykorzystaliśmy podany wzór odpowiedzi częstotliwościowej obwodu LC.
f = 1 / (2 * czas)
gdzie czas wyjściowy pulseIn () funkcja
teraz mamy częstotliwość obwodu LC:
f = 1/2 * Pi * pierwiastek kwadratowy z (LC)
możemy to rozwiązać, aby uzyskać indukcyjność:
f 2 = 1 / (4Pi 2 LC) L = 1 / (4Pi 2 f 2 C) L = 1 / (4 * Pi * Pi * f * f * C)
Jak już wspomnieliśmy, nasza fala jest falą sinusoidalną, więc ma ten sam okres czasu zarówno w amplitudzie dodatniej, jak i ujemnej. Oznacza to, że komparator przekształci go w falę prostokątną o 50% cyklu pracy. Abyśmy mogli go zmierzyć za pomocą funkcji pulseIn () w Arduino. Ta funkcja daje nam okres czasu, który można łatwo przekształcić w częstotliwość poprzez odwrócenie okresu. Ponieważ funkcja pulseIn mierzy tylko jeden impuls, więc teraz, aby uzyskać poprawną częstotliwość, musimy pomnożyć ją przez 2. Teraz mamy częstotliwość, którą można przekształcić na indukcyjność za pomocą powyższego wzoru.
Uwaga: podczas pomiaru indukcyjności (L1) wartość kondensatora (C1) powinna wynosić 0,1uF, a podczas pomiaru pojemności (C1) wartość induktora (L1) powinna wynosić 10mH.
Schemat obwodu i wyjaśnienie
Na tym schemacie obwodu miernika LC użyliśmy Arduino do sterowania działaniem projektu. W tym przypadku użyliśmy obwodu LC. Ten obwód LC składa się z cewki indukcyjnej i kondensatora. Aby przekonwertować sinusoidalną częstotliwość rezonansową na falę cyfrową lub prostokątną, użyliśmy wzmacniacza operacyjnego, a mianowicie 741. Tutaj musimy zastosować ujemne zasilanie do wzmacniacza operacyjnego, aby uzyskać dokładną częstotliwość wyjściową. Użyliśmy więc akumulatora 3v podłączonego w odwrotnej polaryzacji, co oznacza, że 741 ujemny pin jest podłączony do ujemnego zacisku akumulatora, a dodatni pin akumulatora jest podłączony do masy pozostałego obwodu. Więcej wyjaśnień można znaleźć na poniższym schemacie obwodu.
Tutaj mamy przycisk do zmiany trybu pracy, czy mierzymy indukcyjność czy pojemność. Wyświetlacz LCD 16x2 służy do wskazywania indukcyjności lub pojemności z częstotliwością obwodu LC. Potencjometr 10k służy do kontrolowania jasności wyświetlacza LCD. Układ zasilany jest za pomocą zasilacza Arduino 5v, a Arduino możemy zasilać napięciem 5v za pomocą adaptera USB lub 12V.
Objaśnienie programowania
Część programowa tego projektu miernika LC jest bardzo łatwa. Pełny kod Arduino znajduje się na końcu tego artykułu.
Najpierw musimy załączyć bibliotekę dla LCD i zadeklarować kilka pinów i makr.
#zawierać
Następnie, w funkcji konfiguracji , zainicjowaliśmy komunikację LCD i szeregową, aby wyświetlać zmierzone wartości na wyświetlaczu LCD i monitorze szeregowym.
void setup () { #ifdef serial Serial.begin (9600); #endif lcd.begin (16, 2); pinMode (freqIn, INPUT); pinMode (ładowanie, WYJŚCIE); pinMode (tryb, INPUT_PULLUP); lcd.print ("Korzystanie z miernika LC"); lcd.setCursor (0, 1); lcd.print ("Arduino"); opóźnienie (2000); lcd.clear (); lcd.print ("Circuit Digest"); opóźnienie (2000); }
Następnie w funkcji pętli zastosuj impuls o ustalonym okresie czasu do obwodu LC, który będzie ładował obwód LC. Po usunięciu impulsu obwód LC zaczyna rezonować. Następnie odczytujemy konwersję fali prostokątnej, pochodzącą ze wzmacniacza operacyjnego , za pomocą funkcji pulseIn () i konwertujemy ją przez pomnożenie przez 2. Tutaj również pobraliśmy kilka próbek. Tak obliczana jest częstotliwość:
void loop () { for (int i = 0; i
Po uzyskaniu wartości częstotliwości przekonwertowaliśmy je na indukcyjność za pomocą podanego fragmentu kodu
pojemność = 0,1E-6; indukcyjność = (1. / (pojemność * częstotliwość * częstotliwość * 4. * 3,14159 * 3,14159)) * 1.E6; #ifdef serial Serial.print („Ind:”); if (indukcyjność> = 1000) { Serial.print (inductance / 1000); Serial.println ("mH"); } else { Serial.print (indukcyjność); Serial.println ("uH"); } #endif lcd.setCursor (0, 1); lcd.print ("Ind:"); if (indukcyjność> = 1000) { lcd.print (indukcyjność / 1000); lcd.print ("mH"); } else { lcd.print (indukcyjność); lcd.print ("uH"); } }
Korzystając z podanego kodu obliczyliśmy pojemność.
if (Bit.flag) { indukcyjność = 1.E-3; pojemność = ((1. / (indukcyjność * częstotliwość * częstotliwość * 4. * 3,14159 * 3,14159)) * 1.E9); jeśli ((int) pojemność <0) pojemność = 0; #ifdef serial Serial.print ("Pojemność:"); Serial. Print (pojemność, 6); Serial.println ("uF"); #endif lcd.setCursor (0, 1); lcd.print ("Cap:"); if (pojemność> 47) { lcd.print ((pojemność / 1000)); lcd.print ("uF"); } else { lcd.print (pojemność); lcd.print ("nF"); } }
Tak więc obliczyliśmy częstotliwość, pojemność i indukcyjność za pomocą Arduino i wyświetliliśmy je na wyświetlaczu LCD 16x2.