Cuprins:

Vizualizator audio cu bandă LED RGB neadresabil: 6 pași (cu imagini)
Vizualizator audio cu bandă LED RGB neadresabil: 6 pași (cu imagini)

Video: Vizualizator audio cu bandă LED RGB neadresabil: 6 pași (cu imagini)

Video: Vizualizator audio cu bandă LED RGB neadresabil: 6 pași (cu imagini)
Video: Making an LED Strip Music Visualizer 2024, Iulie
Anonim
Image
Image

Am o bandă LED de 12v RGB în jurul televizorului meu pentru o vreme și este controlată de un driver LED plictisitor care îmi permite să aleg una dintre cele 16 culori preprogramate!

Ascult o mulțime de muzică care mă ține motivată, dar iluminarea nu stabilește starea de spirit. Pentru a remedia problema, am decis să iau semnalul audio care mi-a fost transmis difuzorului meu prin AUX (jack de 3,5 mm), să-l procesez și să controlați banda RGB în consecință.

LED-urile reacționează la muzică pe baza magnitudinii frecvențelor Bass (Low), Treble (Mid) și High.

Gama de frecvență - Culoarea este după cum urmează:

Scăzut - roșu

Mijlociu - Verde

Înalt - albastru

Acest proiect implică o mulțime de lucruri DIY, deoarece întregul circuit a fost construit de la zero. Acest lucru ar trebui să fie destul de ușor dacă îl configurați pe o placă de calcul, dar destul de dificil să-l lipiți pe un PCB.

Provizii

(x1) Benzi LED RGB

(x1) Arduino Uno / Nano (se recomandă Mega)

(x1) TL072 sau TL082 (și TL081 / TL071 sunt bine)

(x3) Tranzistorul TIP120 NPN (MOSFET-urile TIP121, TIP122 sau N-Channel precum IRF540, IRF 530 sunt bine)

(x1) 10kOhm potențiometru liniar

(x3) 100kOhm rezistențe 1 / 4watt

(x1) condensator electrolitic 10uF

(x1) condensator ceramic 47nF

(x2) conector audio de 3,5 mm - Femelă

(x2) baterie de 9V

(x2) conector de blocare a bateriei de 9V

Pasul 1: Înțelegerea tipurilor de benzi LED RGB

Înțelegerea tipurilor de benzi LED RGB
Înțelegerea tipurilor de benzi LED RGB

Există două tipuri de bază de benzi LED, tipul „analog” și tipul „digital”.

Benzile de tip analog (fig 1) au toate LED-urile conectate în paralel și astfel acționează ca un LED imens tri-color; puteți seta întreaga bandă la orice culoare doriți, dar nu puteți controla culorile individuale ale LED-urilor. Sunt foarte ușor de utilizat și destul de ieftin.

Benzile de tip digital (fig 2) funcționează într-un mod diferit. Au un cip pentru fiecare LED, pentru a utiliza banda trebuie să trimiteți date codate digital către cipuri. Cu toate acestea, acest lucru înseamnă că puteți controla fiecare LED individual! Datorită complexității suplimentare a cipului, acestea sunt mai scumpe.

Dacă vă este greu să identificați fizic diferențele dintre benzile de tip analog și digital,

  1. De tip Anolog se utilizează 4 pini, 1 pozitiv comun și 3 negative, adică unul pentru fiecare culoare RGB.
  2. De tip digital utilizați 3 pini, pozitiv, date și masă.

Voi folosi benzile de tip analog, pentru că

  1. Există foarte puține sau deloc instrumente care învață cum să faci o bandă reactivă de tip analogic pentru muzică. Majoritatea acestora se concentrează pe tipul digital și este mai ușor să-i faci să reacționeze la muzică.
  2. Aveam niște benzi de tip analog culcat în jur.

Pasul 2: Amplificarea semnalului audio

Amplificarea semnalului audio
Amplificarea semnalului audio
Amplificarea semnalului audio
Amplificarea semnalului audio
Amplificarea semnalului audio
Amplificarea semnalului audio

Semnalul audio care este trimis prin mufa audio este

un semnal analogic care oscilează între + 200mV și -200mV. Acum, aceasta este o problemă: vrem să măsurăm semnalul audio cu una dintre intrările analogice Arduino, deoarece intrările analogice Arduino pot măsura numai tensiuni între 0 și 5V. Dacă am încerca să măsurăm tensiunile negative din semnalul audio de la, Arduino ar citi doar 0V și am ajunge să tăiem partea inferioară a semnalului.

Pentru ao rezolva trebuie să amplificăm și să compensăm semnalele audio astfel încât acestea să se încadreze în intervalul 0-5V. În mod ideal, semnalul ar trebui să aibă o amplitudine de 2,5V care oscilează în jurul valorii de 2,5V, astfel încât tensiunea sa minimă să fie de 0V și tensiunea sa maximă să fie de 5V.

