- Nödvändiga komponenter:
- Kretsförklaring:
- 555 Timer IC-baserad fyrkantvågsgenerator:
- Schmitt Trigger Gate:
- Arduino mäter kapacitansen:
- Sammanfattning och testning:
När vi stöter på kretskort som tidigare har konstruerats eller om vi tar ut en från gammal TV eller dator, i försök att reparera den. Och ibland behöver vi veta kapacitansen hos en viss kondensator i kortet för att eliminera felet. Då står vi inför ett problem med att få det exakta värdet på kondensatorn från kortet, särskilt om det är en ytmonterad enhet. Vi kan köpa utrustning för att mäta kapacitansen, men alla dessa enheter är kostsamma och inte för alla. Med detta i åtanke ska vi designa en enkel Arduino kapacitansmätare för att mäta kapacitansen hos okända kondensatorer.
Denna mätare kan enkelt göras och även kostnadseffektiv. Vi ska göra kapacitansmätare med Arduino Uno, Schmitt trigger gate och 555 IC timer.
Nödvändiga komponenter:
- 555 timer IC
- IC 74HC14 Schmitt triggergrind eller NOT gate.
- 1K Ω motstånd (2 stycken), 10KΩ motstånd
- 100nF kondensator, 1000 μF kondensator
- 16 * 2 LCD,
- Brödbräda och några kontakter.
Kretsförklaring:
Kretsschemat för kapacitansmätaren med Arduino visas i figuren nedan. Kretsen är enkel, en LCD är gränssnitt med Arduino för att visa kondensatorns uppmätta kapacitans. En fyrkantig generatorkrets (555 i Astable-läge) är ansluten till Arduino, där vi har anslutit kondensatorn vars kapacitans måste mätas. En Schmitt-utlösargrind (IC 74LS14) används för att säkerställa att endast rektangulär våg matas till Arduino. För att filtrera bruset har vi lagt till några kondensatorer över strömmen.
Denna krets kan noggrant mäta kapacitanser inom intervallet 10nF till 10uF.
555 Timer IC-baserad fyrkantvågsgenerator:
Först och främst kommer vi att prata om 555 Timer IC-baserad fyrkantvågsgenerator, eller ska jag säga 555 Astable Multivibrator. Vi vet att kondensatorns kapacitans inte kan mätas direkt i en digital krets, med andra ord hanterar UNO digitala signaler och den kan inte mäta kapacitans direkt. Så vi använder 555 kvadratvågsgeneratorkrets för att länka kondensatorn till den digitala världen.
Enkelt talat, ger timern fyrkantvågsutsignaler vars frekvens direkt berör kapacitansen som är ansluten till den. Så först får vi fyrkantvågssignalen vars frekvens är representativ för kapaciteten hos den okända kondensatorn och matar denna signal till UNO för att få rätt värde.
Allmän konfiguration 555 i Astable-läge som visas i bilden nedan:
Utsignalens frekvens beror på RA, RB-motstånd och kondensator C. Ekvationen ges som, Frekvens (F) = 1 / (tidsperiod) = 1,44 / ((RA + RB * 2) * C).
Här är RA och RB motståndsvärden och C är kapacitansvärde. Genom att sätta motstånds- och kapacitansvärdena i ovanstående ekvation får vi frekvensen för utgångs kvadratvåg.
Vi ska ansluta 1KΩ som RA och 10KΩ som RB. Så formeln blir, Frekvens (F) = 1 / (Tidsperiod) = 1,44 / (21000 * C).
Genom att ordna om de villkor vi har, Kapacitans C = 1,44 / (21000 * F)
I vår programkod (se nedan), för att få kapacitansvärdet exakt, har vi beräknat resultatet i nF genom att multiplicera de erhållna resultaten (i farads) med "1000000000". Vi har också använt '20800' istället för 21000, eftersom de exakta motstånden för RA och RB är 0,98K och 9,88K.
Så om vi känner till frekvensen för fyrkantvåg kan vi få kapacitansvärdet.
Schmitt Trigger Gate:
Signalerna som genereras av tidkretsen är inte helt säkra att få direkt till Arduino Uno. Med känsligheten för UNO i åtanke använder vi Schmitt trigger gate. Schmitt trigger gate är en digital logisk gate.
Denna grind ger OUTPUT baserat på INPUT-spänningsnivån. En Schmitt-utlösare har en THERSHOLD-spänningsnivå, när INPUT-signalen som appliceras på grinden har en spänningsnivå högre än THRESHOLD för den logiska grinden, går OUTPUT HIGH. Om INPUT-spänningssignalnivån är lägre än THRESHOLD kommer utgången för grinden att vara LÅG. Med det får vi vanligtvis inte Schmitt-utlösaren separat, vi har alltid en NOT-grind efter Schmitt-utlösaren. Schmitt Trigger-arbete förklaras här: Schmitt Trigger Gate
Vi kommer att använda 74HC14-chip, detta chip har 6 Schmitt Trigger-grindar i sig. Dessa SIX-grindar är anslutna internt enligt bilden nedan.
Den Sanningen Table of Inverted Schmitt Trigger gate är show i figuren nedan, med detta måste vi programmera UNO för att invertera de positiva och negativa tidsperioder vid sina terminaler.
Vi ansluter signalen som genereras av tidkretsen till ST-grinden, vi kommer att ha en rektangulär våg av inverterade tidsperioder vid utgången som är säkert att ges till UNO.
Arduino mäter kapacitansen:
Uno har en speciell funktion pulseIn , som gör det möjligt för oss att bestämma varaktigheten för positivt tillstånd eller negativt tillstånd för en viss rektangulär våg:
Htime = pulseIn (8, HIGH); Ltime = pulseIn (8, LOW);
Den pulseIn funktionen mäter tid som hög eller låg nivå är närvarande vid pin8 av Uno. De pulseIn funktionsåtgärder denna Hög tid (Htime) och låg tid (LTIME) i mikrosekunder. När vi lägger till Htime och Ltime tillsammans kommer vi att ha cykeltiden, och genom att invertera den kommer vi att ha frekvensen.
När vi väl har frekvensen kan vi få kapacitansen genom att använda formeln vi diskuterade tidigare.
Sammanfattning och testning:
Sammanfattningsvis ansluter vi den okända kondensatorn till 555-tidkretsen, som genererar en fyrkantvågsutgång vars frekvens är direkt relaterad till kondensatorns kapacitans. Denna signal ges till UNO genom ST gate. UNO mäter frekvensen. Med känd frekvens programmerar vi UNO för att beräkna kapacitansen med formeln som diskuterats tidigare.
Låt oss se några resultat jag fick, När jag anslöt 1uF elektrolytkondensator är resultatet 1091.84 nF ~ 1uF. Och resultatet med 0,1uF polyesterkondensator är 107,70 nF ~ 0,1uF
Sedan anslöt jag 0,1uF keramisk kondensator och resultatet är 100,25 nF ~ 0,1uF. Resultatet med 4.7uF elektrolytkondensator är också 4842.83 nF ~ 4.8uF
Så det är så vi helt enkelt kan mäta kapacitansen hos vilken kondensator som helst.