- Zahtevane komponente:
- Pojasnilo vezja:
- Generator kvadratnih valov na osnovi IC s časovnikom 555:
- Sprožilna vrata Schmitta:
- Arduino meri kapacitivnost:
- Povzetek in testiranje:
Ko naletimo na predhodno zasnovana vezja ali jih vzamemo iz starega televizorja ali računalnika, da bi ga popravili. In včasih moramo vedeti kapacitivnost določenega kondenzatorja na plošči, da odpravimo napako. Potem se soočamo s težavo pri pridobivanju natančne vrednosti kondenzatorja s plošče, še posebej, če gre za površinsko napravo. Lahko kupimo opremo za merjenje kapacitivnosti, vendar so vse te naprave drage in niso za vsakogar. S tem v mislih bomo zasnovali preprost merilnik kapacitivnosti Arduino za merjenje kapacitivnosti neznanih kondenzatorjev.
Ta števec je mogoče enostavno izdelati in je tudi stroškovno učinkovit. Mi se bomo, da bi kapacitivnosti merilnik s pomočjo Arduino Uno, Schmittov proženja vrata in 555 IC časovnik.
Zahtevane komponente:
- 555 IC časovnik
- IC 74HC14 Schmittova sprožilna vrata ali vrata NOT.
- Upor 1K Ω (2 kosa), upor 10KΩ
- 100nF kondenzator, 1000µF kondenzator
- 16 * 2 LCD,
- Breadboard in nekaj konektorjev.
Pojasnilo vezja:
Shema vezja merilnika kapacitivnosti z uporabo Arduina je prikazana na spodnji sliki. Vezje je preprosto, LCD je povezan z Arduino za prikaz izmerjene kapacitivnosti kondenzatorja. Vezje generatorja kvadratnih valov (555 v nastavljivem načinu) je priključeno na Arduino, kjer smo priključili kondenzator, katerega kapacitivnost je treba izmeriti. Schmittova sprožilna vrata (IC 74LS14) se uporabljajo za zagotovitev, da se v Arduino napaja samo pravokoten val. Za filtriranje hrupa smo dodali nekaj kondenzatorjev po moči.
To vezje lahko natančno izmeri kapacitete v območju od 10nF do 10uF.
Generator kvadratnih valov na osnovi IC s časovnikom 555:
Najprej bomo govorili o generatorju kvadratnih valov na osnovi 555 Timer IC, ali naj rečem 555 Astable Multivibrator. Vemo, da kapacitivnosti kondenzatorja ni mogoče izmeriti neposredno v digitalnem vezju, z drugimi besedami UNO obravnava digitalne signale in kapacitivnosti ne more neposredno izmeriti. Za povezavo kondenzatorja z digitalnim svetom torej uporabljamo 555 vezje generatorja kvadratnih valov.
Preprosto povedano, časovnik zagotavlja izhod kvadratnega vala, katerega frekvenca neposredno vpliva na kapacitivnost, priključeno nanj. Torej najprej dobimo kvadratni valovni signal, katerega frekvenca je reprezentativna za kapacitivnost neznanega kondenzatorja, in ta signal pošljemo UNO za pridobitev ustrezne vrednosti.
Splošna konfiguracija 555 v nastavljivem načinu, kot je prikazano na spodnji sliki:
Frekvenca izhodnega signala je odvisna od uporov RA, RB in kondenzatorja C. Enačba je podana kot, Frekvenca (F) = 1 / (Časovno obdobje) = 1,44 / ((RA + RB * 2) * C).
Tu sta RA in RB vrednosti upora in C vrednost kapacitivnosti. Z vstavitvijo vrednosti upora in kapacitivnosti v zgornjo enačbo dobimo frekvenco izhodnega kvadratnega vala.
Povezali bomo 1KΩ kot RA in 10KΩ kot RB. Torej formula postane, Frekvenca (F) = 1 / (Časovno obdobje) = 1,44 / (21000 * C).
S preureditvijo izrazov, ki jih imamo, Zmogljivost C = 1,44 / (21000 * F)
V naši programski kodi (glej spodaj) smo za natančno pridobitev vrednosti kapacitivnosti izračunali rezultat v nF tako, da smo dobljene rezultate pomnožili s "1000000000". Prav tako smo uporabili '20800' namesto 21000, ker sta natančna upora RA in RB 0,98K in 9,88K.
Torej, če poznamo frekvenco kvadratnega vala, lahko dobimo vrednost kapacitivnosti.
Sprožilna vrata Schmitta:
Signali, ki jih generira časovno vezje, niso popolnoma varni, če jih lahko neposredno posredujemo Arduino Uno. Ob upoštevanju občutljivosti UNO uporabljamo Schmittova sprožilna vrata. Schmittova sprožilna vrata so digitalna logična vrata.
Ta vrata zagotavljajo IZHOD na podlagi napetosti INPUT. Sprožilec Schmitt ima raven napetosti THERSHOLD, ko ima signal INPUT, ki se nanaša na vrata, raven napetosti višja od THRESHOLD logičnih vrat, se OUTPUT dvigne. Če je nivo napetosti signala INPUT nižji od THRESHOLD, bo IZHOD vrat nizki. Ob tem Schmittovega sprožilca običajno ne dobimo ločeno, vedno imamo vrata NOT, ki sledijo Schmittovemu sprožilcu. Delovanje Schmitt Triggerja je razloženo tukaj: Schmitt Trigger Gate
Bomo uporabili 74HC14 čip, ta čip ima 6 Schmitt Trigger vrata v njej. Ti VOZI ŠEST so povezani notranje, kot je prikazano na spodnji sliki.
Resnica Tabela Inverted Schmitt Trigger vrat je predstava v spodnji sliki, s tem moramo programirati UNO za obračanjem pozitivnih in negativnih časovnih obdobij na svojih terminalih.
Signal, ki ga generira časovno vezje, priključimo na vrata ST, na izhodu bomo imeli pravokotni val obrnjenih časovnih obdobij, ki je varen za UNO.
Arduino meri kapacitivnost:
Uno ima posebno funkcijo pulseIn , ki nam omogoča določanje trajanja pozitivnega ali negativnega stanja določenega pravokotnega vala:
Htime = pulseIn (8, VISOKO); Ltime = pulseIn (8, LOW);
Funkcija pulseIn meri čas, ko je na PIN8 od Uno prisotna visoka ali nizka raven. Funkcija pulseIn meri ta visoki čas (čas H) in najnižji čas (čas L) v mikro sekundah. Ko skupaj seštejemo Htime in Ltime, bomo imeli Trajanje cikla in z njegovim obračanjem bomo dobili Frekvenco.
Ko dobimo frekvenco, lahko dobimo kapacitivnost z uporabo formule, o kateri smo že govorili.
Povzetek in testiranje:
Če povzamemo, neznani kondenzator priključimo na 555 časovno vezje, ki generira kvadratni izhod, katerega frekvenca je neposredno povezana s kapacitivnostjo kondenzatorja. Ta signal se pošlje UNO skozi vrata ST. UNO meri frekvenco. Z znano frekvenco UNO programiramo za izračun kapacitivnosti z uporabo formule, o kateri smo že govorili.
Poglejmo nekaj rezultatov, ki sem jih dobil, Ko sem priključil elektrolitski kondenzator 1uF, je rezultat 1091,84 nF ~ 1uF. In rezultat z 0,1uF poliestrskim kondenzatorjem je 107,70 nF ~ 0,1uF
Nato sem priklopil 0,1uF keramični kondenzator in rezultat je 100,25 nF ~ 0,1uF. Tudi rezultat z elektrolitskim kondenzatorjem 4,7uF je 4842,83 nF ~ 4,8uF
Tako lahko preprosto izmerimo kapacitivnost katerega koli kondenzatorja.