- Componenten vereist
- Frequentie en inductie berekenen
- Schakelschema en uitleg
- Uitleg over programmeren
Alle embedded liefhebbers zijn bekend met de multimeter, een geweldig hulpmiddel om spanning, stroom, weerstand etc. te meten. Een multimeter kan ze gemakkelijk meten. Maar soms moeten we inductantie en capaciteit meten, wat niet mogelijk is met een normale multimeter. Er zijn enkele speciale multimeters die inductantie en capaciteit kunnen meten, maar deze zijn kostbaar. We hebben al een frequentiemeter, capaciteitsmeter en weerstandsmeter gebouwd met Arduino. Dus vandaag gaan we een inductantie- LC-meter maken met Arduino. In dit project zullen we de inductantie- en capaciteitswaarden samen met de frequentie laten zien op een 16x2 LCD-scherm. Er is een drukknop in het circuit om te schakelen tussen capaciteits- en inductantieweergave.
Componenten vereist
- Arduino Uno
- 741 opamp IC
- 3v batterij
- 100 ohm weerstand
- Condensatoren
- Inductoren
- 1n4007 diode
- 10k weerstand
- 10k pot
- Stroomvoorziening
- Druk op de knop
- Breadboard of printplaat
- Draden aansluiten
Frequentie en inductie berekenen
In dit project gaan we inductantie en capaciteit meten door een LC-circuit parallel te gebruiken. Dit circuit is als een ring of bel die op een bepaalde frequentie begint te resoneren. Elke keer dat we een puls toepassen, zal dit LC-circuit beginnen te resoneren en deze resonantiefrequentie heeft de vorm van een analoge (sinusvormige golf), dus we moeten het omzetten in een squire-golf. Om dit te doen, passen we deze analoge resonantiefrequentie toe op opamp (741 in ons geval) die deze zal omzetten in squire wave (frequentie) bij 50% van de duty-cycle. Nu meten we de frequentie door Arduino te gebruiken en door een wiskundige berekening te gebruiken, kunnen we de inductantie of capaciteit vinden. We hebben de gegeven frequentieresponsformule van het LC-circuit gebruikt.
f = 1 / (2 * tijd)
waar tijd is output van pulseIn () functie
nu hebben we LC-circuitfrequentie:
f = 1/2 * Pi * vierkantswortel uit (LC)
we kunnen het oplossen om inductie te krijgen:
f 2 = 1 / (4Pi 2 LC) L = 1 / (4Pi 2 f 2 C) L = 1 / (4 * Pi * Pi * f * f * C)
Zoals we al zeiden, is onze golf een sinusvormige golf, dus deze heeft dezelfde tijdsperiode in zowel positieve als negatieve amplitude. Dit betekent dat de comparator het omzet in een blokgolf met een inschakelduur van 50%. Zodat we het kunnen meten met behulp van pulseIn () functie van Arduino. Deze functie geeft ons een tijdsperiode die gemakkelijk kan worden omgezet in een frequentie door de tijdsperiode om te keren. Omdat de functie pulseIn slechts één puls meet, moeten we deze nu vermenigvuldigen met 2 om de juiste frequentie te krijgen. Nu hebben we een frequentie die kan worden omgezet in inductie door de bovenstaande formule te gebruiken.
Opmerking: tijdens het meten van inductantie (L1) moet de waarde van de condensator (C1) 0,1 uF zijn en tijdens het meten van capaciteit (C1), moet de waarde van de inductor (L1) 10 mH zijn.
Schakelschema en uitleg
In dit schakelschema van de LC-meter hebben we Arduino gebruikt om de projectwerking te besturen. Hierin hebben we een LC-circuit gebruikt. Dit LC-circuit bestaat uit een inductor en een condensator. Om de sinusvormige resonantiefrequentie om te zetten in digitale of blokgolf hebben we een operationele versterker gebruikt, namelijk 741. Hier moeten we een negatieve voeding toepassen op de op-amp om een nauwkeurige uitgangsfrequentie te krijgen. We hebben dus een 3V-batterij gebruikt die in omgekeerde polariteit is aangesloten, wat betekent dat de negatieve pin van 741 is verbonden met de negatieve pool van de batterij en de positieve pin van de batterij is verbonden met de aarde van het resterende circuit. Zie het onderstaande schakelschema voor meer uitleg.
Hier hebben we een drukknop om de werkingsmodus te wijzigen, of we nu inductantie of capaciteit meten. Een 16x2 LCD-scherm wordt gebruikt om de inductie of capaciteit te tonen met de frequentie van het LC-circuit. Een 10k pot wordt gebruikt om de helderheid van het LCD-scherm te regelen. Circuit wordt gevoed met behulp van Arduino 5v-voeding en we kunnen de Arduino voeden met 5v met behulp van een USB- of 12v-adapter.
Uitleg over programmeren
Het programmeergedeelte van dit LC Meter-project is heel eenvoudig. De volledige Arduino- code wordt aan het einde van dit artikel gegeven.
Eerst moeten we een bibliotheek voor LCD opnemen en enkele pinnen en macro's declareren.
# omvatten
Daarna hebben we in de setup- functie de LCD- en seriële communicatie geïnitialiseerd om meetwaarden weer te geven op de LCD en seriële monitor.
ongeldige setup () { #ifdef serial Serial.begin (9600); #endif lcd.begin (16, 2); pinMode (freqIn, INPUT); pinMode (opladen, OUTPUT); pinMode (modus, INPUT_PULLUP); lcd.print ("LC-meter gebruiken"); lcd.setCursor (0, 1); lcd.print ("Arduino"); vertraging (2000); lcd.clear (); lcd.print ("Circuit Digest"); vertraging (2000); }
Pas vervolgens in de lusfunctie een puls van een vaste tijdsperiode toe op het LC-circuit dat het LC-circuit zal opladen. Na het verwijderen van de puls begint het LC-circuit te resoneren. Vervolgens lezen we de blokgolfconversie, afkomstig van op-amp, met behulp van de pulseIn () -functie en converteren dat door te vermenigvuldigen met 2. Hier hebben we ook enkele voorbeelden hiervan genomen. Dat is hoe de frequentie wordt berekend:
void loop () { for (int i = 0; i
Nadat we de frequentiewaarde hebben gekregen, hebben we ze omgezet in inductie door een bepaald stuk code te gebruiken
capaciteit = 0.1E-6; inductantie = (1. / (capaciteit * frequentie * frequentie * 4. * 3.14159 * 3.14159)) * 1.E6; #ifdef serial Serial.print ("Ind:"); if (inductantie> = 1000) { Serial.print (inductantie / 1000); Serial.println ("mH"); } else { Serial.print (inductantie); Serial.println ("uH"); } #endif lcd.setCursor (0, 1); lcd.print ("Ind:"); if (inductantie> = 1000) { lcd.print (inductantie / 1000); lcd.print ("mH"); } else { lcd.print (inductantie); lcd.print ("uH"); } }
En door de gegeven code te gebruiken, hebben we de capaciteit berekend.
if (Bit.flag) { inductantie = 1.E-3; capaciteit = ((1. / (inductie * frequentie * frequentie * 4. * 3.14159 * 3.14159)) * 1.E9); if ((int) capaciteit <0) capaciteit = 0; #ifdef serial Serial.print ("Capaciteit:"); Serial.print (capaciteit, 6); Serial.println ("uF"); #endif lcd.setCursor (0, 1); lcd.print ("Cap:"); if (capaciteit> 47) { lcd.print ((capaciteit / 1000)); lcd.print ("uF"); } else { lcd.print (capaciteit); lcd.print ("nF"); } }
Dus dit is hoe we de frequentie, capaciteit en inductantie hebben berekend met Arduino en deze hebben weergegeven op een 16x2 LCD.