- Nødvendige komponenter:
- Kretsforklaring:
- 555 Timer IC-basert firkantbølgenerator:
- Schmitt utløserport:
- Arduino måler kapasiteten:
- Sammendrag og testing:
Når vi kommer over kretskort som tidligere er designet eller vi tar ut en fra gammel TV eller datamaskin, i et forsøk på å reparere den. Og noen ganger trenger vi å vite kapasitansen til en bestemt kondensator i kortet for å eliminere feilen. Da står vi overfor et problem med å få den nøyaktige verdien av kondensator fra kortet, spesielt hvis det er en overflatemontert enhet. Vi kan kjøpe utstyr for å måle kapasitansen, men alle disse enhetene er kostbare og ikke for alle. Med det i tankene skal vi designe en enkel Arduino kapasitansmåler for å måle kapasitansen til ukjente kondensatorer.
Denne måleren kan enkelt lages og også være kostnadseffektiv. Vi skal lage kapasitetsmåler ved hjelp av Arduino Uno, Schmitt trigger gate og 555 IC timer.
Nødvendige komponenter:
- 555 timer IC
- IC 74HC14 Schmitt utløserport eller IKKE gate.
- 1K Ω motstand (2 deler), 10KΩ motstand
- 100nF kondensator, 1000µF kondensator
- 16 * 2 LCD,
- Brettbrett og noen kontakter.
Kretsforklaring:
Kretsskjemaet til kapasitansmåleren ved hjelp av Arduino er vist i figuren nedenfor. Kretsen er enkel, en LCD er grensesnittet med Arduino for å vise den målte kondensatorens kapasitans. En Square Wave Generator Circuit (555 i Astable-modus) er koblet til Arduino, hvor vi har koblet kondensatoren hvis kapasitans må måles. En Schmitt-utløserport (IC 74LS14) brukes for å sikre at bare rektangulær bølge blir matet til Arduino. For å filtrere støyen har vi lagt til noen kondensatorer på tvers av strøm.
Denne kretsen kan nøyaktig måle kapasitanser i området 10nF til 10uF.
555 Timer IC-basert firkantbølgenerator:
Først og fremst skal vi snakke om 555 Timer IC-basert firkantbølgenerator, eller skal jeg si 555 Astable Multivibrator. Vi vet at kapasitansen til en kondensator ikke kan måles direkte i en digital krets, med andre ord UNO håndterer digitale signaler, og den kan ikke måle kapasitans direkte. Så vi bruker 555 firkantbølgegeneratorkrets for å koble kondensatoren til den digitale verdenen.
Enkelt sagt gir tidtakeren firkantbølgeutgang hvis frekvens direkte impliserer kapasitansen som er koblet til den. Så først får vi firkantbølgesignalet hvis frekvens er representativ for kapasiteten til den ukjente kondensatoren, og mater dette signalet til UNO for å få den riktige verdien.
Generell konfigurasjon 555 i Astabel-modus som vist i figuren nedenfor:
Utgangssignalfrekvensen avhenger av RA, RB-motstander og kondensator C. Ligningen er gitt som, Frekvens (F) = 1 / (Tidsperiode) = 1,44 / ((RA + RB * 2) * C).
Her er RA og RB motstandsverdier og C er kapasitansverdi. Ved å sette motstands- og kapasitansverdiene over ligningen får vi frekvensen til utgangs kvadratbølge.
Vi skal koble 1KΩ som RA og 10KΩ som RB. Så formelen blir, Frekvens (F) = 1 / (Tidsperiode) = 1,44 / (21000 * C).
Ved å omorganisere vilkårene vi har, Kapasitans C = 1,44 / (21000 * F)
I vår programkode (se nedenfor), for å få kapasitansverdien nøyaktig, har vi beregnet resultatet i nF ved å multiplisere de oppnådde resultatene (i farads) med “1000000000”. Vi har også brukt '20800' i stedet for 21000, fordi de nøyaktige motstandene til RA og RB er 0,98K og 9,88K.
Så hvis vi vet frekvensen av firkantbølgen, kan vi få kapasitansverdien.
Schmitt utløserport:
Signalene som genereres av tidtakerkretsen er ikke helt trygge å bli gitt direkte til Arduino Uno. Med følsomheten til UNO i tankene, bruker vi Schmitt trigger gate. Schmitt trigger gate er en digital logisk gate.
Denne porten gir OUTPUT basert på INPUT-spenningsnivået. En Schmitt-utløser har et THERSHOLD-spenningsnivå, når INPUT-signalet som påføres porten har et spenningsnivå som er høyere enn THRESHOLD for den logiske porten, går OUTPUT HIGH. Hvis INPUT-spenningssignalnivået er lavere enn THRESHOLD, vil UTGANGEN til porten være LAV. Med det får vi vanligvis ikke Schmitt-utløser separat, vi har alltid en IKKE port etter Schmitt-utløseren. Schmitt Trigger-arbeid forklares her: Schmitt Trigger Gate
Vi skal bruke 74HC14-brikke, denne brikken har 6 Schmitt Trigger-porter i seg. Disse SIX portene er koblet innvendig som vist i figuren nedenfor.
Den sannhetstabell av invertert Schmitt Trigger gate er vis i figuren nedenfor, med dette har vi å programmere UNO for å invertere de positive og negative tidsperioder ved dens terminaler.
Vi kobler signalet generert av tidtakerkrets til ST gate, vi vil ha rektangulær bølge av inverterte tidsperioder ved utgangen som det er trygt å bli gitt til UNO.
Arduino måler kapasiteten:
Uno har en spesiell funksjon pulseIn , som gjør det mulig for oss å bestemme varigheten av positiv tilstand eller negativ tilstand for en bestemt rektangulær bølge:
Htime = pulseIn (8, HIGH); Ltime = pulseIn (8, LOW);
Den pulseIn funksjonen måler den tid i hvilken høyt eller lavt nivå er til stede på pin8 av Uno. De pulseIn funksjonen måler dette Høy tid (htime) og lav Tid (Ltime) i mikro sekunder. Når vi legger til Htime og Ltime sammen, vil vi ha syklusvarigheten, og ved å snu den vil vi ha frekvensen.
Når vi har fått frekvensen, kan vi få kapasitansen ved å bruke formelen vi diskuterte tidligere.
Sammendrag og testing:
Så i sammendrag kobler vi den ukjente kondensatoren til tidtakerkretsen 555, som genererer en firkantbølgeutgang hvis frekvens er direkte relatert til kondensatorens kapasitans. Dette signalet blir gitt til UNO gjennom ST gate. UNO måler frekvensen. Med kjent frekvens programmerer vi UNO til å beregne kapasitansen ved å bruke formelen diskutert tidligere.
La oss se noen resultater jeg fikk, Da jeg koblet til 1uF elektrolytisk kondensator, er resultatet 1091.84 nF ~ 1uF. Og resultatet med 0,1uF polyester kondensator er 107,70 nF ~ 0,1uF
Så koblet jeg til 0.1uF keramisk kondensator, og resultatet er 100,25 nF ~ 0,1uF. Resultatet med 4.7uF elektrolytkondensator er også 4842.83 nF ~ 4.8uF
Så det er slik vi bare kan måle kapasiteten til en hvilken som helst kondensator.