- Componente necesare
- Calculul frecvenței și inductanței
- Diagrama și explicația circuitului
- Explicație de programare
Toți iubitorii încorporați sunt familiarizați cu multimetrul, un instrument excelent pentru măsurarea tensiunii, curentului, rezistenței etc. Un multimetru le poate măsura cu ușurință. Dar uneori trebuie să măsurăm inductanța și capacitatea, care nu este posibilă cu un multimetru normal. Există câteva multimetre speciale care pot măsura inductanța și capacitatea, dar sunt costisitoare. Am construit deja contor de frecvență, contor de capacitate și contor de rezistență folosind Arduino. Deci, astăzi vom face un contor de inductanță LC folosind Arduino. În acest proiect, vom arăta valorile de inductanță și capacitate împreună cu frecvența pe afișajul LCD de 16x2. Un buton de apăsare este dat în circuit, pentru a comuta între capacitatea și afișajul inductanței.
Componente necesare
- Arduino Uno
- 741 opamp IC
- Baterie de 3v
- Rezistor de 100 ohmi
- Condensatoare
- Inductori
- 1n4007 diodă
- Rezistor de 10k
- Oala de 10k
- Alimentare electrică
- Apasa butonul
- Panou sau PCB
- Conectarea firelor
Calculul frecvenței și inductanței
În acest proiect vom măsura inductanța și capacitatea utilizând un circuit LC în paralel. Acest circuit este ca un inel sau un clopot care începe să rezoneze la o anumită frecvență. Ori de câte ori aplicăm un impuls, acest circuit LC va începe să rezoneze și această frecvență de rezonanță este sub formă de undă analogică (undă sinusoidală), deci trebuie să o convertim în undă de scutier. Pentru a face acest lucru, aplicăm această frecvență de rezonanță analogică la opamp (741 în cazul nostru) care o va converti în undă de scutier (frecvență) la 50% din ciclul de funcționare. Acum măsurăm frecvența folosind Arduino și folosind un anumit calcul matematic putem găsi inductanța sau capacitatea. Am folosit formula de răspuns de frecvență a circuitului LC dat.
f = 1 / (2 * timp)
unde timpul este generat de funcția pulseIn ()
acum avem frecvența circuitului LC:
f = 1/2 * Pi * rădăcină pătrată a lui (LC)
îl putem rezolva pentru a obține inductanță:
f 2 = 1 / (4Pi 2 LC) L = 1 / (4Pi 2 f 2 C) L = 1 / (4 * Pi * Pi * f * f * C)
După cum am menționat deja că unda noastră este undă sinusoidală, deci are aceeași perioadă de timp atât în amplitudine pozitivă, cât și în amplitudine negativă. Înseamnă că comparatorul îl va converti în undă pătrată având un ciclu de funcționare de 50%. Astfel încât să îl putem măsura folosind funcția pulseIn () a Arduino. Această funcție ne va oferi o perioadă de timp care poate fi ușor convertită într-o frecvență prin inversarea perioadei de timp. Deoarece funcția pulseIn măsoară doar un impuls, deci acum pentru a obține frecvența corectă trebuie să-l înmulțim cu 2. Acum avem o frecvență care poate fi convertită în inductanță folosind formula de mai sus.
Notă: în timpul măsurării inductanței (L1), valoarea condensatorului (C1) ar trebui să fie 0,1uF și în timp ce măsurarea capacității (C1), valoarea inductorului (L1) ar trebui să fie de 10mH.
Diagrama și explicația circuitului
În această diagramă de circuit LC Meter, am folosit Arduino pentru a controla funcționarea proiectului. În acest sens, am folosit un circuit LC. Acest circuit LC constă dintr-un inductor și un condensator. Pentru a converti frecvența de rezonanță sinusoidală în undă digitală sau pătrată, am folosit un amplificator operațional și anume 741. Aici trebuie să aplicăm o sursă negativă la amplificatorul op pentru a obține o frecvență de ieșire precisă. Așa că am folosit o baterie de 3v conectată în polaritate inversă, înseamnă că pinul negativ 741 este conectat la borna negativă a bateriei și pinul pozitiv al bateriei este conectat la pământul circuitului rămas. Pentru mai multe clarificări, consultați schema de circuit de mai jos.
Aici avem un buton pentru a schimba modul de funcționare, indiferent dacă măsurăm inductanța sau capacitatea. Un ecran LCD de 16x2 este utilizat pentru a arăta inductanța sau capacitatea cu frecvența circuitului LC. O oală de 10k este utilizată pentru controlul luminozității ecranului LCD. Circuitul este alimentat cu ajutorul sursei Arduino 5v și putem alimenta Arduino prin 5v folosind adaptorul USB sau 12v.
Explicație de programare
Partea de programare a acestui proiect LC Meter este foarte ușoară. Codul Arduino complet este dat la sfârșitul acestui articol.
Mai întâi trebuie să includem biblioteca pentru LCD și să declarăm niște pini și macrocomenzi.
#include
După aceasta, în funcția de configurare am inițializat comunicarea LCD și Serial pentru a afișa valorile măsurate pe ecranul LCD și pe monitorul serial.
void setup () { #ifdef serial Serial.begin (9600); # endif lcd.begin (16, 2); pinMode (freqIn, INPUT); pinMode (încărcare, IEȘIRE); pinMode (mod, INPUT_PULLUP); lcd.print („Utilizarea contorului LC”); lcd.setCursor (0, 1); lcd.print ("Arduino"); întârziere (2000); lcd.clear (); lcd.print ("Circuit Digest"); întârziere (2000); }
Apoi în funcție de buclă , aplicați un impuls de o perioadă de timp fixă la circuitul LC care va încărca circuitul LC. După eliminarea impulsului, circuitul LC începe să rezoneze. Apoi îi citim conversia undei pătrate, provenind de la op-amp, utilizând funcția pulseIn () și o convertim prin înmulțirea cu 2. Aici am luat câteva mostre din aceasta. Așa se calculează frecvența:
bucla void () { pentru (int i = 0; i
După ce am obținut valoarea frecvenței, le-am transformat în inductanță folosind o bucată de cod dată
capacitate = 0,1E-6; inductanță = (1. / (capacitate * frecvență * frecvență * 4. * 3.14159 * 3.14159)) * 1.E6; #ifdef serial Serial.print ("Ind:"); if (inductanță> = 1000) { Serial.print (inductanță / 1000); Serial.println ("mH"); } else { Serial.print (inductanță); Serial.println ("uH"); } # Endif lcd.setCursor (0, 1); lcd.print ("Ind:"); if (inductanță> = 1000) { lcd.print (inductanță / 1000); lcd.print ("mH"); } else { lcd.print (inductanță); lcd.print ("uH"); } }
Și folosind codul dat am calculat capacitatea.
if (Bit.flag) { inductanță = 1.E-3; capacitate = ((1. / (inductanță * frecvență * frecvență * 4. * 3.14159 * 3.14159)) * 1.E9); dacă ((int) capacitate <0) capacitate = 0; #ifdef serial Serial.print ("Capacitate:"); Serial.print (capacitate, 6); Serial.println ("uF"); # endif lcd.setCursor (0, 1); lcd.print ("Cap:"); if (capacitate> 47) { lcd.print ((capacitate / 1000)); lcd.print ("uF"); } else { lcd.print (capacitate); lcd.print ("nF"); } }
Așa că așa am calculat frecvența, capacitatea și inductanța folosind Arduino și le-am afișat pe LCD 16x2.