Amplificare

Amplificatorul este primul pas în circuit, crește amplitudinea semnalului de la aproximativ + sau - 200mV la + sau - 2,5V (în mod ideal). Cealaltă funcție a amplificatorului este de a proteja sursa audio (ceea ce generează semnalul audio în primul rând) de restul circuitului. Semnalul amplificat de ieșire își va sursa tot curentul din amplificator, astfel încât orice încărcare pusă ulterior în circuit nu va fi „simțită” de sursa audio (telefonul / iPod / laptopul în cazul meu). Faceți acest lucru configurând unul dintre op-amperele din pachetul TL072 sau TL082 (fig 2) într-o configurație de amplificator fără inversare.

Fișa tehnică a TL072 sau TL082 spune că ar trebui să fie alimentată cu +15 și -15V, dar din moment ce semnalul nu va fi amplificat niciodată peste + sau - 2,5V este bine să rulați op-amp-ul cu ceva mai mic. Am folosit două baterii de nouă volți conectate în serie pentru a crea o sursă de alimentare de + sau - 9V.

Conectați-vă + V (pinul 8) și –V (pinul 4) la amplificatorul op. Conectați semnalul de la mufa mono la intrarea care nu inversează (pinul 3) și conectați pinul de masă al mufei la referința 0V de la sursa de tensiune (pentru mine aceasta a fost joncțiunea dintre cele două baterii de 9V din serie). Conectați un rezistor de 100kOhm între ieșire (pinul 1) și intrarea inversă (pinul 2) al amplificatorului op. În acest circuit, am folosit un potențiometru de 10kOhm conectat ca rezistență variabilă pentru a regla câștigul (cantitatea pe care amplificatorul îl amplifică) al amplificatorului meu fără inversare. Conectați acest vas conic liniar de 10K între intrarea inversă și referința 0V.

DC Offset

Circuitul offset DC are două componente principale: un divizor de tensiune și un condensator. Divizorul de tensiune este realizat din două rezistențe de 100k conectate în serie de la sursa de 5V a Arduino la masă. Deoarece rezistențele au aceeași rezistență, tensiunea la joncțiunea dintre ele este egală cu 2,5V. Această joncțiune de 2,5 V este legată de ieșirea amplificatorului printr-un condensator de 10 uF. Pe măsură ce tensiunea de pe partea amplificatorului condensatorului crește și coboară, aceasta determină acumularea momentului de încărcare și respingerea din partea condensatorului atașată la joncțiunea de 2,5 V. Acest lucru face ca tensiunea la joncțiunea de 2,5 V să oscileze în sus și în jos, centrată în jurul valorii de 2,5 V.

După cum se arată în schemă, conectați cablul negativ al unui condensator de 10 uF la ieșirea din amplificator. Conectați cealaltă parte a capacului la joncțiunea dintre două rezistențe de 100k conectate în serie între 5V și masă. De asemenea, adăugați un condensator de 47nF de la 2,5V la masă.

Pasul 3: Descompunerea semnalului într-o sumă de sinusoizi staționari - Teorie

Descompunerea semnalului într-o sumă de sinusoide staționare - Teorie
Descompunerea semnalului într-o sumă de sinusoide staționare - Teorie

Semnalul audio trimis prin orice jack de 3,5 mm se află în

interval de la 20 Hz la 20 kHz. Este eșantionat la 44,1 kHz și fiecare eșantion este codat pe 16 biți.

Pentru a deconstrui frecvențele elementare de bază care alcătuiesc semnalul audio, aplicăm Transformarea Fourier la semnal, care descompune semnalul într-o sumă de sinusoide staționare. Cu alte cuvinte, analiza Fourier convertește un semnal din domeniul său original (adesea timp sau spațiu) într-o reprezentare în domeniul frecvenței și invers. Dar calculul acestuia direct din definiție este adesea prea lent pentru a fi practic.

Cifrele arată cum arată semnalul în domeniul timpului și al frecvenței.

Aici algoritmul transformării rapide Fourier (FFT) este destul de util!

Prin definitie, Un FFT calculează rapid astfel de transformări factorizând matricea DFT într-un produs de factori rari (majoritatea zero). Ca urmare, reușește să reducă complexitatea calculării DFT de la O (N2), care apare dacă se aplică pur și simplu definiția DFT, la O (N log N), unde N este dimensiunea datelor. Diferența de viteză poate fi enormă, în special pentru seturile de date lungi, unde N poate fi în mii sau milioane. În prezența unei erori rotunde, mulți algoritmi FFT sunt mult mai exacți decât evaluarea definiției DFT direct sau indirect.

În termeni simpli, înseamnă doar că algoritmul FFT este o modalitate mai rapidă de a calcula Transformata Fourier a oricărui semnal. Acest lucru este utilizat în general pe dispozitive cu putere de calcul redusă.

Recomandat: