- Požadované komponenty:
- Vysvětlení obvodu:
- Generátor signálu využívající časovač 555 IC:
- Spouštěcí brána Schmitt:
- Vysvětlení kódu čítače frekvence Arduino:
Téměř každý elektronický fanoušek musel čelit scénáři, kdy musí měřit frekvenci signálu generovaného hodinami nebo čítačem nebo časovačem. K práci můžeme použít osciloskop, ale ne každý z nás si může osciloskop dovolit. Můžeme si koupit zařízení pro měření frekvence, ale všechna tato zařízení jsou nákladná a nejsou pro každého. S ohledem na to navrhneme jednoduchý, ale účinný čítač kmitočtů pomocí spouštěcí brány Arduino Uno a Schmitt.
Tento čítač kmitočtu Arduino je nákladově efektivní a lze ho snadno vyrobit, pro měření frekvence signálu použijeme ARDUINO UNO, UNO je zde srdcem projektu.
Abychom otestovali měřič frekvence, vytvoříme fiktivní generátor signálu. Tento fiktivní generátor signálu bude vyroben pomocí čipu časovače 555. Obvod časovače generuje čtvercovou vlnu, která bude poskytnuta UNO k testování.
Se vším, co je na místě, budeme mít měřič frekvence Arduino a generátor čtvercových vln. Arduino lze také použít ke generování dalších druhů vln, jako je sinusová vlna, vlna pilového zubu atd.
Požadované komponenty:
- 555 časovač IC a 74LS14 Schmittova spouštěcí brána nebo NOT brána.
- 1K Ω rezistor (2 kusy), 100Ω rezistor
- 100nF kondenzátor (2 kusy), 1000µF kondenzátor
- 16 * 2 LCD,
- 47KΩ hrnec,
- Nepájivé pole a některé konektory.
Vysvětlení obvodu:
Schéma zapojení měření frekvence pomocí Arduina je zobrazeno na následujícím obrázku. Obvod je jednoduchý, LCD je propojen s Arduino pro zobrazení měřené frekvence signálu. 'Wave Input' jde do Signal Generator Circuit, ze kterého napájíme signál do Arduina. Schmittova spouštěcí brána (IC 74LS14) se používá k zajištění toho, že do Arduina je přiváděna pouze obdélníková vlna. Pro filtrování šumu jsme přidali několik kondenzátorů napříč výkonem. Tento měřič frekvence může měřit frekvence až do 1 MHz.
Obvod generátoru signálu a Schmittova spoušť byly vysvětleny níže.
Generátor signálu využívající časovač 555 IC:
Nejprve si povíme o 555 IC generátoru čtvercových vln, nebo bych měl říci 555 Astable Multivibrator. Tento obvod je nezbytný, protože když je k dispozici měřič frekvence, musíme mít signál, jehož frekvence je nám známa. Bez tohoto signálu nikdy nebudeme schopni říci, že pracuje Frequency Meter. Pokud máme kvadrát se známou frekvencí, můžeme tento signál použít k otestování kmitočtového měřiče Arduino Uno a můžeme jej vyladit pro nastavení přesnosti v případě jakýchkoli odchylek. Obrázek generátoru signálu využívajícího časovač 555 IC je uveden níže:
Níže je uveden typický obvod 555 v Astabilním režimu, od kterého jsme odvodili výše uvedený obvod generátoru signálu.
Frekvence výstupního signálu závisí na RA, RB rezistorech a kondenzátoru C. Rovnice je uvedena jako, Frekvence (F) = 1 / (Časové období) = 1,44 / ((RA + RB * 2) * C).
Zde RA a RB jsou hodnoty odporu a C je hodnota kapacity. Vložením hodnot odporu a kapacity do výše uvedené rovnice získáme frekvenci výstupní obdélníkové vlny.
Je vidět, že RB výše uvedeného diagramu je nahrazen bankou v obvodu generátoru signálu; to se děje proto, abychom na výstupu mohli získat kvadratickou vlnu s proměnnou frekvencí pro lepší testování. Pro jednoduchost lze nádobu nahradit jednoduchým odporem.
Spouštěcí brána Schmitt:
Víme, že všechny testovací signály nejsou čtvercové nebo obdélníkové vlny. Máme trojúhelníkové vlny, vlny zubů, sinusové vlny atd. Vzhledem k tomu, že UNO dokáže detekovat pouze čtvercové nebo obdélníkové vlny, potřebujeme zařízení, které by mohlo změnit jakékoli signály na obdélníkové vlny, proto používáme Schmittovu spouštěcí bránu. Schmittova spouštěcí brána je digitální logická brána určená pro aritmetické a logické operace.
Tato brána poskytuje VÝSTUP na základě úrovně vstupního napětí. Schmittův spouštěč má úroveň napětí THERSHOLD, když má signál INPUT aplikovaný na bránu úroveň napětí vyšší než THRESHOLD logické brány, OUTPUT jde HIGH. Pokud je úroveň vstupního napěťového signálu nižší než THRESHOLD, bude VÝSTUP brány nízký. Obvykle nedostáváme Schmittovu spoušť samostatně, vždy máme bránu NÍ, která následuje po Schmittově spoušti. Schmitt Trigger working je vysvětlen zde: Schmitt Trigger Gate
Budeme používat čip 74LS14, tento čip má v sobě 6 bran Schmitt Trigger. Tyto brány SIX jsou interně připojeny, jak je znázorněno na následujícím obrázku.
Truth Table of Inverted Schmitt Trigger bráně je výstava v následujícím pořadí, s tím musíme naprogramovat UNO pro převrácením kladné a záporné časové úseky na svých terminálech.
Nyní přivedeme jakýkoli typ signálu na bránu ST, na výstupu budeme mít obdélníkovou vlnu obrácených časových období, tento signál přivedeme do UNO.
Vysvětlení kódu čítače frekvence Arduino:
Kód pro toto měření frekvence pomocí arduina je poměrně jednoduchý a snadno srozumitelný. Zde vysvětlujeme funkci pulseIn, která je zodpovědná hlavně za měření frekvence. Uno má speciální funkci pulseIn , která nám umožňuje určit trvání pozitivního stavu nebo trvání negativního stavu konkrétní obdélníkové vlny:
Htime = pulseIn (8, HIGH); Ltime = pulseIn (8, LOW);
Daná funkce měří čas, po který je na PIN8 Uno přítomna vysoká nebo nízká úroveň. Takže v jediném cyklu vlny budeme mít dobu trvání kladné a záporné úrovně v mikrosekundách. Funkce pulseIn měří čas v mikrosekundách. V daném signálu máme nejvyšší čas = 10 mS a nízký čas = 30 ms (s frekvencí 25 HZ). Takže 30000 bude uloženo v Ltime integer a 10 000 v Htime. Když je sečteme dohromady, získáme trvání cyklu a jeho převrácením získáme frekvenci.
Kompletní kód a video pro tento měřič frekvence pomocí Arduina jsou uvedeny níže.