- Szükséges alkatrészek
- A frekvencia és az induktivitás kiszámítása
- Áramkör diagram és magyarázat
- Programozási magyarázat
Minden beágyazott szerető ismeri a multimétert, amely nagyszerű eszköz a feszültség, áram, ellenállás stb. Mérésére. A multiméter könnyen meg tudja mérni őket. De néha meg kell mérnünk az induktivitást és a kapacitást, ami normál multiméter esetén nem lehetséges. Van néhány speciális multiméter, amely képes mérni az induktivitást és a kapacitást, de ezek költségesek. Az Arduino segítségével már megépítettük a frekvenciamérőt, a kapacitásmérőt és az ellenállásmérőt. Tehát ma egy Inductance LC mérőt készítünk az Arduino segítségével. Ebben a projektben megmutatjuk az induktivitás és a kapacitás értékét, valamint a frekvenciát a 16x2 LCD kijelzőn. Az áramkörben egy nyomógomb található, amely a kapacitás és az induktivitás kijelzése között vált.
Szükséges alkatrészek
- Arduino Uno
- 741 opamp IC
- 3v-os akkumulátor
- 100 ohmos ellenállás
- Kondenzátorok
- Induktorok
- 1n4007 dióda
- 10k ellenállás
- 10 ezer fazék
- Tápegység
- Nyomógomb
- Kenyérlemez vagy NYÁK
- Csatlakozó vezetékek
A frekvencia és az induktivitás kiszámítása
Ebben a projektben az induktivitást és a kapacitást egy LC áramkör párhuzamos használatával fogjuk mérni. Ez az áramkör olyan, mint egy gyűrű vagy csengő, amely bizonyos frekvencián elkezd rezonálni. Amikor impulzust alkalmazunk, ez az LC áramkör elkezd rezonálni, és ez a rezonancia frekvencia analóg (szinuszos hullám) formában van, ezért ezt squire hullámban kell átalakítanunk. Ehhez ezt az analóg rezonancia frekvenciát alkalmazzuk az opamp-ra (esetünkben 741), amely ezt squire hullámban (frekvenciában) alakítja át a munkaciklus 50% -án. Most Arduino használatával mérjük a frekvenciát, és néhány matematikai számítás segítségével megtalálhatjuk az induktivitást vagy a kapacitást. A megadott LC áramkör frekvencia-válasz képletet használtuk.
f = 1 / (2 * idő)
ahol az idő a pulseIn () függvény kimenete
Most megvan az LC áramkör frekvenciája:
f = 1/2 * Pi * (LC) négyzetgyöke
meg tudjuk oldani, hogy induktivitást kapjunk:
f 2 = 1 / (4Pi 2 LC) L = 1 / (4Pi 2 f 2 C) L = 1 / (4 * Pi * Pi * f * f * C)
Amint már említettük, hogy hullámunk szinuszos hullám, ezért pozitív és negatív amplitúdóban egyaránt megegyezik az időtartama. Ez azt jelenti, hogy az összehasonlító 50% -os munkaciklusú négyzethullámmá alakítja. Annak érdekében, hogy az Arduino pulseIn () függvényével meg tudjuk mérni. Ez a függvény olyan időszakot ad nekünk, amelyet az idő megfordításával könnyen frekvenciává alakíthatunk. Mivel a pulseIn függvény csak egy impulzust mér, ezért a helyes frekvencia elérése érdekében ezt meg kell szorozni 2-vel. Most van egy frekvenciánk, amelyet a fenti képlet segítségével induktivitássá alakíthatunk.
Megjegyzés: az induktivitás (L1) mérése közben a kondenzátor (C1) értéke 0,1uF, míg a kapacitás (C1) mérése esetén az induktivitás (L1) értéke 10mH legyen.
Áramkör diagram és magyarázat
Ebben az LC Meter kapcsolási rajzban az Arduino-t használtuk a projekt működésének ellenőrzésére. Ebben egy LC áramkört használtunk. Ez az LC áramkör egy induktivitásból és egy kondenzátorból áll. A szinuszos rezonancia frekvencia digitális vagy négyzethullámúvá történő átalakításához operációs erősítőt használtunk, mégpedig a 741. A negatív tápellátást kell alkalmaznunk az op-amp-ra, hogy pontos kimeneti frekvenciát kapjunk. Tehát egy 3v-os elemet fordított polaritással csatlakoztattunk, ami azt jelenti, hogy a 741 negatív tű az akkumulátor negatív kapcsaira van csatlakoztatva, az akkumulátor pozitív csapja pedig a fennmaradó áramkör földjére van csatlakoztatva. További tisztázásért lásd az alábbi kapcsolási rajzot.
Itt van egy nyomógombunk a működési mód megváltoztatására, függetlenül attól, hogy induktivitást vagy kapacitást mérünk. A 16x2 LCD-t használják az induktivitás vagy a kapacitás megjelenítésére az LC áramkör frekvenciájával. 10k potot használnak az LCD fényerejének szabályozására. Az áramellátást az Arduino 5v tápellátása biztosítja, és az Arduino-t 5v-ra táplálhatjuk USB vagy 12v adapter segítségével.
Programozási magyarázat
Ennek az LC Meter projektnek a programozási része nagyon egyszerű. A teljes Arduino kód a cikk végén található.
Először hozzá kell adnunk a könyvtárat az LCD-hez, és deklarálnunk kell néhány csapot és makrót.
#include
Ezt követően a beállítási funkcióban inicializáltuk az LCD és a soros kommunikációt, hogy a mért értékeket megjelenítsük az LCD és a soros monitoron.
void setup () { #ifdef soros Serial.begin (9600); #endif lcd.begin (16, 2); pinMode (freqIn, INPUT); pinMode (töltés, OUTPUT); pinMode (mód, INPUT_PULLUP); lcd.print ("LC mérő használata"); lcd.setCursor (0, 1); lcd.print ("Arduino"); késés (2000); lcd.clear (); lcd.print ("Circuit Digest"); késés (2000); }
Ezután a hurok funkcióban alkalmazzon egy fix időtartamú impulzust az LC áramkörre, amely az LC áramkört tölti fel. Az impulzus eltávolítása után az LC áramkör rezonálni kezd. Ezután a pulseIn () függvény segítségével leolvassuk az op-amp-ból érkező négyzethullám-konverziót, és ezt 2-gyel szorozva konvertáljuk. Itt is vettünk néhány mintát erről. Így számítják ki a frekvenciát:
void loop () { for (int i = 0; i
Miután megkapta a frekvenciaértéket, induktivitássá alakítottuk át őket egy adott kóddarab használatával
kapacitás = 0,1E-6; induktivitás = (1. / (kapacitás * frekvencia * frekvencia * 4. * 3.14159 * 3.14159)) * 1.E6; #ifdef soros Serial.print ("Ind:"); if (induktivitás> = 1000) { Soros nyomtatás (induktivitás / 1000); Serial.println ("mH"); } else { Soros.nyomtatás (induktivitás); Serial.println ("uH"); } #endif lcd.setCursor (0, 1); lcd.print ("Ind:"); if (induktivitás> = 1000) { lcd.print (induktivitás / 1000); lcd.print ("mH"); } else { lcd.print (induktivitás); lcd.print ("uH"); } }
A megadott kód felhasználásával kiszámítottuk a kapacitást.
if (Bit.flag) { induktivitás = 1.E-3; kapacitás = ((1. / (induktivitás * frekvencia * frekvencia * 4. * 3.14159 * 3.14159)) * 1.E9); ha ((int) kapacitás <0) kapacitás = 0; #ifdef soros Serial.print ("Kapacitás:"); Soros nyomtatás (kapacitás, 6); Serial.println ("uF"); #endif lcd.setCursor (0, 1); lcd.print ("Sapka:"); if (kapacitás> 47) { lcd.print ((kapacitás / 1000)); lcd.print ("uF"); } else { lcd.print (kapacitás); lcd.print ("nF"); } }
Tehát így számoltuk ki a frekvenciát, a kapacitást és az induktivitást az Arduino segítségével, és megjelenítettük 16x2 LCD-n.