Inhaltsverzeichnis:
- Schritt 1: Ziele des Projekts
- Schritt 2: Theorie
- Schritt 3: Verfahren
- Schritt 4: Betriebsarten: 1- LEDs als PWM-Digitalausgänge
- Schritt 5: Betriebsarten: 2- LEDs als digitale Ausgänge
- Schritt 6: Betriebsarten: 3- Pumpen als digitale Ausgänge
- Schritt 7: Kontakte
Video: Tanzender Brunnen: Arduino mit MSGEQ7 Spectrum Analyzer - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:16
Sehr interessant ist der Empfang eines Audiosignals und dessen Umwandlung in eine visuelle oder mechanische Reaktion. In diesem Projekt verwenden wir einen Arduino Mega, der an einen Spektrumanalysator MSGEQ7 angeschlossen wird, der das Eingangsaudiosignal nimmt und eine Bandpassfilterung daran durchführt, um es in 7 Hauptfrequenzbänder aufzuteilen. Der Arduino analysiert dann das analoge Signal jedes Frequenzbandes und erstellt eine Aktion.
Schritt 1: Ziele des Projekts
In diesem Projekt werden 3 Betriebsarten diskutiert:
- LEDs sind mit digitalen PWM-Pins verbunden, um auf die Frequenzbänder zu reagieren
- LEDs sind mit digitalen Pins verbunden, um auf die Frequenzbänder zu reagieren
- Pumpen sind über Motortreiber mit dem Arduino Mega verbunden und reagieren auf die Frequenzbänder
Schritt 2: Theorie
Wenn wir über den MSGEQ7 Spectrum Analyzer IC sprechen, können wir sagen, dass er über interne 7 Bandpassfilter verfügt, die das Eingangsaudiosignal in 7 Hauptbänder aufteilen: 63 Hz, 160 Hz, 400 Hz, 1 kHz, 2,5 kHz, 6,25 kHz und 16 kHz.
Der Ausgang jedes Filters wird unter Verwendung eines Multiplexers als Ausgang des IC gewählt. Dieser Multiplexer hat Selektorleitungen, die von einem internen Binärzähler gesteuert werden. Wir können also sagen, dass der Zähler von 0 bis 6 (000 bis 110 in binärer Form) zählen sollte, damit jeweils ein Band passieren kann. Das macht klar, dass der Code des Arduino in der Lage sein sollte, den Zähler zurückzusetzen, sobald er den Zählerstand 7 erreicht.
Wenn wir einen Blick auf den Schaltplan des MSGEQ7 werfen, sehen wir, dass wir einen RC-Frequenztuner verwenden, um die interne Uhr des Oszillators zu steuern. dann verwenden wir filternde RC-Elemente am Eingangs-Audiosignal-Port.
Schritt 3: Verfahren
Laut der Quellseite (https://www.baldengineer.com/msgeq7-simple-spectrum-analyzer.html) können wir sehen, dass der Quellcode die Ausgaben als sich wiederholende PWM-Signale behandelt. Wir können einige der Codezeilen ändern, um unseren Zielen zu entsprechen.
Wir können feststellen, dass wir, wenn wir eine Stereobuchse haben, den Eingangswiderstand und den Kondensator auf den zweiten Kanal verdoppeln können. Wir versorgen den MSGEQ7 über den Arduino VCC (5 Volt) und GND. Wir werden den MSGEQ7 mit dem Arduino-Board verbinden. Ich bevorzuge es, den Arduino Mega zu verwenden, da er PWM-Pins hat, die für das Projekt geeignet sind. Der Ausgang des MSGEQ7 IC ist mit dem analogen Pin A0 verbunden, der STROBE ist mit Pin 2 des Arduino Mega verbunden und der RESET ist mit Pin 3 verbunden.
Schritt 4: Betriebsarten: 1- LEDs als PWM-Digitalausgänge
Entsprechend dem Quellcode können wir die Ausgangs-LEDs an die Pins 4 bis 10. anschließen
const int LED_pins[7] = {4, 5, 6, 7, 8, 9, 10};
Dann können wir feststellen, dass die LEDs mit der Stärke jedes Frequenzbandes tanzen.
Schritt 5: Betriebsarten: 2- LEDs als digitale Ausgänge
Wir können die Ausgangs-LEDs an beliebige digitale Pins anschließen.
const int LED_pins[7] = {40, 42, 44, 46, 48, 50, 52};
Dann können wir feststellen, dass die LEDs bei der Stärke jedes Frequenzbands blinken.
Schritt 6: Betriebsarten: 3- Pumpen als digitale Ausgänge
In diesem letzten Modus werden wir das L298N-Motortreibermodul mit den Ausgängen des Arduino verbinden. Dies ermöglicht uns, den Betrieb der Pumpe basierend auf dem Ausgang des MSGEQ7-Spektrumanalysators zu steuern.
Die Motortreiber ermöglichen es uns bekanntlich, den Betrieb der angeschlossenen Motoren oder Pumpen basierend auf dem generierten Signal vom Arduino zu steuern, ohne dass der Arduino Strom nimmt, sondern die Motoren direkt von der angeschlossenen Stromquelle mit Strom versorgt.
Wenn wir den Code als Rohquelle ausführen, funktionieren die Pumpen möglicherweise nicht richtig. Dies liegt daran, dass das PWM-Signal niedrig ist und für den Motortreiber nicht geeignet ist, die Motoren oder Pumpen zu betreiben und einen geeigneten Strom zu liefern. Aus diesem Grund empfehle ich, den PWM-Wert zu erhöhen, indem die analogen Messwerte von A0 mit einem Faktor größer als 1,3 multipliziert werden. Dies trägt dazu bei, dass das Mapping für den Motortreiber geeignet ist. Ich empfehle 1.4 bis 1.6. Außerdem können wir die PWM auf 50 bis 255 umstellen, um sicherzustellen, dass der PWM-Wert geeignet ist.
Wir können die LEDs zwar mit den Ausgängen für die Motortreiber verbinden, aber die LEDs blinken nicht mehr so gut wie zuvor, da die PWM-Werte erhöht wurden. Ich schlage daher vor, sie mit den digitalen Pins 40 bis 52 verbunden zu lassen.
Schritt 7: Kontakte
Es freut mich sehr, Rückmeldungen von Ihnen zu hören. Bitte zögern Sie nicht, meinen Kanälen beizutreten auf:
YouTube:
Instagram: @simplydigital010
Twitter: @simply01Digital
Empfohlen:
Heimwerken -- Einen Spinnenroboter herstellen, der mit einem Smartphone mit Arduino Uno gesteuert werden kann – wikiHow
Heimwerken || Wie man einen Spider-Roboter herstellt, der mit einem Smartphone mit Arduino Uno gesteuert werden kann: Während man einen Spider-Roboter baut, kann man so viele Dinge über Robotik lernen. Wie die Herstellung von Robotern ist sowohl unterhaltsam als auch herausfordernd. In diesem Video zeigen wir Ihnen, wie Sie einen Spider-Roboter bauen, den wir mit unserem Smartphone (Androi
Schnittstellentastatur mit Arduino. [Einzigartige Methode]: 7 Schritte (mit Bildern)
Schnittstellentastatur mit Arduino. [Einzigartige Methode]: Hallo, und willkommen zu meinem ersten instructable! :) In diesem instructables möchte ich eine fantastische Bibliothek für die Schnittstelle der Tastatur mit Arduino teilen - 'Password Library' einschließlich 'Keypad Library'. Diese Bibliothek enthält die besten Funktionen, die wir wi
SCARA-Roboter: Lernen über Vorwärts- und inverse Kinematik !!! (Plot Twist Erfahren Sie, wie Sie mit PROCESSING eine Echtzeitschnittstelle in ARDUINO erstellen !!!!): 5 Schritte (mit Bildern)
SCARA-Roboter: Lernen über Vorwärts- und inverse Kinematik !!! (Plot Twist Learn How to Make a Real Time Interface in ARDUINO Using PROCESSING !!!!): Ein SCARA-Roboter ist eine sehr beliebte Maschine in der Industriewelt. Der Name steht sowohl für Selective Compliant Assembly Robot Arm als auch für Selective Compliant Articulated Robot Arm. Es ist im Grunde ein Roboter mit drei Freiheitsgraden, da er die ersten beiden Displ
Einfaches BLE mit sehr geringem Stromverbrauch in Arduino Teil 3 - Nano V2-Ersatz - Rev 3: 7 Schritte (mit Bildern)
Einfaches BLE mit sehr geringem Stromverbrauch in Arduino Teil 3 - Nano V2-Ersatz - Rev 3: Update: 7. April 2019 - Rev 3 von lp_BLE_TempHumidity, fügt Datums- / Zeitdiagramme mit pfodApp V3.0.362+ hinzu und automatische Drosselung beim Senden von DatenUpdate: 24. März 2019 – Rev 2 von lp_BLE_TempHumidity, fügt weitere Plotoptionen hinzu und i2c_ClearBus, fügt GT832E
Brunnen: 5 Schritte
Brunnen: In diesem anweisbaren geht es um die Herstellung eines Wasserfontins mit sehr wenigen Materialien, von denen die meisten im Haus zu finden sind. Sie benötigen: Eine WasserpumpeEine 9-Volt-BatterieEin BatterieanschlussFolieKartonBandKleberSchereEine Art Plastikbehälter mit