- Reikalingi komponentai:
- Grandinės paaiškinimas:
- 555 laikmačio IC pagrindu veikiantis kvadratinių bangų generatorius:
- „Schmitt Trigger Gate“:
- „Arduino“ matuoja talpą:
- Santrauka ir testavimas:
Kai susiduriame su anksčiau suprojektuotomis plokštėmis arba išimame jas iš senojo televizoriaus ar kompiuterio, bandydami ją pataisyti. Ir kartais mes turime žinoti konkretaus kondensatoriaus talpą lentoje, kad pašalintume gedimą. Tada susiduriame su problema gauti iš plokštės tikslią kondensatoriaus vertę, ypač jei tai yra paviršiaus tvirtinimo įtaisas. Galime nusipirkti talpos matavimo įrangą, tačiau visi šie prietaisai yra brangūs ir ne visiems. Atsižvelgdami į tai, suprojektuosime paprastą „ Arduino“ talpos matuoklį nežinomų kondensatorių talpai matuoti.
Šis skaitiklis gali būti lengvai pagamintas ir ekonomiškas. Ketiname pagaminti talpos matuoklį naudodami „Arduino Uno“, „Schmitt“ paleidimo vartus ir 555 IC laikmatį.
Reikalingi komponentai:
- 555 laikmačio IC
- IC 74HC14 Schmitt paleidimo vartai arba NE vartai.
- 1K Ω rezistorius (2 vnt.), 10KΩ rezistorius
- 100nF kondensatorius, 1000µF kondensatorius
- 16 * 2 skystųjų kristalų ekranas,
- Breadboard ir kai kurios jungtys.
Grandinės paaiškinimas:
Pajėgumų matuoklio, naudojant „Arduino“, schema parodyta žemiau esančiame paveikslėlyje. Grandinė yra paprasta, LCD ekranas yra susietas su „Arduino“, kad būtų rodoma išmatuota kondensatoriaus talpa. Kvadratinių bangų generatoriaus grandinė (555 „Astable“ režimu) yra prijungta prie „Arduino“, kur mes prijungėme kondensatorių, kurio talpa turi būti matuojama. Norėdami užtikrinti, kad „Arduino“ būtų tiekiama tik stačiakampė banga, naudojami „Schmitt“ paleidimo vartai (IC 74LS14). Norėdami filtruoti triukšmą, mes pridėjome keletą kondensatorių visoje galia.
Ši grandinė gali tiksliai išmatuoti talpas nuo 10nF iki 10uF diapazone.
555 laikmačio IC pagrindu veikiantis kvadratinių bangų generatorius:
Pirmiausia kalbėsime apie 555 „Timer IC“ pagrindu veikiantį kvadratinių bangų generatorių arba turėčiau pasakyti „555 Astable Multivibrator“. Mes žinome, kad kondensatoriaus talpos negalima tiesiogiai matuoti skaitmeninėje grandinėje, kitaip tariant, JT dirba su skaitmeniniais signalais ir ji negali tiesiogiai matuoti talpos. Taigi kondensatorių susieti su skaitmeniniu pasauliu naudojame 555 kvadratinių bangų generatoriaus grandinę.
Paprasčiau tariant, laikmatis suteikia kvadratinių bangų išėjimą, kurio dažnis tiesiogiai susijęs su prie jo prijungta talpa. Taigi pirmiausia gauname kvadratinių bangų signalą, kurio dažnis yra nežinomo kondensatoriaus talpos atstovas, ir tiekiame šį signalą UNO, kad gautume reikiamą vertę.
Bendra konfigūracija 555 „Astable“ režimu, kaip parodyta žemiau esančiame paveikslėlyje:
Išėjimo signalo dažnis priklauso nuo RA, RB rezistorių ir kondensatoriaus C. Lygtis pateikiama kaip
Dažnis (F) = 1 / (laikotarpis) = 1,44 / ((RA + RB * 2) * C).
Čia RA ir RB yra varžos vertės, o C - talpos vertė. Pateikdami pasipriešinimo ir talpos vertes į aukščiau pateiktą lygtį, gauname išėjimo kvadratinės bangos dažnį.
Mes sujungsime 1KΩ kaip RA ir 10KΩ kaip RB. Taigi formulė tampa, Dažnis (F) = 1 / (laikotarpis) = 1,44 / (21000 * C).
Pertvarkydami mūsų turimas sąlygas, Talpa C = 1,44 / (21000 * F)
Mūsų programos kode (žr. Toliau), norėdami tiksliai gauti talpos vertę, apskaičiavome rezultatą nF, gautus rezultatus (faradais) padauginę iš „1000000000“. Taip pat mes naudojome „20800“, o ne 21000, nes tikslūs RA ir RB atsparumai yra 0,98K ir 9,88K.
Taigi, jei žinome kvadratinės bangos dažnį, galime gauti talpos vertę.
„Schmitt Trigger Gate“:
Laikmačio grandinės generuojami signalai nėra visiškai saugūs, kad juos tiesiogiai būtų galima perduoti „Arduino Uno“. Atsižvelgdami į UNO jautrumą, mes naudojame „Schmitt“ paleidimo vartus. „Schmitt“ paleidimo vartai yra skaitmeninės logikos vartai.
Šie vartai teikia IŠĖJIMĄ pagal įvesties įtampos lygį. „Schmitt Trigger“ turi THERSHOLD įtampos lygį, kai vartams pritaikyto INPUT signalo įtampos lygis yra didesnis nei loginių vartų THRESHOLD, OUTPUT eina HIGH. Jei INPUT įtampos signalo lygis yra žemesnis nei THRESHOLD, vartų išvestis bus LOW. Tokiu atveju mes paprastai negauname Schmitt trigerio atskirai, mes visada turime NOT vartus po Schmitt trigerio. „Schmitt Trigger“ veikimas paaiškinamas čia: „Schmitt Trigger Gate“
Mes ketiname naudoti 74HC14 lustą, šiame luste yra 6 „Schmitt Trigger“ vartai. Šie ŠEŠI vartai yra sujungti viduje, kaip parodyta žemiau esančiame paveiksle.
Tiesa lentelė invertuotas Šmito trigeris vartai yra šou parodyta pavyzdyje, su šia turime užprogramuoti už vartydami teigiamus ir neigiamus laikotarpius į savo terminalus UNO.
Mes sujungiame laikmačio grandinės sugeneruotą signalą prie ST vartų, išėjime turėsime stačiakampę apverstų laikotarpių bangą, kurią saugu perduoti UNO.
„Arduino“ matuoja talpą:
„Uno“ turi specialią funkciją „ impulseIn“ , kuri leidžia mums nustatyti tam tikros stačiakampės bangos teigiamą būsenos trukmę arba neigiamą būsenos trukmę:
Htime = impulsasIn (8, HIGH); Ltime = pulseIn (8, LOW);
„ PulseIn“ funkcija matuoja laiką, per kurį „Uno“ PIN8 yra aukštas arba žemas lygis. „ PulseIn“ funkcija matuoja šį aukščiausią laiką (Htime) ir mažą laiką (Ltime) per mikro sekundes. Kai pridėsime Htime ir Ltime kartu, turėsime ciklo trukmę, o apversdami turėsime dažnį.
Gavę dažnį, talpą galime gauti naudodami anksčiau aptartą formulę.
Santrauka ir testavimas:
Taigi apibendrinant, mes prijungiame nežinomą kondensatorių prie 555 laikmačio grandinės, kuri sukuria kvadratinių bangų išėjimą, kurio dažnis yra tiesiogiai susijęs su kondensatoriaus talpa. Šis signalas UNO perduodamas per ST vartus. JT matuoja dažnumą. Kai dažnis yra žinomas, mes programuojame UNO, kad apskaičiuotų talpą pagal anksčiau aptartą formulę.
Pažiūrėkime, kokius rezultatus gavau, Kai prijungiau 1uF elektrolitinį kondensatorių, rezultatas yra 1091,84 nF ~ 1uF. Rezultatas su 0,1uF poliesterio kondensatoriumi yra 107,70 nF ~ 0,1uF
Tada aš prijungiau 0,1uF keramikos kondensatorių ir rezultatas yra 100,25 nF ~ 0,1uF. Taip pat rezultatas su 4,7uF elektrolitiniu kondensatoriumi yra 4842,83 nF ~ 4,8uF
Taigi taip galime paprasčiausiai išmatuoti bet kurio kondensatoriaus talpą.