Mündəricat:

Ünvanlandırılmayan RGB LED Strip Audio Vizualizator: 6 Addım (Şəkillərlə birlikdə)
Ünvanlandırılmayan RGB LED Strip Audio Vizualizator: 6 Addım (Şəkillərlə birlikdə)

Video: Ünvanlandırılmayan RGB LED Strip Audio Vizualizator: 6 Addım (Şəkillərlə birlikdə)

Video: Ünvanlandırılmayan RGB LED Strip Audio Vizualizator: 6 Addım (Şəkillərlə birlikdə)
Video: Music Reactive RGB LEDs with Arduino LED 5050 RGB Strip control LED RGB 2024, Noyabr
Anonim
Image
Image

Bir müddət televizor kabinetimin ətrafında 12v RGB LED şeridi var və əvvəlcədən proqramlaşdırılmış 16 rəngdən birini seçməyimə imkan verən darıxdırıcı bir LED sürücüsü tərəfindən idarə olunur!

Məni motivasiya edən bir çox musiqi dinləyirəm, amma işıqlandırma əhvalımı düzəltmir. Bunu düzəltmək üçün dinamikə AUX (3.5 mm jak) vasitəsilə verilən səs siqnalını almağa qərar verərək onu emal edin və buna uyğun olaraq RGB şeridinə nəzarət edin.

LED -lər Bas (Aşağı), Tiz (Orta) və Yüksək tezliklərin böyüklüyünə əsaslanaraq musiqiyə reaksiya verir.

Tezlik aralığı - Rəng aşağıdakı kimidir:

Aşağı - Qırmızı

Orta - Yaşıl

Yüksək - Mavi

Bütün layihə sıfırdan qurulduğundan bu layihə bir çox DIY işini əhatə edir. Bir çörək taxtasına qurursanız, bu olduqca asan olmalıdır, ancaq bir PCB üzərinə lehimləmək olduqca çətindir.

Təchizat

(x1) RGB LED Şeridi

(x1) Arduino Uno/Nano (Mega tövsiyə olunur)

(x1) TL072 və ya 082 TL (TL081/TL071 də yaxşıdır)

(x3) TIP120 NPN Transistoru (IRF540, IRF 530 kimi TIP121, TIP122 və ya N-Kanal MOSFETləri də yaxşıdır)

(x1) 10kOhm potansiyometr xətti

(x3) 100kOhm 1/4watt rezistorlar

(x1) 10 uF elektrolitik kondansatör

(x1) 47nF keramika kondansatörü

(x2) 3,5 mm audio konnektoru - Qadın

(x2) 9V batareya

(x2) 9V batareya bağlayıcı

Addım 1: RGB LED şeritlərinin növlərini anlayın

RGB LED şeritlərinin növlərini anlamaq
RGB LED şeritlərinin növlərini anlamaq

"Analog" növ və "rəqəmsal" tipli iki əsas LED şeridi var.

Analog tipli (şəkil 1) bütün LED-lər paralel olaraq bağlanır və buna görə də üç böyük rəngli LED kimi hərəkət edir; bütün zolağı istədiyiniz rəngə təyin edə bilərsiniz, ancaq fərdi LED rənglərini idarə edə bilməzsiniz. İstifadəsi çox asandır və olduqca ucuzdur.

Rəqəmsal tipli (şəkil 2) zolaqlar fərqli bir şəkildə işləyir. Hər bir LED üçün bir çip var, zolaqdan istifadə etmək üçün rəqəmsal olaraq kodlanmış məlumatları çiplərə göndərməlisiniz. Ancaq bu, hər bir LED -ə fərdi nəzarət edə biləcəyiniz deməkdir! Çipin əlavə mürəkkəbliyi səbəbindən daha bahalıdır.

