Talaan ng mga Nilalaman:

Non-Addressable RGB LED Strip Audio Visualizer: 6 Hakbang (na may Mga Larawan)
Non-Addressable RGB LED Strip Audio Visualizer: 6 Hakbang (na may Mga Larawan)

Video: Non-Addressable RGB LED Strip Audio Visualizer: 6 Hakbang (na may Mga Larawan)

Video: Non-Addressable RGB LED Strip Audio Visualizer: 6 Hakbang (na may Mga Larawan)
Video: I’m Never Buying LEDs Again! EASY DIY WLED! 2024, Nobyembre
Anonim
Image
Image

Nagkaroon ako ng 12v RGB LED strip sa paligid ng aking TV cabinet nang ilang sandali at kinokontrol ito ng isang nakakainis na driver ng LED na hinahayaan akong pumili ng isa sa 16 mga pre-program na kulay!

Nakikinig ako ng maraming musika na nagpapanatili sa akin ng pag-uudyok ngunit ang pag-iilaw ay hindi lamang naitakda ang tamang kalagayan. Upang ayusin na nagpasya na kunin ang audio signal na ibinigay sa aking speaker sa pamamagitan ng AUX (3.5 mm jack), iproseso ito at kontrolin ang RGB strip nang naaayon.

Ang mga LED ay tumutugon sa musika batay sa lakas ng Bass (Mababa), Treble (Mid) at Mataas na mga frequency.

Saklaw ng Dalas - Kulay ay ang mga sumusunod:

Mababa - Pula

Kalagitnaan - berde

Mataas - Asul

Ang proyektong ito ay nagsasangkot ng maraming mga bagay sa DIY dahil ang buong circuit ay binuo mula sa simula. Ito ay dapat na napakadali kung ise-set up mo ito sa isang breadboard, ngunit mahirap na solder ito sa isang PCB.

Mga gamit

(x1) RGB LED Strip

(x1) Arduino Uno / Nano (Inirerekumenda ang Mega)

(x1) TL072 o TL082 (TL081 / TL071 ay mabuti rin)

(x3) TIP120 NPN Transistor (TIP121, TIP122 o N-Channel MOSFET tulad ng IRF540, IRF 530 ay mabuti rin)

(x1) 10kOhm potentiometer linear

(x3) 100kOhm 1 / 4watt resistors

(x1) 10uF electrolytic capacitor

(x1) 47nF ceramic capacitor

(x2) 3.5 mm audio konektor - Babae

(x2) 9V na baterya

(x2) 9V baterya snap konektor

Hakbang 1: Pag-unawa sa Mga Uri ng RGB LED Strips

Pag-unawa sa Mga Uri ng RGB LED Strips
Pag-unawa sa Mga Uri ng RGB LED Strips

Mayroong dalawang pangunahing mga uri ng mga LED strip, ang "analog" na uri at "digital" na uri.

Ang mga analog-type (fig 1) strips ay mayroong lahat ng mga LED na konektado nang kahanay at sa gayon ito ay gumaganap tulad ng isang malaking tri-color LED; maaari mong itakda ang buong strip sa anumang kulay na gusto mo, ngunit hindi mo makontrol ang mga kulay ng indibidwal na LED. Napakadali nilang gamitin at medyo mura.

Ang mga Digital-type (fig 2) strips ay gumagana sa ibang paraan. Mayroon silang isang maliit na tilad para sa bawat LED, upang magamit ang strip na kailangan mong magpadala ng digital na naka-code na data sa mga chips. Gayunpaman, nangangahulugan ito na maaari mong kontrolin ang bawat LED nang paisa-isa! Dahil sa sobrang pagiging kumplikado ng maliit na tilad, mas mahal ang mga ito.

Kung nahihirapan kang pisikal na makilala ang mga pagkakaiba sa pagitan ng mga analog at digital-type na piraso,

  1. Ang uri ng Anolog ay gumagamit ng 4 na pin, 1 karaniwang positibo at 3 negatibo ibig sabihin isa para sa bawat kulay ng RGB.
  2. Ang uri ng digital ay gumagamit ng 3 mga pin, positibo, data at ground.

Gagamitin ko ang mga Analog-type strips, dahil

  1. Mayroong kakaunti hanggang sa walang Mga Tagubilin na nagtuturo kung paano gumawa ng isang reaktibong musika na Analog-type strip. Karamihan sa kanila ay nakatuon sa uri na Digital at mas madaling gawin itong reaksyon sa musika.
  2. Mayroon akong ilang Analog-type strips na nakahiga.

Hakbang 2: Pagpapalaki ng Audio Signal

Paglaki ng Audio Signal
Paglaki ng Audio Signal
Paglaki ng Audio Signal
Paglaki ng Audio Signal
Paglaki ng Audio Signal
Paglaki ng Audio Signal

Ang audio signal na ipinadala sa pamamagitan ng audio jack ay

isang analog signal kung saan oscillates sa loob ng + 200mV at -200mV. Ngayon ito ay isang problema nais naming masukat ang audio signal sa isa sa mga analog input ng Arduino dahil ang mga input ng Arduino ay maaari lamang masukat ang mga voltages sa pagitan ng 0 at 5V. Kung sinubukan naming sukatin ang mga negatibong boltahe sa audio signal mula sa, ang Arduino ay magbabasa lamang ng 0V at tatapusin namin ang paggupit sa ilalim ng signal.

Upang malutas ito kailangan nating palakasin at i-offset ang mga audio signal upang mahulog sila sa loob ng isang saklaw na 0-5V. Sa isip, ang signal ay dapat magkaroon ng isang amplitude ng 2.5V na oscillates sa paligid ng 2.5V upang ang min boltahe nito ay 0V at ang max boltahe nito ay 5V.

Paglaki

Ang amplifier ay ang unang hakbang sa circuit, pinapataas nito ang amplitude ng signal mula sa paligid ng + o - 200mV hanggang + o - 2.5V (perpekto). Ang iba pang pagpapaandar ng amplifier ay upang protektahan ang pinagmulan ng audio (ang bagay na bumubuo ng audio signal sa unang lugar) mula sa natitirang circuit. Ang papalabas na pinalakas na signal ay magmumula sa lahat ng kasalukuyan nito mula sa amplifier, kaya't ang anumang pagkarga na inilalagay sa paglaon sa circuit ay hindi "mararamdaman" ng pinagmulang audio (ang telepono / iPod / laptop sa aking kaso). Gawin ito sa pamamagitan ng pagse-set up ng isa sa mga op-amp sa TL072 o TL082 (fig 2) na pakete sa isang hindi na inverting na amplifier config.

Ang datasheet ng TL072 o TL082 ay nagsasabi na dapat itong pinalakas ng +15 at -15V, ngunit dahil ang signal ay hindi kailanman mapalakas sa itaas + o - 2.5V mainam na patakbuhin ang op-amp na may mas mababang bagay. Gumamit ako ng dalawang siyam na volt na baterya na naka-wire sa serye upang lumikha ng isang suplay ng kuryente na + o - 9V.

I-wire ang iyong + V (pin 8) at –V (pin 4) sa op-amp. I-wire ang signal mula sa mono jack sa non-inverting input (pin 3) at ikonekta ang ground pin ng jack sa 0V na sanggunian sa iyong supply ng boltahe (para sa akin ito ang kantong sa pagitan ng dalawang mga baterya ng 9V sa serye). Wire isang 100kOhm risistor sa pagitan ng output (pin 1) at inverting input (pin 2) ng op-amp. Sa circuit na ito, gumamit ako ng isang 10kOhm potentiometer na naka-wire bilang isang variable risistor upang ayusin ang nakuha (ang halagang pinalalakas ng amplifier) ng aking non-inverting amplifier. Wire ang 10K linear taper pot na ito sa pagitan ng inverting input at ang 0V na sanggunian.

DC Offset

Ang DC offset circuit ay may dalawang pangunahing mga sangkap: isang boltahe divider at isang kapasitor. Ang divider ng boltahe ay ginawa mula sa dalawang 100k resistors na naka-wire sa serye mula sa 5V supply ng Arduino hanggang sa lupa. Dahil ang resistors ay may parehong paglaban, ang boltahe sa kantong sa pagitan ng mga ito ay katumbas ng 2.5V. Ang 2.5V junction na ito ay nakatali sa output ng amplifier sa pamamagitan ng isang 10uF capacitor. Habang ang boltahe sa bahagi ng amplifier ng capacitor ay tumataas at bumabagsak, nagiging sanhi ito ng pag-charge na saglit na makaipon at maitaboy mula sa gilid ng capacitor na nakakabit sa 2.5V junction. Ito ay sanhi ng boltahe sa 2.5V junction na oscillate pataas at pababa, nakasentro sa paligid ng 2.5V.

Tulad ng ipinakita sa eskematiko, ikonekta ang negatibong tingga ng isang 10uF capacitor sa output mula sa amplifier. Ikonekta ang iba pang bahagi ng takip sa kantong sa pagitan ng dalawang 100k resistors na naka-wire sa serye sa pagitan ng 5V at lupa. Gayundin, magdagdag ng 47nF capacitor mula 2.5V hanggang sa lupa.

Hakbang 3: Pagbubulok ng Signal Sa Isang Kabuuan ng Hindi Nakatutuwang Sinusoids - Teorya

Pag-decompose ng Signal Sa Isang Kabuuan ng Hindi Nakatutuwang Sinusoids - Teorya
Pag-decompose ng Signal Sa Isang Kabuuan ng Hindi Nakatutuwang Sinusoids - Teorya

Ang audio signal na ipinadala sa pamamagitan ng anumang 3.5mm jack ay nasa

saklaw ng 20 Hz hanggang 20 kHz. Naka-sample ito sa 44.1 kHz at ang bawat sample ay naka-encode sa 16 na piraso.

Upang mai-deconstruct ang pangunahing mga elemental na frequency na bumubuo sa audio signal, inilalapat namin ang Fourier Transform sa signal, na nabubulok ang signal sa isang kabuuan ng mga nakatigil na sinusoid. Sa madaling salita, ang pag-aaral ng Fourier ay nagpapalit ng isang senyas mula sa orihinal na domain (madalas na oras o puwang) sa isang representasyon sa dalas ng domain at kabaligtaran. Ngunit ang pag-compute nito nang direkta mula sa kahulugan ay madalas na masyadong mabagal upang maging praktikal.

Ipinapakita ng mga numero kung paano ang hitsura ng signal sa oras at dalas ng domain.

Dito medyo kapaki-pakinabang ang algorithm ng Fast Fourier Transform (FFT)!

Sa Kahulugan, Mabilis na kinalkula ng isang FFT ang mga naturang pagbabago sa pamamagitan ng pag-factor ng DFT matrix sa isang produkto ng kalat-kalat (karamihan ay zero) na mga kadahilanan. Bilang isang resulta, namamahala ito upang mabawasan ang pagiging kumplikado ng pagkalkula ng DFT mula sa O (N2), na lumilitaw kung ilalapat lamang nito ang kahulugan ng DFT, sa O (N log N), kung saan ang N ay ang laki ng data. Ang pagkakaiba-iba ng bilis ay maaaring maging napakalubha, lalo na para sa mahabang hanay ng data kung saan ang N ay maaaring nasa libu-libo o milyon-milyon. Sa pagkakaroon ng error sa pag-ikot, maraming mga FFT algorithm ang mas tumpak kaysa sa suriin ang kahulugan ng DFT nang direkta o hindi direkta.

Sa simpleng mga termino, nangangahulugan lamang ito na ang FFT algorithm ay isang mas mabilis na paraan upang makalkula ang Fourier Transform ng anumang signal. Karaniwan itong ginagamit sa mga aparato na may mababang kapangyarihan sa computing.

Inirerekumendang: