Visualizer Audio Strip LED RGB Non-Addressable: 6 Langkah (dengan Gambar)
Visualizer Audio Strip LED RGB Non-Addressable: 6 Langkah (dengan Gambar)
Anonim
Image
Image

Saya memiliki strip LED 12v RGB di sekitar kabinet TV saya untuk sementara waktu dan itu dikendalikan oleh driver LED membosankan yang memungkinkan saya memilih satu dari 16 warna yang telah diprogram sebelumnya!

Saya mendengarkan banyak musik yang membuat saya termotivasi tetapi pencahayaannya tidak membuat suasana hati menjadi benar. Untuk memperbaikinya memutuskan untuk mengambil sinyal audio yang diberikan ke speaker saya melalui AUX (jack 3,5 mm), memprosesnya dan mengontrol strip RGB yang sesuai.

LED bereaksi terhadap musik berdasarkan besarnya frekuensi Bass (Rendah), Treble (Sedang) dan Tinggi.

Rentang Frekuensi – Warna adalah sebagai berikut:

Rendah – Merah

Pertengahan – Hijau

Tinggi – Biru

Proyek ini melibatkan banyak hal DIY karena seluruh sirkuit dibangun dari awal. Ini seharusnya cukup mudah jika Anda memasangnya di papan tempat memotong roti, tetapi cukup sulit untuk menyoldernya ke PCB.

Perlengkapan

(x1) Strip LED RGB

(x1) Arduino Uno/Nano (Mega direkomendasikan)

(x1) TL072 atau TL082 (TL081/TL071 juga baik-baik saja)

(x3) TIP120 NPN Transistor (TIP121, TIP122 atau N-Channel MOSFET seperti IRF540, IRF 530 juga baik)

(x1) 10kOhm potensiometer linier

(x3) resistor 100kOhm 1/4watt

(x1) kapasitor elektrolit 10uF

(x1) kapasitor keramik 47nF

(x2) Konektor audio 3,5 mm – Wanita

(x2) baterai 9V

(x2) konektor snap baterai 9V

Langkah 1: Memahami Jenis Strip LED RGB

Memahami Jenis Strip LED RGB
Memahami Jenis Strip LED RGB

Ada dua jenis dasar strip LED, jenis "analog" dan jenis "digital".

Strip tipe analog (gbr 1) memiliki semua LED yang terhubung secara paralel sehingga berfungsi seperti satu LED tiga warna besar; Anda dapat mengatur seluruh strip ke warna apa pun yang Anda inginkan, tetapi Anda tidak dapat mengontrol warna masing-masing LED. Mereka sangat mudah digunakan dan cukup murah.

Strip tipe Digital(gbr 2) bekerja dengan cara yang berbeda. Mereka memiliki chip untuk setiap LED, untuk menggunakan strip Anda harus mengirim data kode digital ke chip. Namun, ini berarti Anda dapat mengontrol setiap LED satu per satu! Karena kompleksitas ekstra dari chip, mereka lebih mahal.

Jika Anda merasa sulit untuk mengidentifikasi secara fisik perbedaan antara strip tipe analog dan digital,

  1. Tipe Anolog menggunakan 4 pin, 1 common positif dan 3 negatif yaitu satu untuk setiap warna RGB.
  2. Tipe digital menggunakan 3 pin, positif, data dan ground.

Saya akan menggunakan strip tipe Analog, karena

  1. Ada sangat sedikit atau tidak ada Instruksi yang mengajarkan cara membuat strip tipe Analog musik reaktif. Mayoritas dari mereka fokus pada tipe Digital dan lebih mudah untuk membuat mereka bereaksi terhadap musik.
  2. Saya memiliki beberapa strip tipe Analog yang tergeletak di sekitar.

Langkah 2: Memperkuat Sinyal Audio

Memperkuat Sinyal Audio
Memperkuat Sinyal Audio
Memperkuat Sinyal Audio
Memperkuat Sinyal Audio
Memperkuat Sinyal Audio
Memperkuat Sinyal Audio

Sinyal audio yang dikirim melalui jack audio adalah

sinyal analog yang berosilasi dalam +200mV dan -200mV. Nah yang menjadi masalah adalah kita ingin mengukur sinyal audio dengan salah satu input analog arduino karena input analog arduino hanya bisa mengukur tegangan antara 0 dan 5V. Jika kami mencoba mengukur tegangan negatif dalam sinyal audio, Arduino hanya akan membaca 0V dan kami akan memotong bagian bawah sinyal.

Untuk mengatasinya kita harus memperkuat dan mengimbangi sinyal audio sehingga berada dalam kisaran 0-5V. Idealnya, sinyal harus memiliki amplitudo 2.5V yang berosilasi sekitar 2.5V sehingga tegangan minimumnya adalah 0V dan tegangan maksimumnya adalah 5V.

Amplifikasi

Penguat adalah langkah pertama dalam rangkaian, meningkatkan amplitudo sinyal dari sekitar + atau - 200mV ke + atau - 2.5V (idealnya). Fungsi lain dari amplifier adalah untuk melindungi sumber audio (hal yang menghasilkan sinyal audio di tempat pertama) dari sisa rangkaian. Sinyal yang diperkuat keluar akan sumber semua arusnya dari amplifier, sehingga beban apapun yang diletakkan di atasnya nanti di sirkuit tidak akan "terasa" oleh sumber audio (telepon/iPod/laptop dalam kasus saya). Lakukan ini dengan mengatur salah satu op-amp dalam paket TL072 atau TL082(gbr 2) dalam konfigurasi penguat non-pembalik.

Lembar data TL072 atau TL082 mengatakan bahwa itu harus ditenagai dengan +15 dan -15V, tetapi karena sinyal tidak akan pernah diperkuat di atas + atau - 2.5V, tidak masalah untuk menjalankan op-amp dengan sesuatu yang lebih rendah. Saya menggunakan dua baterai sembilan volt yang dihubungkan secara seri untuk membuat catu daya + atau - 9V.

Hubungkan +V (pin 8) dan –V (pin 4) Anda ke op-amp. Hubungkan sinyal dari jack mono ke input non-inverting (pin 3) dan sambungkan pin ground dari jack ke referensi 0V pada suplai tegangan Anda (bagi saya ini adalah persimpangan antara dua baterai 9V secara seri). Hubungkan resistor 100kOhm antara output (pin 1) dan input pembalik (pin 2) dari op-amp. Di sirkuit ini, saya menggunakan kabel potensiometer 10kOhm sebagai resistor variabel untuk menyesuaikan gain (jumlah yang diperkuat oleh amplifier) dari amplifier non-pembalik saya. Hubungkan pot lancip linier 10K ini antara input pembalik dan referensi 0V.

Offset DC

Rangkaian offset DC memiliki dua komponen utama: pembagi tegangan dan kapasitor. Pembagi tegangan dibuat dari dua resistor 100k yang dihubungkan secara seri dari suplai 5V Arduino ke ground. Karena resistor memiliki resistansi yang sama, tegangan di persimpangan di antara mereka sama dengan 2.5V. Persimpangan 2.5V ini terikat pada output amplifier melalui kapasitor 10uF. Ketika tegangan pada sisi penguat kapasitor naik dan turun, itu menyebabkan muatan menumpuk untuk sementara dan menolak dari sisi kapasitor yang terpasang pada sambungan 2.5V. Hal ini menyebabkan tegangan pada sambungan 2.5V berosilasi naik turun, berpusat di sekitar 2.5V.

Seperti yang ditunjukkan dalam skema, hubungkan ujung negatif kapasitor 10uF ke output dari amplifier. Hubungkan sisi lain tutup ke persimpangan antara dua resistor 100k yang dihubungkan secara seri antara 5V dan ground. Juga, tambahkan kapasitor 47nF dari 2.5V ke ground.

Langkah 3: Mendekomposisi Sinyal Menjadi Jumlah Sinusoid Stasioner - Teori

Mendekomposisi Sinyal Menjadi Jumlah Sinusoid Stasioner - Teori
Mendekomposisi Sinyal Menjadi Jumlah Sinusoid Stasioner - Teori

Sinyal audio yang dikirim melalui jack 3.5mm ada di

rentang 20 Hz sampai 20 kHz. Ini sampel pada 44,1 kHz dan setiap sampel dikodekan pada 16 bit.

Untuk mendekonstruksi frekuensi elemen dasar yang membentuk sinyal audio, kami menerapkan Transformasi Fourier ke sinyal, yang menguraikan sinyal menjadi sejumlah sinusoida stasioner. Dengan kata lain, analisis Fourier mengubah sinyal dari domain aslinya (seringkali ruang atau waktu) menjadi representasi dalam domain frekuensi dan sebaliknya. Tetapi menghitungnya langsung dari definisi seringkali terlalu lambat untuk menjadi praktis.

Gambar menunjukkan bagaimana sinyal terlihat dalam domain waktu dan frekuensi.

Di sinilah algoritma Fast Fourier Transform (FFT) cukup berguna!

Menurut definisi, FFT dengan cepat menghitung transformasi tersebut dengan memfaktorkan matriks DFT menjadi produk dari faktor-faktor yang jarang (kebanyakan nol). Akibatnya, ia berhasil mengurangi kompleksitas komputasi DFT dari O(N2), yang muncul jika seseorang hanya menerapkan definisi DFT, ke O(N log N), di mana N adalah ukuran data. Perbedaan kecepatan bisa sangat besar, terutama untuk kumpulan data yang panjang di mana N mungkin dalam ribuan atau jutaan. Di hadapan kesalahan pembulatan, banyak algoritma FFT jauh lebih akurat daripada mengevaluasi definisi DFT secara langsung atau tidak langsung.

Secara sederhana, itu hanya berarti bahwa algoritma FFT adalah cara yang lebih cepat untuk menghitung Transformasi Fourier dari sinyal apa pun. Ini umumnya digunakan pada perangkat dengan daya komputasi rendah.