- Vaaditut komponentit:
- Piirin selitys:
- Signaaligeneraattori, joka käyttää 555 Timer IC: tä:
- Schmitt-liipaisuportti:
- Arduino-taajuuslaskurikoodin selitys:
Lähes jokaisen sähköisen harrastajan on kohdattava skenaario, jossa hänen on mitattava kellon, laskurin tai ajastimen tuottaman signaalin taajuus. Voimme käyttää oskilloskooppia työn tekemiseen, mutta kaikilla ei ole varaa oskilloskooppiin. Voimme ostaa laitteita taajuuden mittaamiseksi, mutta kaikki nämä laitteet ovat kalliita eivätkä ole kaikille. Tässä mielessä aiomme suunnitella yksinkertaisen mutta tehokkaan taajuuslaskurin käyttämällä Arduino Uno- ja Schmitt-liipaisuporttia.
Tämä Arduino-taajuuslaskuri on kustannustehokas ja helppo tehdä, aiomme käyttää ARDUINO UNO: ta signaalin taajuuden mittaamiseen, UNO on täällä projektin ydin.
Taajuusmittarin testaamiseksi aiomme tehdä nuken signaaligeneraattorin. Tämä nuken signaaligeneraattori tehdään käyttämällä 555-ajastinsirua. Ajastinpiiri tuottaa neliöaallon, joka toimitetaan UNO: lle testausta varten.
Kun kaikki on paikallaan, meillä on Arduino-taajuusmittari ja neliöaaltogeneraattori. Arduinoa voidaan käyttää myös muun tyyppisten aaltomuotojen, kuten siniaallon, sahahampaan, muodostamiseen.
Vaaditut komponentit:
- 555 ajastimen IC ja 74LS14 Schmitt -liipaisuportti tai EI porttia.
- 1K Ω vastus (2 kpl), 100Ω vastus
- 100 nF kondensaattori (2 kpl), 1000 uF kondensaattori
- 16 * 2 LCD,
- 47KΩ potti,
- Leipälauta ja joitain liittimiä.
Piirin selitys:
Arduinoa käyttävän taajuusmittauksen kytkentäkaavio on esitetty alla olevassa kuvassa. Piiri on yksinkertainen, LCD-näyttö on liitetty Arduinon kanssa signaalin mitatun taajuuden näyttämiseksi. 'Wave Input' on menossa signaaligeneraattoripiiriin, josta syötämme signaalia Arduinolle. Schmitt-liipaisuporttia (IC 74LS14) käytetään varmistamaan, että vain suorakulmainen aalto syötetään Arduinoon. Melun suodattamiseksi olemme lisänneet pari kondensaattoria virran yli. Tämä taajuusmittari voi mitata taajuuksia aina 1 MHz asti.
Signaaligeneraattoripiiri ja Schmitt-liipaisin on selitetty alla.
Signaaligeneraattori, joka käyttää 555 Timer IC: tä:
Ensinnäkin puhumme 555 IC-pohjaisesta neliöaaltogeneraattorista tai pitäisikö minun sanoa 555 Astable Multivibrator. Tämä piiri on välttämätön, koska taajuusmittarin ollessa paikallaan meillä on oltava signaali, jonka taajuus on meille tiedossa. Ilman tätä signaalia emme koskaan pysty kertomaan taajuusmittarin toimintaa. Jos meillä on neliö, jonka taajuus on tunnettu, voimme käyttää tätä signaalia Arduino Uno -taajuusmittarin testaamiseen ja voimme säätää sitä tarkkuuden säätämiseksi mahdollisten poikkeamien yhteydessä. Alla oleva kuva signaaligeneraattorista, joka käyttää 555 ajastin-IC: tä:
Tyypillinen piiri 555 Astable-tilassa on annettu alla, josta olemme saaneet edellä mainitun signaaligeneraattoripiirin.
Lähtösignaalin taajuus riippuu RA-, RB-vastuksista ja kondensaattorista C. Yhtälö annetaan seuraavasti:
Taajuus (F) = 1 / (ajanjakso) = 1,44 / ((RA + RB * 2) * C).
Tässä RA ja RB ovat vastusarvoja ja C on kapasitanssiarvo. Laittamalla vastus- ja kapasitanssiarvot yllä olevaan yhtälöön saadaan lähtöaukon taajuus.
Voidaan nähdä, että yllä olevan kaavion RB on korvattu potilla signaaligeneraattoripiirissä; tämä tehdään niin, että voimme saada muuttuvan taajuuden neliöaallon lähtöön parempaa testausta varten. Yksinkertaisuuden vuoksi potti voidaan korvata yksinkertaisella vastuksella.
Schmitt-liipaisuportti:
Tiedämme, että kaikki testisignaalit eivät ole neliö- tai suorakaiteen muotoisia aaltoja. Meillä on kolmiomaisia aaltoja, hampaita, siniaaltoja ja niin edelleen. Kun UNO pystyy havaitsemaan vain neliö- tai suorakaiteen muotoiset aallot, tarvitsemme laitteen, joka voisi muuttaa kaikki signaalit suorakaiteen muotoisiksi aaltoiksi, joten käytämme Schmitt Trigger Gate -sovellusta. Schmitt-liipaisuportti on digitaalinen logiikkaportti, joka on suunniteltu aritmeettisiin ja loogisiin operaatioihin.
Tämä portti tarjoaa ulostulon INPUT-jännitetason perusteella. Schmitt-liipaisimella on THERSHOLD-jännitetaso, kun portille syötetyn INPUT-signaalin jännitetaso on suurempi kuin logiikkaportin THRESHOLD, OUTPUT menee HIGH. Jos INPUT-jännitesignaalin taso on alhaisempi kuin THRESHOLD, portin LÄHTÖ on matala. Emme yleensä saa Schmitt-liipaisinta erikseen, meillä on aina EI-portti Schmitt-liipaisimen jälkeen. Schmitt-liipaisimen toiminta selitetään tässä: Schmitt-liipaisimen portti
Aiomme käyttää 74LS14-sirua, tässä sirussa on 6 Schmitt Trigger -porttia. Nämä kuusi porttia on kytketty sisäisesti alla olevan kuvan mukaisesti.
Totuus Taulukko Käännetty Schmitt Trigger portti on esittävät alla kuvassa, tämän olemme ohjelmoida UNO kääntelemällä positiivisen ja negatiivisen ajanjaksojen navoissaan.
Syötämme nyt minkä tahansa tyyppistä signaalia ST-portille, meillä on suorakaiteen muotoinen käänteisten ajanjaksojen aalto lähdössä, syötämme tämän signaalin UNO: lle.
Arduino-taajuuslaskurikoodin selitys:
Koodi tälle taajuusmittaukselle arduinoa käyttäen on melko yksinkertainen ja helposti ymmärrettävä. Tässä selitämme pulseIn- toiminnon, joka on pääasiassa vastuussa taajuuden mittaamisesta. Unolla on erityinen toimintapulssiIn , jonka avulla voimme määrittää tietyn suorakaiteen muotoisen aallon positiivisen tilan tai negatiivisen tilan keston:
Htime = pulssi (8, HIGH); Ltime = pulssi (8, matala);
Annettu toiminto mittaa ajan, jonka korkea tai matala taso on Unon PIN8-koodilla. Joten yhdessä aaltosyklissä meillä on positiivisten ja negatiivisten tasojen kesto mikrosekunnissa. PulseIn toiminto mittaa ajan mikro sekuntia. Tietyssä signaalissa meillä on korkea aika = 10 mS ja matala aika = 30 ms (taajuudella 25 HZ). Joten 30000 tallennetaan Ltime-kokonaislukuna ja 10000 Htime-muodossa. Kun lisätään ne yhteen, meillä on syklin kesto, ja kääntämällä sen saamme taajuuden.
Täydellinen koodi ja video tälle taajuusmittarille Arduinoa käyttäen on annettu alla.