Tartalomjegyzék:

Táncoló szökőkút: Arduino MSGEQ7 spektrumanalizátorral: 8 lépés
Táncoló szökőkút: Arduino MSGEQ7 spektrumanalizátorral: 8 lépés

Videó: Táncoló szökőkút: Arduino MSGEQ7 spektrumanalizátorral: 8 lépés

Videó: Táncoló szökőkút: Arduino MSGEQ7 spektrumanalizátorral: 8 lépés
Videó: dancing fountain in Filipines 2024, Július
Anonim
Táncoló szökőkút: Arduino MSGEQ7 spektrumanalizátorral
Táncoló szökőkút: Arduino MSGEQ7 spektrumanalizátorral

Nagyon érdekes az audiojel vétele és vizuális vagy mechanikai reakcióvá alakítása. Ebben a projektben egy Arduino Mega -t használunk, hogy csatlakozzunk az MSGEQ7 spektrumelemzőhöz, amely felveszi a bemeneti audiojelet, és sávszűrést hajtunk végre rajta, hogy 7 fő frekvenciasávra oszthassuk. Az Arduino ezután elemzi az egyes frekvenciasávok analóg jeleit, és műveletet hoz létre.

1. lépés: A projekt célkitűzései

Ez a projekt három működési módot tárgyal:

  1. A LED -ek a PWM digitális csapokhoz vannak csatlakoztatva, hogy reagáljanak a frekvenciasávokra
  2. A LED -ek digitális tűkhöz vannak csatlakoztatva, hogy reagáljanak a frekvenciasávokra
  3. A szivattyúk a motorvezérlőkön keresztül csatlakoznak az Arduino Mega -hoz, és reagálnak a frekvenciasávokra

2. lépés: Elmélet

Elmélet
Elmélet
Elmélet
Elmélet

Ha az MSGEQ7 Spectrum Analyzer IC -ről beszélünk, akkor azt mondhatjuk, hogy belső 7 sávos szűrőkkel rendelkezik, amelyek a bemeneti audiojelet 7 fő sávra osztják: 63 Hz, 160 Hz, 400 Hz, 1 kHz, 2,5 kHz, 6,25 kHz és 16 kHz.

Minden szűrő kimenetét az IC kimenetévé választjuk multiplexer használatával. Ennek a multiplexernek van választóvonala, amelyet egy belső bináris számláló vezérel. Tehát azt mondhatjuk, hogy a számlálónak 0 -tól 6 -ig kell számolnia (bináris számban 000 -től 110 -ig), hogy egy sáv haladjon át egyszerre. Ez egyértelművé teszi, hogy az Arduino kódjának képesnek kell lennie a számláló nullázására, amint eléri a 7 -es számot.

Ha megnézzük az MSGEQ7 kapcsolási rajzát, láthatjuk, hogy RC frekvencia -tunert használunk az oszcillátor belső órájának vezérlésére. akkor szűrő RC elemeket használunk a bemeneti audiojel porton.

3. lépés: Eljárások

Eljárások
Eljárások

A forrásoldal (https://www.baldengineer.com/msgeq7-simple-spectrum-analyzer.html) szerint láthatjuk, hogy a forráskód a kimeneteket PWM jelekként kezeli, ami ismétlődő. megváltoztathatjuk néhány kódsorunkat, hogy megfeleljenek céljainknak.

Észrevehetjük, hogy ha van sztereó jack csatlakozónk, akkor megduplázzuk a bemeneti ellenállást és a kondenzátort a második csatornához. Az MSGEQ7 -et az Arduino VCC -ről (5 volt) és a GND -ről tápláljuk. Csatlakoztatjuk az MSGEQ7 -et az Arduino táblához. Inkább az Arduino Mega -t használom, mivel a projekthez megfelelő PWM csapokkal rendelkezik. Az MSGEQ7 IC kimenete az A0 analóg érintkezőhöz, a STROBE az Arduino Mega 2, a RESET pedig a 3 -as csatlakozóhoz van csatlakoztatva.

4. lépés: Üzemmódok: 1- LED-ek PWM digitális kimenetként

Működési módok: 1- LED-ek PWM digitális kimenetként
Működési módok: 1- LED-ek PWM digitális kimenetként

A forráskód szerint a kimeneti LED -eket a 4–10

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

Ekkor észrevehetjük, hogy a LED -ek táncolnak az egyes frekvenciasávok erején.

5. lépés: Üzemmódok: 2- LED-ek digitális kimenetként

Image
Image
Működési módok: 3 szivattyú digitális kimenetként
Működési módok: 3 szivattyú digitális kimenetként

A kimeneti LED -eket bármilyen digitális csaphoz csatlakoztathatjuk.

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

Ekkor észrevehetjük, hogy a LED -ek villognak az egyes frekvenciasávok erősségén.

6. lépés: Üzemmódok: 3- Szivattyúk digitális kimenetként

Működési módok: 3 szivattyú digitális kimenetként
Működési módok: 3 szivattyú digitális kimenetként

Ebben az utolsó módban az L298N motorvezérlő modult csatlakoztatjuk az Arduino kimeneteihez. ez lehetővé teszi számunkra, hogy az MSGEQ7 spektrumanalizátor kimenete alapján vezéreljük a szivattyú működését.

Mint ismeretes, a motorvezérlők lehetővé teszik számunkra, hogy az Arduino által generált jel alapján vezéreljük a csatlakoztatott motorok vagy szivattyúk működését anélkül, hogy az Arduino áramát lemerítenénk, hanem a motorokat közvetlenül a csatlakoztatott áramforrásról táplálják.

Ha a kódot nyers forrásként futtatjuk, előfordulhat, hogy a szivattyúk nem működnek megfelelően. Ennek oka az, hogy a PWM jel gyenge, és nem lesz alkalmas arra, hogy a motorvezérlő futtassa a motorokat vagy szivattyúkat, és megfelelő áramot szállítson. Ezért javaslom a PWM érték növelését úgy, hogy az A0 -ból származó analóg értékeket megszorozzuk 1,3 -nál nagyobb tényezővel. Ez segít abban, hogy a leképezés megfelelő legyen a motorvezető számára. 1.4 -től 1.6 -ig ajánlom. Ezenkívül a PWM -et 50-255 -re alakíthatjuk át annak biztosítása érdekében, hogy a PWM érték megfelelő legyen.

A LED -eket összekapcsolhatjuk a motorvezérlők kimeneteivel, de a LED -ek nem fognak jól látható módon villogni, mint korábban, mivel a PWM értékeket növelték. Ezért azt javaslom, hogy tartsa őket a digitális tűkhöz 40 és 52 között.

7. lépés: Kapcsolatok

Nagyon örülök, hogy visszajelzéseket hallok tőled. Kérjük, ne habozzon csatlakozni a csatornáimhoz:

YouTube:

Instagram: @simpledigital010

Twitter: @simple01Digital

Ajánlott: