- Nødvendige komponenter:
- Kretsforklaring:
- Signalgenerator ved bruk av 555 Timer IC:
- Schmitt utløserport:
- Arduino Frequency Counter Code Forklaring:
Nesten hver elektroniske hobbyist må ha møtt et scenario der han eller hun må måle frekvensen av signalet som genereres av en klokke eller en teller eller en tidtaker. Vi kan bruke oscilloskop for å gjøre jobben, men ikke alle av oss har råd til et oscilloskop. Vi kan kjøpe utstyr for å måle frekvensen, men alle disse enhetene er kostbare og er ikke for alle. Med det i tankene skal vi designe en enkel, men effektiv frekvensteller ved hjelp av Arduino Uno og Schmitt trigger gate.
Denne Arduino Frequency Counter er kostnadseffektiv og kan enkelt lages, vi skal bruke ARDUINO UNO til å måle signalfrekvensen, UNO er hjertet i prosjektet her.
For å teste frekvensmåleren skal vi lage en dummy-signalgenerator. Denne dummy-signalgeneratoren blir laget ved hjelp av en 555 timer-brikke. Tidtakerkretsen genererer en firkantbølge som vil bli levert til UNO for testing.
Med alt på plass vil vi ha en Arduino frekvensmåler og en firkantbølgenerator. Arduino kan også brukes til å generere andre slags bølgeformer som sinusbølge, sagbølge etc.
Nødvendige komponenter:
- 555 timer IC og 74LS14 Schmitt trigger gate eller NOT gate.
- 1K Ω motstand (2 deler), 100Ω motstand
- 100nF kondensator (2 stk), 1000µF kondensator
- 16 * 2 LCD,
- 47KΩ pott,
- Brettbrett og noen kontakter.
Kretsforklaring:
Kretsskjemaet for frekvensmåling ved bruk av Arduino er vist i figuren nedenfor. Kretsen er enkel, en LCD er grensesnittet med Arduino for å vise den målte frekvensen av signalet. 'Wave Input' skal til Signal Generator Circuit, hvorfra vi sender signal til Arduino. 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 frekvensmåleren kan måle frekvenser opptil 1 MHz.
Signalgeneratorkretsen og Schmitt-utløseren er forklart nedenfor.
Signalgenerator ved bruk av 555 Timer IC:
Først og fremst vil vi snakke om 555 IC-basert firkantbølgenerator, eller skal jeg si 555 Astable Multivibrator. Denne kretsen er nødvendig fordi vi med frekvensmåleren må ha et signal hvis frekvens er kjent for oss. Uten dette signalet vil vi aldri kunne fortelle hvordan frekvensmåleren fungerer. Hvis vi har et kvadrat med kjent frekvens, kan vi bruke signalet til å teste Arduino Uno Frequency Meter, og vi kan justere det for justeringer for nøyaktighet, i tilfelle avvik. Bildet av Signal Generator ved hjelp av 555 Timer IC er gitt nedenfor:
Typisk krets på 555 i Astable-modus er gitt nedenfor, hvorfra vi har avledet ovennevnte Signal Generator Circuit.
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.
Man kan se at RB i ovenstående diagram er erstattet av en pott i Signal Generator Circuit; dette gjøres slik at vi kan få variabel frekvens kvadratbølge ved utgangen for bedre testing. For enkelhets skyld kan man erstatte potten med en enkel motstand.
Schmitt utløserport:
Vi vet at alle testsignalene ikke er firkantede eller rektangulære bølger. Vi har trekantede bølger, tannbølger, sinusbølger og så videre. Med UNO som bare kan oppdage de firkantede eller rektangulære bølgene, trenger vi en enhet som kan endre signaler til rektangulære bølger, og derfor bruker vi Schmitt Trigger Gate. Schmitt trigger gate er en digital logisk gate, designet for aritmetiske og logiske operasjoner.
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. Vi får 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 74LS14-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.
Nå vil vi mate enhver form for signal til ST-porten, vi vil ha en rektangulær bølge av inverterte tidsperioder ved utgangen, vi vil mate dette signalet til UNO.
Arduino Frequency Counter Code Forklaring:
Kode for denne frekvensmåling ved hjelp av arduino er ganske enkel og lett forståelig. Her forklarer vi pulseIn- funksjonen som hovedsakelig er ansvarlig for å måle frekvensen. 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 gitte funksjonen måler tiden hvor høyt eller lavt nivå er tilstede ved PIN8 i Uno. Så i en enkelt bølgesyklus vil vi ha varigheten for de positive og negative nivåene i mikrosekunder. Den pulseIn funksjon måler tiden i mikrosekunder. I et gitt signal har vi høy tid = 10mS og lav tid = 30ms (med frekvens 25 Hz). Så 30000 vil bli lagret i Ltime heltall og 10000 i Htime. Når vi legger dem sammen, vil vi ha syklusvarigheten, og ved å snu den vil vi ha frekvensen.
Fullstendig kode og video for denne frekvensmåleren ved hjelp av Arduino er gitt nedenfor.