Analoq və rəqəmsal tipli zolaqlar arasındakı fərqləri fiziki olaraq təyin etməkdə çətinlik çəkirsinizsə,

  1. Anolog tipli RGB-nin hər bir rəngi üçün bir ədəd 4 sancaq, 1 ümumi müsbət və 3 mənfi istifadə edin.
  2. Rəqəmsal tipli 3 sancaq, pozitiv, məlumat və torpaqdan istifadə edir.

Analog tipli zolaqlardan istifadə edəcəyəm, çünki

  1. Musiqiyə reaktiv Analog tipli bir zolaq düzəltməyi öyrədən çox az Təlimatçı var. Əksəriyyəti Rəqəmsal tipə diqqət yetirir və musiqiyə reaksiya vermələrini asanlaşdırır.
  2. Ətrafımda bəzi Analog tipli zolaqlar vardı.

Addım 2: Səs Siqnalının Gücləndirilməsi

Səs Siqnalının Gücləndirilməsi
Səs Siqnalının Gücləndirilməsi
Səs Siqnalının Gücləndirilməsi
Səs Siqnalının Gücləndirilməsi
Səs Siqnalının Gücləndirilməsi
Səs Siqnalının Gücləndirilməsi

Audio jak vasitəsilə göndərilən səs siqnalıdır

+200mV və -200mV arasında salınan analoq siqnal. İndi bir problem budur ki, səs siqnalını Arduinonun analoq girişlərindən biri ilə ölçmək istəyirik, çünki Arduinonun analoq girişləri yalnız 0 ilə 5 V arasındakı gərginliyi ölçə bilir. Səs siqnalındakı mənfi gərginliyi ölçməyə çalışsaydıq, Arduino yalnız 0V oxuyardı və nəticədə siqnalın altını kəsərdik.

Bunu həll etmək üçün səs siqnallarını 0-5V aralığına düşəcək şəkildə gücləndirməliyik. İdeal olaraq, siqnalın minimum gərginliyi 0V və maksimum gərginliyi 5V olması üçün 2.5V ətrafında salınan 2.5V amplitudu olmalıdır.

Gücləndirmə

Gücləndirici dövrənin ilk addımıdır, siqnalın amplitüdünü təxminən + və ya - 200 mV -dən + və ya - 2,5 V -a qədər artırır (ideal halda). Gücləndiricinin digər funksiyası səs mənbəyini (ilk növbədə səs siqnalı yaradan şey) dövrənin qalan hissəsindən qorumaqdır. Çıxan gücləndirilmiş siqnal bütün cərəyanı gücləndiricidən alacaq, buna görə də dövrədə yüklənən hər hansı bir yük səs mənbəyi (mənim vəziyyətimdə telefon/iPod/noutbuk) tərəfindən "hiss edilməyəcək". TL072 və ya TL082 (şəkil 2) paketindəki op-amperlərdən birini ters çevrilməyən gücləndirici konfiqurasiyasında quraraq bunu edin.

TL072 və ya TL082 məlumat cədvəli, +15 və -15V ilə təchiz edilməli olduğunu söyləyir, amma siqnal heç vaxt + və ya -2.5V -dən yuxarı gücləndirilməyəcəyi üçün op -amp -in daha aşağı bir şeylə işləməsi yaxşıdır. + Və ya - 9V enerji təchizatı yaratmaq üçün ardıcıl olaraq bağlanmış iki doqquz voltluq batareyadan istifadə etdim.

+V-ni (pin 8) və –V-ni (pin 4) op-ampə bağlayın. Sinyali mono jakdan ters çevrilməyən girişə (pin 3) bağlayın və cərəyanın topraklama pinini gərginlik mənbəyinizdəki 0V istinadına qoşun (mənim üçün bu iki 9V batareyanın ardıcıl qovşağı idi). Op-ampin çıxışı (pin 1) və ters giriş (pin 2) arasında 100kOhm rezistor bağlayın. Bu dövrədə, çevrilməyən gücləndiricimin qazancını (gücləndiricinin gücləndirdiyi məbləği) tənzimləmək üçün dəyişən bir rezistor kimi telli 10kOhm potensiometrdən istifadə etdim. Bu 10K xətti konik qazanı ters giriş və 0V aralığı arasında bağlayın.

