- Reikalingi komponentai:
- Grandinės paaiškinimas:
- Signalo generatorius, naudojantis 555 laikmačio IC:
- „Schmitt Trigger Gate“:
- „Arduino“ dažnio skaitiklio kodo paaiškinimas:
Beveik kiekvienas elektroninis mėgėjas turi susidurti su scenarijumi, kai jis turi išmatuoti laikrodžio, skaitiklio ar laikmačio generuojamo signalo dažnį. Darbui atlikti galime naudoti osciloskopą, tačiau ne visi galime sau leisti osciloskopą. Mes galime nusipirkti įrangą dažnių matavimui, tačiau visi šie prietaisai yra brangūs ir tinka ne visiems. Atsižvelgdami į tai, mes suprojektuosime paprastą, bet efektyvų dažnio skaitiklį naudodami „Arduino Uno“ ir „Schmitt“ paleidimo vartus.
Šis „ Arduino“ dažnių skaitiklis yra ekonomiškai efektyvus ir lengvai pagaminamas. Signalo dažniui matuoti pasitelksime „ ARDUINO UNO “, UNO yra projekto esmė.
Norėdami išbandyti dažnio matuoklį, mes pagaminsime manekeno signalo generatorių. Šis manekeno signalo generatorius bus pagamintas naudojant 555 laikmačio lustą. Laikmačio grandinė sukuria kvadratinę bangą, kuri bus pateikta UNO bandymams.
Kai viskas bus vietoje, turėsime „Arduino“ dažnio matuoklį ir kvadratinių bangų generatorių. Arduino taip pat gali būti naudojamas generuoti kitokio tipo bangas, tokias kaip sinusinė banga, pjūklo dantų banga ir kt.
Reikalingi komponentai:
- 555 laikmačio IC ir 74LS14 Schmitt paleidimo vartai arba NE vartai.
- 1K Ω rezistorius (2 vnt.), 100Ω rezistorius
- 100nF kondensatorius (2 vnt.), 1000µF kondensatorius
- 16 * 2 skystųjų kristalų ekranas,
- 47KΩ puodas,
- Breadboard ir kai kurios jungtys.
Grandinės paaiškinimas:
Dažnio matavimo naudojant „Arduino“ schema parodyta žemiau esančiame paveikslėlyje. Grandinė yra paprasta, LCD ekranas yra susietas su „Arduino“, kad būtų rodomas išmatuotas signalo dažnis. „Bangų įvestis“ eis į signalo generatoriaus grandinę, iš kurios mes tiekiame signalą „Arduino“. 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. Šis dažnio matuoklis gali išmatuoti dažnius iki 1 MHz.
Signalų generatoriaus grandinė ir „Schmitt“ paleidiklis buvo paaiškinti toliau.
Signalo generatorius, naudojantis 555 laikmačio IC:
Pirmiausia kalbėsime apie 555 IC pagrindu veikiantį kvadratinių bangų generatorių, arba turėčiau pasakyti 555 Astable Multivibrator. Ši grandinė yra būtina, nes esant dažnio matuokliui turime turėti signalą, kurio dažnis mums yra žinomas. Be šio signalo mes niekada negalėsime pasakyti apie dažnio matuoklio veikimą. Jei mes turime kvadratą, kurio dažnis yra žinomas, mes galime naudoti tą signalą, norėdami išbandyti „Arduino Uno“ dažnio matuoklį ir galime jį pakoreguoti, jei norite pakoreguoti tikslumą, jei yra kokių nors nukrypimų. Iš vaizdo signalų generatorius naudojant ne 555 yra pateikti žemiau:
Tipinė 555 grandinė, veikianti „Astable“ režimu, pateikiama žemiau, iš kurios mes gavome pirmiau pateiktą signalo generatoriaus grandinę.
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į.
Galima pastebėti, kad pirmiau pateiktos diagramos RB pakeičiamas puodeliu Signalų generatoriaus grandinėje; tai daroma tam, kad galėtume gauti kintamą dažnio kvadratinę bangą išvestyje, kad būtų galima geriau išbandyti. Kad būtų paprasčiau, puodą galima pakeisti paprastu rezistoriumi.
„Schmitt Trigger Gate“:
Mes žinome, kad visi bandymo signalai nėra kvadratinės ar stačiakampės bangos. Mes turime trikampes bangas, dantų bangas, sinusines bangas ir pan. Kad UNO galėtų aptikti tik kvadratines ar stačiakampes bangas, mums reikia įrenginio, kuris bet kokius signalus galėtų pakeisti stačiakampėmis bangomis, todėl naudojame Schmitt Trigger Gate. „Schmitt“ paleidimo vartai yra skaitmeninės logikos vartai, skirti atlikti aritmetines ir logines operacijas.
Š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. Paprastai mes negauname Schmitt trigerio atskirai, mes visada turime NOT vartus, sekančius Schmitt trigeriu. „Schmitt Trigger“ veikimas paaiškinamas čia: „Schmitt Trigger Gate“
Mes ketiname naudoti 74LS14 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.
Dabar mes tieksime bet kokio tipo signalus į ST vartus, išvestyje turėsime stačiakampę apverstų laikotarpių bangą, mes tieksime šį signalą UNO.
„Arduino“ dažnio skaitiklio kodo paaiškinimas:
Šio dažnio matavimo naudojant „Arduino“ kodas yra gana paprastas ir lengvai suprantamas. Čia mes paaiškiname pulseIn funkciją, kuri yra daugiausia atsakinga už dažnio matavimą. „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);
Pateikta funkcija matuoja laiką, per kurį „Uno“ PIN8 yra aukštas arba žemas lygis. Taigi per vieną bangos ciklą teigiamo ir neigiamo lygių trukmė bus mikro sekundėmis. „ PulseIn“ funkcija matuoja laiką mikro sekundėmis. Tam tikrame signale mes turime didžiausią laiką = 10mS ir mažą laiką = 30ms (esant 25 HZ dažniui). Taigi 30000 bus saugoma sveikaisiais litais ir 10000 Htime. Kai juos sujungsime, turėsime ciklo trukmę, o apvertę turėsime dažnį.
Pilnas šio dažnio matuoklio kodas ir vaizdo įrašas, naudojant „Arduino“, pateikiami žemiau.