- Erforderliche Komponenten:
- Schaltungserklärung:
- Signalgenerator mit 555 Timer IC:
- Schmitt Trigger Gate:
- Arduino Frequenzzähler Code Erläuterung:
Fast jeder elektronische Bastler muss sich einem Szenario gestellt haben, in dem er die Frequenz des von einer Uhr, einem Zähler oder einem Timer erzeugten Signals messen muss. Wir können das Oszilloskop verwenden, aber nicht alle von uns können sich ein Oszilloskop leisten. Wir können Geräte zur Frequenzmessung kaufen, aber all diese Geräte sind teuer und nicht für jedermann geeignet. In diesem Sinne werden wir einen einfachen, aber effizienten Frequenzzähler mit Arduino Uno und Schmitt Trigger Gate entwerfen.
Dieser Arduino-Frequenzzähler ist kostengünstig und kann leicht hergestellt werden. Wir werden ARDUINO UNO zur Messung der Signalfrequenz verwenden. UNO ist hier das Herzstück des Projekts.
Um den Frequenzmesser zu testen, werden wir einen Dummy-Signalgenerator herstellen. Dieser Dummy-Signalgenerator wird unter Verwendung eines 555-Zeitgeberchips hergestellt. Die Zeitgeberschaltung erzeugt eine Rechteckwelle, die UNO zum Testen zur Verfügung gestellt wird.
Wenn alles vorhanden ist, werden wir einen Arduino-Frequenzmesser und einen Rechteckwellengenerator haben. Arduino kann auch verwendet werden, um andere Arten von Wellenformen wie Sinuswelle, Sägezahnwelle usw. zu erzeugen.
Erforderliche Komponenten:
- 555 Timer IC und 74LS14 Schmitt Trigger Gate oder NOT Gate.
- 1K Ω Widerstand (2 Stück), 100Ω Widerstand
- 100nF Kondensator (2 Stück), 1000µF Kondensator
- 16 * 2 LCD,
- 47KΩ Topf,
- Steckbrett und einige Anschlüsse.
Schaltungserklärung:
Das Schaltbild der Frequenzmessung mit Arduino ist in der folgenden Abbildung dargestellt. Die Schaltung ist einfach, ein LCD ist mit Arduino verbunden, um die gemessene Signalfrequenz anzuzeigen. 'Wave Input' geht an die Signalgeneratorschaltung, von der wir das Signal an Arduino weiterleiten. Ein Schmitt-Trigger-Gate (IC 74LS14) wird verwendet, um sicherzustellen, dass nur eine rechteckige Welle Arduino zugeführt wird. Um das Rauschen zu filtern, haben wir einige Kondensatoren über die Stromversorgung hinzugefügt. Dieser Frequenzmesser kann Frequenzen bis zu 1 MHz messen.
Die Signalgeneratorschaltung und der Schmitt-Trigger wurden unten erläutert.
Signalgenerator mit 555 Timer IC:
Zunächst werden wir über einen 555 IC-basierten Rechteckwellengenerator sprechen, oder sollte ich 555 Astable Multivibrator sagen. Diese Schaltung ist notwendig, weil wir mit dem Frequenzmesser ein Signal haben müssen, dessen Frequenz uns bekannt ist. Ohne dieses Signal können wir die Funktionsweise des Frequenzmessers niemals beurteilen. Wenn wir ein Quadrat mit bekannter Frequenz haben, können wir dieses Signal verwenden, um das Arduino Uno-Frequenzmessgerät zu testen, und wir können es für Anpassungen der Genauigkeit optimieren, falls Abweichungen auftreten. Das Bild des Signalgenerators mit dem 555-Timer-IC ist unten dargestellt:
Eine typische Schaltung von 555 im Astable-Modus ist unten angegeben, aus der wir die oben angegebene Signalgeneratorschaltung abgeleitet haben.
Die Ausgangssignalfrequenz hängt von RA, RB-Widerständen und Kondensator C ab. Die Gleichung lautet:
Frequenz (F) = 1 / (Zeitraum) = 1,44 / ((RA + RB * 2) * C).
Hier sind RA und RB Widerstandswerte und C ist der Kapazitätswert. Indem wir die Widerstands- und Kapazitätswerte in die obige Gleichung einfügen, erhalten wir die Frequenz der Ausgangsrechteckwelle.
Man kann sehen, dass RB des obigen Diagramms durch einen Topf in der Signalgeneratorschaltung ersetzt wird; Dies geschieht, damit wir am Ausgang eine Rechteckwelle mit variabler Frequenz zum besseren Testen erhalten können. Der Einfachheit halber kann man den Topf durch einen einfachen Widerstand ersetzen.
Schmitt Trigger Gate:
Wir wissen, dass alle Testsignale keine Rechteck- oder Rechteckwellen sind. Wir haben Dreieckswellen, Zahnwellen, Sinuswellen und so weiter. Da die UNO nur die Rechteck- oder Rechteckwellen erfassen kann, benötigen wir ein Gerät, das alle Signale in Rechteckwellen umwandeln kann. Daher verwenden wir das Schmitt-Trigger-Gate. Das Schmitt-Trigger-Gate ist ein digitales Logikgatter, das für arithmetische und logische Operationen ausgelegt ist.
Dieses Gate liefert OUTPUT basierend auf dem INPUT-Spannungspegel. Ein Schmitt-Trigger hat einen THERSHOLD-Spannungspegel. Wenn das an das Gate angelegte INPUT-Signal einen höheren Spannungspegel als den THRESHOLD des Logikgatters hat, geht OUTPUT auf HIGH. Wenn der Signalpegel der Eingangsspannung niedriger als THRESHOLD ist, ist der Ausgang des Gatters LOW. Wir bekommen den Schmitt-Trigger normalerweise nicht separat, wir haben immer ein NOT-Gatter nach dem Schmitt-Trigger. Die Arbeit mit dem Schmitt-Trigger wird hier erklärt: Schmitt-Trigger-Gate
Wir werden den 74LS14-Chip verwenden, dieser Chip enthält 6 Schmitt-Trigger-Gates. Diese SIX-Gatter sind intern verbunden, wie in der folgenden Abbildung gezeigt.
Die Wahrheitstabelle des invertierten Schmitt-Trigger-Gatters ist in der folgenden Abbildung dargestellt. Dazu müssen wir die UNO für die Invertierung der positiven und negativen Zeiträume an ihren Anschlüssen programmieren.
Jetzt werden wir jede Art von Signal dem ST-Gatter zuführen, wir werden eine rechteckige Welle von invertierten Zeitperioden am Ausgang haben, wir werden dieses Signal UNO zuführen.
Arduino Frequenzzähler Code Erläuterung:
Der Code für diese Frequenzmessung mit Arduino ist recht einfach und leicht verständlich. Hier erklären wir die pulsIn- Funktion, die hauptsächlich für die Frequenzmessung verantwortlich ist. Das Uno hat eine spezielle Funktion pulsIn , mit der wir die Dauer des positiven Zustands oder die Dauer des negativen Zustands einer bestimmten Rechteckwelle bestimmen können:
Htime = pulsIn (8, HIGH); Ltime = pulsIn (8, LOW);
Die angegebene Funktion misst die Zeit, für die an PIN8 von Uno ein hoher oder niedriger Pegel vorhanden ist. In einem einzelnen Wellenzyklus haben wir also die Dauer für die positiven und negativen Pegel in Mikrosekunden. Die pulsIn- Funktion misst die Zeit in Mikrosekunden . In einem gegebenen Signal haben wir eine hohe Zeit = 10 ms und eine niedrige Zeit = 30 ms (mit einer Frequenz von 25 Hz). 30000 werden also in Ltime Integer und 10000 in Htime gespeichert. Wenn wir sie addieren, erhalten wir die Zyklusdauer und durch Invertieren die Frequenz.
Der vollständige Code und das Video für dieses Frequenzmessgerät mit Arduino sind unten angegeben.