DC Ofset

DC ofset dövrəsinin iki əsas komponenti var: bir gərginlik bölücü və bir kondansatör. Gərginlik bölücü, Arduino -nun 5V -dan yerə qədər ardıcıl olaraq bağlanan iki 100k rezistordan hazırlanmışdır. Rezistorlar eyni müqavimətə malik olduğundan aralarındakı qovşaqdakı gərginlik 2,5V -ə bərabərdir. Bu 2.5V qovşağı 10uF kondansatör vasitəsilə gücləndiricinin çıxışına bağlıdır. Kondansatörün gücləndirici tərəfindəki gərginlik yüksəldikdə və düşəndə, yükün bir anda yığılmasına və 2.5V qovşağına bağlı olan kondansatör tərəfdən itələməsinə səbəb olur. Bu, 2.5V qovşağında gərginliyin yuxarı və aşağı salınmasına səbəb olur, mərkəzdə 2.5V -dir.

Şemada göstərildiyi kimi, 10 uF kondansatörün mənfi qurğusunu gücləndiricinin çıxışına qoşun. Qapağın digər tərəfini 5V ilə torpaq arasında ardıcıl olaraq bağlanan iki 100k rezistor arasındakı qovşağa bağlayın. Ayrıca yerə 2,5 V -dan 47nF kondansatör əlavə edin.

Addım 3: Siqnalın Stasionar Sinusoidlərin Cəminə Ayrılması - Nəzəriyyə

Siqnalın Stasionar Sinusoidlərin Cəminə Ayrılması - Nəzəriyyə
Siqnalın Stasionar Sinusoidlərin Cəminə Ayrılması - Nəzəriyyə

Hər hansı bir 3,5 mm jak vasitəsilə göndərilən səs siqnalı

20 Hz - 20 kHz aralığında. 44.1 kHz -də nümunə götürülür və hər bir nümunə 16 bitlə kodlanır.

Səs siqnalını təşkil edən əsas elementar tezliklərin konstruksiyasını qurmaq üçün siqnalı sabit sinusoidlərin cəminə parçalayan Fourier Transformunu tətbiq edirik. Başqa sözlə, Fourier təhlili orijinal sahəsindən (tez -tez zaman və ya məkandan) gələn siqnalı tezlik sahəsindəki bir təsvirə çevirir və əksinə. Ancaq birbaşa tərifdən hesablamaq praktik olmaq üçün çox gec olur.

Rəqəmlər siqnalın zaman və tezlik sahəsinə necə baxdığını göstərir.

Fast Fourier Transform (FFT) alqoritminin olduqca faydalı olduğu yer budur!

Tərifinə görə, Bir FFT, DFT matrisini seyrək (əksər hallarda sıfır) amillərin məhsulu halına gətirərək bu cür çevrilmələri sürətlə hesablayır. Nəticədə, DFT -nin tərifini O (N log N) -ə tətbiq etməklə ortaya çıxan O (N2) -dən DFT -nin hesablanmasının mürəkkəbliyini azaltmağı bacarır, burada N məlumat ölçüsüdür. Xüsusilə N -in minlərlə və ya milyonlarla ola biləcəyi uzun məlumat dəstləri üçün sürət fərqi çox böyük ola bilər. Yuvarlaqlaşdırma xətası olduqda, bir çox FFT alqoritmi DFT tərifini birbaşa və ya dolayı olaraq qiymətləndirməkdən daha doğrudur.

Sadə dillə desək, bu, FFT alqoritminin hər hansı bir siqnalın Fourier Dönüşümünü hesablamağın daha sürətli bir yolu olduğunu bildirir. Bu ümumiyyətlə aşağı hesablama gücünə malik cihazlarda istifadə olunur.

Tövsiyə: