Innehållsförteckning:

Dancing Fountain: Arduino With MSGEQ7 Spectrum Analyzer: 8 Steps
Dancing Fountain: Arduino With MSGEQ7 Spectrum Analyzer: 8 Steps

Video: Dancing Fountain: Arduino With MSGEQ7 Spectrum Analyzer: 8 Steps

Video: Dancing Fountain: Arduino With MSGEQ7 Spectrum Analyzer: 8 Steps
Video: Indoor Dancing Water Fountain DIY (PCB Electronics Project) 2024, November
Anonim
Dancing Fountain: Arduino With MSGEQ7 Spectrum Analyzer
Dancing Fountain: Arduino With MSGEQ7 Spectrum Analyzer

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:

  1. Lysdioder är anslutna till PWM digitala stift för att reagera på frekvensbanden
  2. Lysdioder är anslutna till digitala stift för att reagera på frekvensbanden
  3. Pumpar är anslutna till Arduino Mega via motordrivrutiner och reagerar på frekvensbanden

Steg 2: Teori

Teori
Teori
Teori
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

Förfaranden
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

Driftsätt: 1- LED som digitala PWM-utgångar
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

Image
Image
Driftsätt: 3- Pumpar som digitala utgångar
Driftsätt: 3- Pumpar 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

Driftsätt: 3- Pumpar som digitala utgångar
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: