- Potrebne komponente
- Izračunavanje frekvence in induktivnosti
- Shema vezja in razlaga
- Pojasnilo programiranja
Vsi vgrajeni ljubitelji poznajo multimeter, ki je odlično orodje za merjenje napetosti, toka, upora itd. Multimeter jih lahko enostavno izmeri. Toda včasih moramo izmeriti induktivnost in kapacitivnost, kar z običajnim multimetrom ni mogoče. Obstaja nekaj posebnih multimetrov, ki lahko merijo induktivnost in kapacitivnost, vendar so dragi. Z uporabo Arduina smo že izdelali merilnik frekvence, merilnik kapacitivnosti in odpornost. Torej bomo danes izdelali merilnik induktivnosti LC z uporabo Arduina. V tem projektu bomo prikazali vrednosti induktivnosti in kapacitivnosti skupaj s frekvenco na LCD zaslonu 16x2. V tokokrogu je podan gumb za preklop med prikazom kapacitivnosti in induktivnosti.
Potrebne komponente
- Arduino Uno
- 741 opamp IC
- 3v baterija
- 100-ohmski upor
- Kondenzatorji
- Induktorji
- 1n4007 dioda
- 10k upor
- 10k lonec
- Napajanje
- Pritisni gumb
- Breadboard ali PCB
- Priključne žice
Izračunavanje frekvence in induktivnosti
V tem projektu bomo izmerili induktivnost in kapacitivnost z vzporedno uporabo LC vezja. To vezje je kot obroč ali zvonec, ki začne odmevati pri določeni frekvenci. Kadarkoli uporabimo impulz, bo to LC vezje začelo odmevati in ta resonančna frekvenca je v obliki analognega (sinusoidni val), zato ga moramo pretvoriti v squire val. Da bi to naredili, to analogno resonančno frekvenco uporabimo za opamp (741 v našem primeru), ki ga pretvori v squire val (frekvenco) pri 50% delovnega cikla. Zdaj merimo frekvenco z uporabo Arduina in z uporabo nekaterih matematičnih izračunov lahko najdemo induktivnost ali kapacitivnost. Uporabili smo navedeno formulo frekvenčnega odziva LC vezja.
f = 1 / (čas 2 *)
kjer je čas izhod pulseIn () funkcija
zdaj imamo frekvenco LC vezja:
f = 1/2 * Pi * kvadratni koren (LC)
lahko ga rešimo, da dobimo induktivnost:
f 2 = 1 / (4Pi 2 LC) L = 1 / (4Pi 2 f 2 C) L = 1 / (4 * Pi * Pi * f * f * C)
Kot smo že omenili, je naš val sinusni val, zato ima enako časovno obdobje v pozitivni in negativni amplitudi. To pomeni, da jo bo primerjalnik pretvoril v kvadratni val s 50% delovnim ciklom. Tako da ga lahko izmerimo s pomočjo funkcije pulseIn () Arduina . Ta funkcija nam bo dala časovno obdobje, ki ga lahko enostavno pretvorimo v frekvenco z obračanjem časovnega obdobja. Kot funkcija pulseIn izmerimo samo en impulz, zato ga moramo zdaj, da dobimo pravilno frekvenco, pomnožiti z 2. Zdaj imamo frekvenco, ki jo lahko pretvorimo v induktivnost z uporabo zgornje formule.
Opomba: med merjenjem induktivnosti (L1) mora biti vrednost kondenzatorja (C1) 0,1uF, med merjenjem kapacitivnosti (C1) pa mora biti vrednost induktorja (L1) 10 mH.
Shema vezja in razlaga
V tem vezju LC Meter smo za nadzor projektnega delovanja uporabili Arduino. Pri tem smo uporabili LC vezje. To vezje LC je sestavljeno iz induktorja in kondenzatorja. Za pretvorbo sinusoidne resonančne frekvence v digitalni ali kvadratni val smo uporabili operacijski ojačevalnik, in sicer 741. Tu moramo uporabiti negativno napajanje op-ojačevalnika, da dobimo natančno izhodno frekvenco. Torej smo uporabili 3v baterijo, priključeno v obratni polarnosti, kar pomeni, da je 741 negativni zatič priključen na negativni priključek akumulatorja, pozitivni zatič akumulatorja pa na tla preostalega vezja. Za več pojasnil glejte spodnji diagram vezja.
Tu imamo tipko za spreminjanje načina delovanja, ne glede na to, ali merimo induktivnost ali kapacitivnost. LCD 16x2 se uporablja za prikaz induktivnosti ali kapacitivnosti s frekvenco LC vezja. Za nadzor svetlosti LCD se uporablja 10k lonec. Vezje se napaja s pomočjo napajalnika Arduino 5v, Arduino pa lahko napajamo s pomočjo napajalnika USB ali 12v.
Pojasnilo programiranja
Programski del tega projekta LC Meter je zelo enostaven. Popolna koda Arduino je podana na koncu tega članka.
Najprej moramo vključiti knjižnico za LCD in prijaviti nekaj zatičev in makrov.
#include
Po njej smo v nastavitveni funkciji inicializirali LCD in serijsko komunikacijo, da prikažemo izmerjene vrednosti na LCD in serijskem monitorju.
void setup () { #ifdef serial Serial.begin (9600); #endif lcd.begin (16, 2); pinMode (freqIn, INPUT); pinMode (polnjenje, IZHOD); pinMode (način, INPUT_PULLUP); lcd.print ("LC Meter Using"); lcd.setCursor (0, 1); lcd.print ("Arduino"); zamuda (2000); lcd.clear (); lcd.print ("Circuit Digest"); zamuda (2000); }
Nato v funkciji zanke na LC vezje uporabite impulz določenega časovnega obdobja, ki bo polnil LC vezje. Po odstranitvi impulza LC vezje začne odmevati. Nato z uporabo funkcije pulseIn () preberemo njegovo pretvorbo kvadratnih valov, ki prihaja iz op-amp, in jo pretvorimo tako, da jo pomnožimo z 2. Tu smo vzeli tudi nekaj vzorcev tega. Tako se izračuna frekvenca:
void loop () { for (int i = 0; i
Po pridobitvi frekvenčne vrednosti smo jih z uporabo določenega dela kode pretvorili v induktivnost
kapacitivnost = 0,1E-6; induktivnost = (1. / (kapacitivnost * frekvenca * frekvenca * 4. * 3.14159 * 3.14159)) * 1.E6; #ifdef serial Serial.print ("Ind:"); če (induktivnost> = 1000) { Serial.print (induktivnost / 1000); Serial.println ("mH"); } else { Serial.print (induktivnost); Serial.println ("uH"); } #endif lcd.setCursor (0, 1); lcd.print ("Ind:"); če (induktivnost> = 1000) { lcd.print (induktivnost / 1000); lcd.print ("mH"); } else { lcd.print (induktivnost); lcd.print ("uH"); } }
In z uporabo dane kode smo izračunali kapacitivnost.
če (Bit.flag) { induktivnost = 1.E-3; kapacitivnost = ((1. / (induktivnost * frekvenca * frekvenca * 4. * 3.14159 * 3.14159)) * 1.E9); če je ((int) kapacitivnost <0) kapacitivnost = 0; #ifdef serial Serial.print ("Kapaciteta:"); Serial.print (kapacitivnost, 6); Serial.println ("uF"); #endif lcd.setCursor (0, 1); lcd.print ("Cap:"); if (kapacitivnost> 47) { lcd.print ((capacitance / 1000)); lcd.print ("uF"); } else { lcd.print (kapacitivnost); lcd.print ("nF"); } }
Tako smo izračunali frekvenco, kapacitivnost in induktivnost z uporabo Arduina in jih prikazali na LCD 16x2.