Indholdsfortegnelse:

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

Modtagelsen af et lydsignal og konvertering til visuel eller mekanisk reaktion er meget interessant. I dette projekt skal vi bruge en Arduino Mega til at blive forbundet til en spektrumanalysator MSGEQ7, der tager input lydsignalet og udfører båndpasfiltrering på det for at opdele det i 7 hovedfrekvensbånd. Arduinoen analyserer derefter det analoge signal fra hvert frekvensbånd og opretter en handling.

Trin 1: Projektets mål

Dette projekt vil diskutere 3 driftsmåder:

  1. Lysdioder er forbundet til PWM digitale ben for at reagere på frekvensbåndene
  2. Lysdioder er forbundet til digitale ben for at reagere på frekvensbåndene
  3. Pumper er forbundet til Arduino Mega via motordrivere og reagerer på frekvensbåndene

Trin 2: Teori

Teori
Teori
Teori
Teori

Hvis vi taler om MSGEQ7 Spectrum Analyzer IC, kan vi sige, at den har interne 7 -bånds passfiltre, der opdeler input -lydsignalet i 7 hovedbånd: 63 Hz, 160 Hz, 400 Hz, 1 kHz, 2,5 kHz, 6,25 kHz og 16 kHz.

Outputtet af hvert filter vælges til at være output fra IC ved hjælp af en multiplexer. Denne multiplexer har selektorer linjer styret af en intern binær tæller. Så vi kan sige, at tælleren skal tælle fra 0 til 6 (000 til 110 i binært) for at tillade et bånd at passere ad gangen. Det gør det klart, at koden for Arduino skal være i stand til at nulstille tælleren, når den når tællet 7.

Hvis vi kigger på kredsløbsdiagrammet for MSGEQ7, kan vi se, at vi bruger RC -frekvens tuner til at styre oscillatorens interne ur. så bruger vi filtrering af RC -elementer ved input -lydsignalporten.

Trin 3: Procedurer

Procedurer
Procedurer

Ifølge kildesiden (https://www.baldengineer.com/msgeq7-simple-spectrum-analyzer.html) kan vi se, at kildekoden omhandler output som PWM-signaler, der er gentagne. vi kan ændre nogle af kodelinjerne, så de passer til vores mål.

Vi kan bemærke, at hvis vi har et stereostik, kan vi fordoble inputmodstanden og kondensatoren til den anden kanal. Vi driver MSGEQ7 fra Arduino VCC (5 volt) og GND. Vi forbinder MSGEQ7 til Arduino -kortet. Jeg foretrækker at bruge Arduino Mega, da den har PWM -pins, der passer til projektet. Udgangen fra MSGEQ7 IC er forbundet til analog pin A0, STROBE er forbundet til pin 2 på Arduino Mega og RESET er forbundet til pin 3.

Trin 4: Betjeningsformer: 1- LED'er som PWM digitale udgange

Driftsformer: 1- LED'er som digitale PWM-udgange
Driftsformer: 1- LED'er som digitale PWM-udgange

Ifølge kildekoden kan vi forbinde output -LED'erne til ben 4 til 10

const int LED_pins [7] = {4, 5, 6, 7, 8, 9, 10};

Så kan vi bemærke, at lysdioderne danser efter styrken af hvert frekvensbånd.

Trin 5: Driftsformer: 2- LED'er som digitale udgange

Image
Image
Driftsformer: 3- pumper som digitale udgange
Driftsformer: 3- pumper som digitale udgange

Vi kan tilslutte output -LED'erne til alle digitale stifter.

const int LED_pins [7] = {40, 42, 44, 46, 48, 50, 52};

Så kan vi bemærke, at lysdioderne blinker ved styrken af hvert frekvensbånd.

Trin 6: Driftsformer: 3- Pumper som digitale udgange

Driftsformer: 3- pumper som digitale udgange
Driftsformer: 3- pumper som digitale udgange

I denne sidste tilstand skal vi forbinde L298N -motordrivermodul til Arduino -udgangene. Dette gør det muligt for os at styre driften af pumpen baseret på output fra MSGEQ7 spektrumanalysatoren.

Som bekendt sætter motordriverne os i stand til at styre driften af de tilsluttede motorer eller pumper baseret på det genererede signal fra Arduino uden at sænke strøm fra Arduino, i stedet driver de motorerne direkte fra den tilsluttede strømkilde.

Hvis vi kører koden som rå kilde, fungerer pumperne muligvis ikke korrekt. Det skyldes, at PWM -signalet er lavt og ikke vil være egnet for motorføreren til at køre motorerne eller pumperne og levere en passende strøm. Derfor anbefaler jeg at øge PWM -værdien ved at multiplicere de analoge aflæsninger fra A0 med faktor større end 1,3. Dette hjælper kortlægningen med at være egnet til motorføreren. Jeg anbefaler 1,4 til 1,6. Vi kan også omlægge PWM til 50 til 255 for at være sikker på, at PWM -værdien vil være passende.

Vi kan forbinde lysdioderne sammen med udgangene til motordriverne, men lysdioderne blinker ikke på en god synlig måde som før, da PWM -værdierne er blevet øget. Så jeg foreslår at holde dem forbundet til de digitale ben 40 til 52.

Trin 7: Kontakter

Så dejligt at høre feedback fra dig. Tøv ikke med at deltage i mine kanaler på:

YouTube:

Instagram: @simplydigital010

Twitter: @simpelthen01Digital

Anbefalede: