- Wymagane komponenty:
- Objaśnienie obwodu:
- Generator sygnału wykorzystujący układ scalony timera 555:
- Brama wyzwalająca Schmitta:
- Objaśnienie kodu licznika częstotliwości Arduino:
Niemal każdy hobbysta elektroniki musiał zmierzyć się ze scenariuszem, w którym musi zmierzyć częstotliwość sygnału generowanego przez zegar, licznik lub timer. Możemy do tego użyć oscyloskopu, ale nie każdego z nas stać na oscyloskop. Możemy kupić sprzęt do pomiaru częstotliwości, ale wszystkie te urządzenia są drogie i nie są dla każdego. Mając to na uwadze, zamierzamy zaprojektować prosty, ale skuteczny licznik częstotliwości przy użyciu bramki wyzwalającej Arduino Uno i Schmitta.
Ten licznik częstotliwości Arduino jest opłacalny i można go łatwo wykonać, będziemy używać ARDUINO UNO do pomiaru częstotliwości sygnału, UNO jest tutaj sercem projektu.
Aby przetestować miernik częstotliwości, zrobimy fałszywy generator sygnału. Ten fałszywy generator sygnału zostanie wykonany przy użyciu układu timera 555. Obwód timera generuje falę prostokątną, która zostanie dostarczona do UNO w celu przetestowania.
Po zainstalowaniu wszystkiego będziemy mieli miernik częstotliwości Arduino i generator fal prostokątnych. Arduino może być również używane do generowania innych rodzajów przebiegów, takich jak fala sinusoidalna, fala piłokształtna itp.
Wymagane komponenty:
- 555 timer IC i 74LS14 bramka wyzwalająca Schmitta lub bramka NIE.
- Rezystor 1K Ω (2 sztuki), rezystor 100Ω
- Kondensator 100nF (2 sztuki), kondensator 1000µF
- 16 * 2 LCD,
- Potencjometr 47KΩ,
- Płytka prototypowa i niektóre złącza.
Objaśnienie obwodu:
Schemat obwodu pomiaru częstotliwości za pomocą Arduino pokazano na poniższym rysunku. Obwód jest prosty, wyświetlacz LCD jest połączony z Arduino, aby wyświetlić zmierzoną częstotliwość sygnału. 'Wave Input' idzie na obwód Generatora Sygnałów, z którego podajemy sygnał do Arduino. Bramka wyzwalająca Schmitta (IC 74LS14) służy do zapewnienia, że do Arduino podawana jest tylko fala prostokątna. Do filtrowania szumów dodaliśmy kilka kondensatorów na całej mocy. Ten miernik częstotliwości może mierzyć częstotliwości do 1 MHz.
Obwód generatora sygnału i wyzwalacz Schmitta zostały wyjaśnione poniżej.
Generator sygnału wykorzystujący układ scalony timera 555:
Przede wszystkim porozmawiamy o generatorze fali prostokątnej 555 IC, lub powinienem powiedzieć 555 Astable Multivibrator. Ten obwód jest konieczny, ponieważ mając na miejscu miernik częstotliwości musimy mieć sygnał, którego częstotliwość jest nam znana. Bez tego sygnału nigdy nie będziemy w stanie powiedzieć, jak działa miernik częstotliwości. Jeśli mamy kwadrat o znanej częstotliwości, możemy użyć tego sygnału do przetestowania miernika częstotliwości Arduino Uno i możemy go dostosować w celu regulacji dokładności, w przypadku jakichkolwiek odchyleń. Obraz generatora sygnału wykorzystującego układ scalony 555 Timer jest przedstawiony poniżej:
Typowy obwód 555 w trybie Astable jest podany poniżej, z którego wyprowadziliśmy powyższy obwód generatora sygnału.
Częstotliwość sygnału wyjściowego zależy od rezystorów RA, RB i kondensatora C. Równanie jest podane jako, Częstotliwość (F) = 1 / (Okres) = 1,44 / ((RA + RB * 2) * C).
Tutaj RA i RB to wartości rezystancji, a C to wartość pojemności. Umieszczając wartości rezystancji i pojemności w powyższym równaniu, otrzymujemy częstotliwość wyjściowej fali prostokątnej.
Jak widać, RB z powyższego schematu jest zastąpione potencjometrem w obwodzie generatora sygnału; Robi się to, abyśmy mogli uzyskać na wyjściu falę prostokątną o zmiennej częstotliwości dla lepszego testowania. Dla uproszczenia garnek można zastąpić prostym rezystorem.
Brama wyzwalająca Schmitta:
Wiemy, że wszystkie sygnały testowe nie są falami kwadratowymi ani prostokątnymi. Mamy fale trójkątne, fale zębowe, sinusoidalne i tak dalej. Ponieważ UNO jest w stanie wykryć tylko fale kwadratowe lub prostokątne, potrzebujemy urządzenia, które mogłoby zmienić dowolne sygnały na fale prostokątne, dlatego używamy bramki wyzwalającej Schmitta. Bramka wyzwalająca Schmitta to cyfrowa bramka logiczna, przeznaczona do operacji arytmetycznych i logicznych.
Ta bramka zapewnia WYJŚCIE w oparciu o poziom napięcia WEJŚCIOWEGO. Wyzwalacz Schmitta ma poziom napięcia THERSHOLD, kiedy sygnał WEJŚCIOWY przyłożony do bramki ma poziom napięcia wyższy niż PRÓG bramki logicznej, WYJŚCIE przechodzi w stan WYSOKI. Jeśli poziom sygnału napięcia WEJŚCIOWEGO jest niższy niż PRÓG, wyjście bramki będzie NISKIE. Zwykle nie otrzymujemy wyzwalacza Schmitta osobno, zawsze mamy bramkę NOT po wyzwalaczu Schmitta. Działanie wyzwalacza Schmitta wyjaśniono tutaj: Brama wyzwalająca Schmitta
Zamierzamy użyć układu 74LS14, ten układ ma 6 bramek Schmitt Trigger. Te SZEŚĆ bramek jest połączonych wewnętrznie, jak pokazano na poniższym rysunku.
Tablica prawdy bramy Odwrócony przerzutnik Schmitta pokazany jest na rysunku poniżej, z tym, że trzeba programować UNO na odwrócenie dodatnie i ujemne okresów czasowych na jego zaciskach.
Teraz podamy dowolny rodzaj sygnału do bramki ST, na wyjściu będziemy mieli prostokątną falę odwróconych okresów czasu, podamy ten sygnał do UNO.
Objaśnienie kodu licznika częstotliwości Arduino:
Kod tego pomiaru częstotliwości za pomocą arduino jest dość prosty i łatwo zrozumiały. Tutaj wyjaśnimy funkcję PulseIn, która jest głównie odpowiedzialna za pomiar częstotliwości. Uno posiada specjalną funkcję pulseIn , która umożliwia określenie czasu trwania stanu dodatniego lub stanu ujemnego danej fali prostokątnej:
Htime = pulseIn (8, HIGH); Ltime = PulseIn (8, LOW);
Podana funkcja mierzy czas, przez który poziom Wysoki lub Niski jest obecny na PIN8 Uno. Tak więc w jednym cyklu fali czas trwania poziomów dodatnich i ujemnych będzie wyrażony w mikrosekundach. Funkcja PulseIn mierzy czas w mikrosekundach. W danym sygnale mamy czas wysoki = 10mS i czas niski = 30ms (przy częstotliwości 25 Hz). Tak więc 30000 będzie przechowywanych w Ltime integer i 10000 w Htime. Kiedy dodamy je razem, będziemy mieli czas trwania cyklu, a odwracając go otrzymamy częstotliwość.
Pełny kod i wideo dla tego miernika częstotliwości przy użyciu Arduino podano poniżej.