INHOUDSOPGAWE:

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

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

Video: Dancing Fountain: Arduino With MSGEQ7 Spectrum Analyzer: 8 Stappe
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

Die ontvangs van 'n klanksein en omskakeling in visuele of meganiese reaksie is baie interessant. In hierdie projek gebruik ons 'n Arduino Mega om aan 'n spektrumanaliseerder MSGEQ7 gekoppel te word wat die ingang -klanksein neem en bandpassfiltering daarop uitvoer om dit in 7 hooffrekwensiebande te verdeel. Die Arduino ontleed dan die analoog sein van elke frekwensieband en skep 'n aksie.

Stap 1: Doelwitte van die projek

Hierdie projek sal drie werkswyses bespreek:

  1. LED's is gekoppel aan PWM digitale penne om op die frekwensiebande te reageer
  2. LED's word aan digitale penne gekoppel om op die frekwensiebande te reageer
  3. Pompe word deur motorbestuurders aan die Arduino Mega gekoppel en reageer op die frekwensiebande

Stap 2: Teorie

Teorie
Teorie
Teorie
Teorie

As ons praat oor die MSGEQ7 Spectrum Analyzer IC, kan ons sê dat dit interne 7 -band deurlaatfilters het wat die ingang -klanksein in 7 hoofbande verdeel: 63 Hz, 160 Hz, 400 Hz, 1 kHz, 2,5 kHz, 6,25 kHz en 16 kHz.

Die uitset van elke filter word gekies om die uitset van die IC te wees deur 'n multiplexer te gebruik. Die multiplexer het selekteerderlyne wat beheer word deur 'n interne binêre teller. Ons kan dus sê dat die teller van 0 tot 6 (000 tot 110 in binêre) moet tel, sodat een band op 'n slag kan slaag. Dit maak dit duidelik dat die kode van die Arduino die toonbank moet kan herstel sodra hy die telling 7 bereik het.

As ons na die kringdiagram van die MSGEQ7 kyk, kan ons sien dat ons 'n RC -frekwensie -ontvanger gebruik om die interne klok van die ossillator te beheer. dan gebruik ons die filter van RC -elemente by die ingang -klankseinpoort.

Stap 3: Prosedures

Prosedures
Prosedures

Volgens die bronbladsy (https://www.baldengineer.com/msgeq7-simple-spectrum-analyzer.html) kan ons sien dat die bronkode handel oor die uitsette as PWM-seine wat herhalend is. ons kan 'n paar kodelyne verander om ons doelwitte te bereik.

Ons kan sien dat as ons 'n stereo -aansluiting het, ons die ingangsweerstand en kapasitor kan verdubbel na die tweede kanaal. Ons dryf die MSGEQ7 van die Arduino VCC (5 volt) en GND. Ons verbind die MSGEQ7 met die Arduino -bord. Ek verkies om die Arduino Mega te gebruik, aangesien dit PWM -penne het wat geskik is vir die projek. Die uitset van die MSGEQ7 IC is gekoppel aan analoog pen A0, die STROBE is gekoppel aan pen 2 van die Arduino Mega en die RESET is gekoppel aan pen 3.

Stap 4: Werkingswyses: 1- LED's as PWM digitale uitsette

Werkingswyses: 1- LED's as digitale PWM-uitsette
Werkingswyses: 1- LED's as digitale PWM-uitsette

Volgens die bronkode kan ons die uitvoer -LED's aan penne 4 tot 10 koppel

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

Dan kan ons sien dat die LED's dans op die sterkte van elke frekwensieband.

Stap 5: Werkingswyses: 2- LED's as digitale uitsette

Image
Image
Werkingswyses: 3 pompe as digitale uitsette
Werkingswyses: 3 pompe as digitale uitsette

Ons kan die uitvoer -LED's aan enige digitale penne koppel.

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

Dan kan ons sien dat die LED's flits op die sterkte van elke frekwensieband.

Stap 6: Werkingswyses: 3- pompe as digitale uitsette

Werkingswyses: 3 pompe as digitale uitsette
Werkingswyses: 3 pompe as digitale uitsette

In hierdie laaste modus koppel ons die L298N -motorbestuurdermodule aan die uitsette van die Arduino. Dit stel ons in staat om die werking van die pomp te beheer op grond van die uitset van die MSGEQ7 spektrumanaliseerder.

Soos bekend stel die motorbestuurders ons in staat om die werking van die gekoppelde motors of pompe te beheer op grond van die gegenereerde sein van die Arduino sonder om enige stroom van die Arduino af te laat sak, in plaas daarvan dryf hulle die motors direk van die gekoppelde kragbron af.

As ons die kode as rou bron gebruik, werk die pompe moontlik nie behoorlik nie. Dit is omdat die PWM -sein laag is en nie geskik is vir die motorbestuurder om die motors of pompe te laat loop en 'n geskikte stroom af te lewer nie. Daarom beveel ek aan om die PWM -waarde te verhoog deur die analoogmetings van A0 te vermenigvuldig met faktor groter as 1.3. Dit help dat die kartering geskik is vir die motorbestuurder. Ek beveel 1.4 tot 1.6 aan. Ons kan ook die PWM na 50 tot 255 verander om seker te wees dat die PWM -waarde geskik is.

Ons kan die LED's verbind met die uitsette vir die motorbestuurders, maar die LED's flits nie op 'n goeie sigbare manier soos voorheen nie, aangesien die PWM -waardes verhoog is. Ek stel dus voor om hulle aan die digitale penne 40 tot 52 gekoppel te hou.

Stap 7: Kontakte

So bly om terugvoer van u te hoor. Moenie huiwer om by my kanale aan te sluit op:

YouTube:

Instagram: @eenvoudigdigital010

Twitter: @eenvoudig01Digital

Aanbeveel: