Innehållsförteckning:
- Steg 1: Mål för projektet
- Steg 2: Teori
- Steg 3: Förfaranden
- Steg 4: Driftsätt: 1– LED som digitala PWM-utgångar
- Steg 5: Driftsätt: 2- lysdioder som digitala utgångar
- Steg 6: Driftsätt: 3- Pumpar som digitala utgångar
- Steg 7: Kontakter
Video: Dancing Fountain: Arduino With MSGEQ7 Spectrum Analyzer: 8 Steps
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:39
Mottagandet av en ljudsignal och omvandling till visuell eller mekanisk reaktion är mycket intressant. I detta projekt ska vi använda en Arduino Mega för att anslutas till en spektrumanalysator MSGEQ7 som tar in ljudsignalen och utför bandpassfiltrering på den för att dela upp den i 7 huvudfrekvensband. Arduino analyserar sedan den analoga signalen för varje frekvensband och skapar en åtgärd.
Steg 1: Mål för projektet
Detta projekt kommer att diskutera tre driftsätt:
- Lysdioder är anslutna till PWM digitala stift för att reagera på frekvensbanden
- Lysdioder är anslutna till digitala stift för att reagera på frekvensbanden
- Pumpar är anslutna till Arduino Mega via motordrivrutiner och reagerar på frekvensbanden
Steg 2: Teori
Om vi pratar om MSGEQ7 Spectrum Analyzer IC kan vi säga att den har interna 7 -bandspassfilter som delar in den ingående ljudsignalen i 7 huvudband: 63 Hz, 160 Hz, 400 Hz, 1 kHz, 2,5 kHz, 6,25 kHz och 16 kHz.
Utgången från varje filter väljs till utgången från IC med hjälp av en multiplexer. Denna multiplexer har selektorer som styrs av en intern binär räknare. Så vi kan säga att räknaren ska räkna från 0 till 6 (000 till 110 i binär) för att tillåta ett band att passera åt gången. Det gör det klart att koden för Arduino ska kunna återställa räknaren när den når räkningen 7.
Om vi tittar på kretsschemat för MSGEQ7 kan vi se att vi använder RC -frekvensmottagare för att styra oscillatorns interna klocka. då använder vi filtrering av RC -element vid ingången för ljudsignal.
Steg 3: Förfaranden
Enligt källsidan (https://www.baldengineer.com/msgeq7-simple-spectrum-analyzer.html) kan vi se att källkoden behandlar utgångarna som PWM-signaler som är repetitiva. vi kan ändra några av kodlinjerna för att passa våra mål.
Vi kan märka att om vi har ett stereokontakt kan vi fördubbla ingångsmotståndet och kondensatorn till den andra kanalen. Vi driver MSGEQ7 från Arduino VCC (5 volt) och GND. Vi ansluter MSGEQ7 till Arduino -kortet. Jag föredrar att använda Arduino Mega eftersom den har PWM -stift som passar för projektet. Utgången från MSGEQ7 IC är ansluten till analog pin A0, STROBE är ansluten till pin 2 på Arduino Mega och RESET är ansluten till pin 3.
Steg 4: Driftsätt: 1– LED som digitala PWM-utgångar
Enligt källkoden kan vi ansluta utgångs -lysdioderna till stift 4 till 10
const int LED_pins [7] = {4, 5, 6, 7, 8, 9, 10};
Sedan kan vi märka att lysdioderna dansar efter styrkan hos varje frekvensband.
Steg 5: Driftsätt: 2- lysdioder som digitala utgångar
Vi kan ansluta utgångs -lysdioderna till alla digitala stift.
const int LED_pins [7] = {40, 42, 44, 46, 48, 50, 52};
Då kan vi märka att lysdioderna blinkar på styrkan för varje frekvensband.
Steg 6: Driftsätt: 3- Pumpar som digitala utgångar
I det sista läget ska vi ansluta L298N -motordrivrutinsmodulen till Arduino -utgångarna. detta gör det möjligt för oss att styra pumpens funktion baserat på effekten från MSGEQ7 -spektrumanalysatorn.
Som bekant möjliggör motorförarna oss att styra driften av de anslutna motorerna eller pumparna baserat på den genererade signalen från Arduino utan att sänka någon ström från Arduino, istället driver de motorerna direkt från den anslutna strömkällan.
Om vi kör koden som rå källa kanske pumparna inte fungerar som de ska. Det beror på att PWM -signalen är låg och inte är lämplig för motorföraren att köra motorerna eller pumparna och leverera en lämplig ström. Det är därför jag rekommenderar att öka PWM -värdet genom att multiplicera de analoga avläsningarna från A0 med faktor större än 1,3. Detta hjälper kartläggningen att vara lämplig för motorföraren. Jag rekommenderar 1,4 till 1,6. Vi kan också göra om PWM till 50 till 255 för att vara säker på att PWM -värdet är lämpligt.
Vi kan ansluta lysdioderna tillsammans med utgångarna för motordrivrutinerna, men lysdioderna kommer inte att blinka på ett bra synligt sätt som tidigare eftersom PWM -värdena har ökats. Så jag föreslår att hålla dem anslutna till de digitala stiften 40 till 52.
Steg 7: Kontakter
Så kul att höra feedback från dig. Tveka inte att gå med i mina kanaler på:
YouTube:
Instagram: @simplydigital010
Twitter: @helt enkelt01Digital
Rekommenderad:
DIY FFT Audio Spectrum Analyzer: 3 steg
DIY FFT Audio Spectrum Analyzer: FFT -spektrumanalysator är en testutrustning som använder Fourier -analys och digital signalbehandlingsteknik för att tillhandahålla spektrumanalys. Med hjälp av Fourier -analys är det möjligt att ett värde i till exempel den kontinuerliga tidsdomänen konverteras
10 Band Led Spectrum Analyzer: 11 steg
10 Band Led Spectrum Analyzer: God eftermiddag, kära tittare och läsare. Idag vill jag visa dig den kompletta monteringsguiden för 10 -bands LED -spektrumanalysatorn
RGB 10 Band Led Spectrum Analyzer: 16 steg
RGB 10 Band Led Spectrum Analyzer: God eftermiddag, kära tittare och läsare. Idag kommer jag att visa dig en modifiering av en tio-bands spektrumanalysator med RGB-lysdioder
DIY Arduino Audio Signal Spectrum Analyzer: 3 steg
DIY Arduino Audio Signal Spectrum Analyzer: Detta är en mycket enkel ljudanalysator med utbytbara visuella lägen
CRAZY L.O.L SPECTRUM ANALYZER: 6 steg (med bilder)
CRAZY L.O.L SPECTRUM ANALYZER: Idag skulle jag vilja dela hur man gör en ljudspektrumanalysator - 36 band genom att kombinera 4 LoL Shields tillsammans. Detta galna projekt använder ett FFT -bibliotek för att analysera en stereoljudssignal, konvertera den till frekvensband och visa amplituden för dessa frekvenser