- Zahtevane komponente:
- Pojasnilo vezja:
- Generator signala z uporabo 555 IC Timer:
- Sprožilna vrata Schmitta:
- Pojasnilo kode števca frekvence Arduino:
Skoraj vsak elektronski ljubitelj se je moral soočiti s scenarijem, ko mora izmeriti frekvenco signala, ki ga ustvarjajo ura, števec ali časovnik. Za to delo lahko uporabimo osciloskop, vendar si ga osciloskop ne moremo privoščiti vsi. Lahko kupimo opremo za merjenje frekvence, vendar so vse te naprave drage in niso namenjene vsem. S tem v mislih bomo zasnovali preprost, a učinkovit števec frekvenc z uporabo Arduino Uno in Schmitt sprožilnih vrat.
Ta števec frekvenc Arduino je stroškovno učinkovit in ga je mogoče enostavno izdelati, za merjenje frekvence signala bomo uporabili ARDUINO UNO, pri čemer je UNO srce projekta.
Za preizkus frekvenčnega merilnika bomo izdelali preskusni generator signala. Ta navidezni generator signala bo izdelan z uporabo 555 časovnega čipa. Časovno vezje generira kvadratni val, ki bo posredovan UNO za testiranje.
Z vsem na svojem mestu bomo imeli merilnik frekvence Arduino in generator kvadratnih valov. Arduino se lahko uporablja tudi za ustvarjanje drugih vrst valov, kot so sinusni valovi, valovi žage itd.
Zahtevane komponente:
- 555 timer IC in 74LS14 Schmittova sprožilna vrata ali vrata NOT.
- Upor 1K Ω (2 kosa), upor 100Ω
- 100nF kondenzator (2 kosa), 1000µF kondenzator
- 16 * 2 LCD,
- Lonec 47KΩ,
- Breadboard in nekaj konektorjev.
Pojasnilo vezja:
Shema vezja za merjenje frekvence z uporabo Arduina je prikazana na spodnji sliki. Vezje je preprosto, LCD je povezan z Arduino za prikaz izmerjene frekvence signala. 'Vhod valov' gre v vezje generatorja signala, od koder dovajamo signal Arduinu. 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. Ta merilnik frekvence lahko meri frekvence do 1 MHz.
Vezje generatorja signala in Schmittov sprožilec so pojasnjeni spodaj.
Generator signala z uporabo 555 IC Timer:
Najprej bomo govorili o generatorju kvadratnih valov na osnovi 555 IC, ali naj rečem 555 Astable Multivibrator. To vezje je potrebno, ker moramo imeti nameščen frekvenčni merilnik signal, katerega frekvenca nam je znana. Brez tega signala nikoli ne bomo mogli ugotoviti, kako deluje merilnik frekvence. Če imamo kvadrat znane frekvence, lahko ta signal uporabimo za testiranje frekvenčnega merilnika Arduino Uno in ga lahko prilagodimo za natančnost v primeru kakršnih koli odstopanj. Slika Generatorja signalov z uporabo 555 Timer IC je podana spodaj:
Tipično vezje 555 v načinu Astable je podano spodaj, iz česar smo izpeljali zgoraj navedeno vezje generatorja signala.
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.
Vidimo, da je RB zgornjega diagrama nadomeščen z loncem v vezju generatorja signala; to se naredi tako, da lahko na izhodu dobimo kvadratni val s spremenljivo frekvenco za boljše testiranje. Zaradi enostavnosti lahko lonec zamenjamo s preprostim uporom.
Sprožilna vrata Schmitta:
Vemo, da vsi preskusni signali niso kvadratni ali pravokotni valovi. Imamo trikotne valove, zobne valove, sinusne valove itd. Ker lahko UNO zazna samo kvadratne ali pravokotne valove, potrebujemo napravo, ki bi lahko spremenila kateri koli signal v pravokotne valove, zato uporabljamo Schmitt Trigger Gate. Schmittova sprožilna vrata so digitalna logična vrata, namenjena aritmetičnim in logičnim operacijam.
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. 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 74LS14 č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.
Zdaj bomo na vrata ST napajali kakršen koli signal, na izhodu bomo imeli pravokotni val obrnjenih časovnih obdobij, ta signal bomo pošiljali UNO.
Pojasnilo kode števca frekvence Arduino:
Koda za to merjenje frekvence z uporabo arduina je precej preprosta in lahko razumljiva. Tu razlagamo funkcijo pulseIn, ki je v glavnem odgovorna za merjenje frekvence. 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);
Dana funkcija meri čas, ko je na PIN8 od Uno prisotna visoka ali nizka raven. Torej bomo v enem samem ciklu vala imeli trajanje pozitivne in negativne ravni v mikro sekundah. Funkcija pulseIn meri čas v mikro sekundah. V danem signalu imamo visok čas = 10mS in majhen čas = 30ms (s frekvenco 25 HZ). Tako bo 30000 shranjenih v Ltime celo število in 10000 v Htime. Ko jih seštejemo, bomo imeli trajanje cikla, z njegovim obračanjem pa frekvenco.
Popolna koda in video za ta merilnik frekvence z uporabo Arduina sta podana spodaj.