İçindekiler:

Adreslenemez RGB LED Şerit Ses Görüntüleyici: 6 Adım (Resimlerle)
Adreslenemez RGB LED Şerit Ses Görüntüleyici: 6 Adım (Resimlerle)

Video: Adreslenemez RGB LED Şerit Ses Görüntüleyici: 6 Adım (Resimlerle)

Video: Adreslenemez RGB LED Şerit Ses Görüntüleyici: 6 Adım (Resimlerle)
Video: TV'YE ÜÇTE BİRİ FİYATLA AMBİLİGHT TAKTIM, ŞİMDİ PHİLİPS DÜŞÜNSÜN! (Ardunio'suz zahmetsiz kurulum) 2024, Temmuz
Anonim
Image
Image

Bir süredir TV dolabımın etrafında 12v RGB LED şeridim var ve önceden programlanmış 16 renkten birini seçmeme izin veren sıkıcı bir LED sürücüsü tarafından kontrol ediliyor!

Beni motive eden çok fazla müzik dinliyorum ama ışıklandırma ruh halimi doğru ayarlamıyor. Bunu düzeltmek için hoparlörüme verilen ses sinyalini AUX (3,5 mm jak) üzerinden almaya karar verdim, işleyin ve RGB şeridini buna göre kontrol edin.

LED'ler, Bas (Düşük), Tiz (Orta) ve Yüksek frekansların büyüklüğüne göre müziğe tepki verir.

Frekans aralığı – Renk aşağıdaki gibidir:

Düşük – Kırmızı

Orta – Yeşil

Yüksek – Mavi

Bu proje bir çok DIY işi içeriyor çünkü tüm devre sıfırdan inşa edildi. Bir breadboard üzerine kuruyorsanız, bu oldukça kolay olmalı, ancak bir PCB'ye lehimlemek oldukça zor.

Gereçler

(x1) RGB LED Şerit

(x1) Arduino Uno/Nano (Mega önerilir)

(x1) TL072 veya TL082 (TL081/TL071 de uygundur)

(x3) TIP120 NPN Transistör (TIP121, TIP122 veya IRF540, IRF 530 gibi N-Kanal MOSFET'leri de iyidir)

(x1) 10kOhm potansiyometre lineer

(x3) 100kOhm 1/4watt dirençler

(x1) 10uF elektrolitik kapasitör

(x1) 47nF seramik kondansatör

(x2) 3,5 mm ses konektörü – Dişi

(x2) 9V pil

(x2) 9V pil geçmeli konnektör

Adım 1: RGB LED Şerit Türlerini Anlama

RGB LED Şerit Türlerini Anlama
RGB LED Şerit Türlerini Anlama

"Analog" tür ve "dijital" tür olmak üzere iki temel LED şeridi türü vardır.

Analog tip(şekil 1) şeritler paralel bağlı tüm LED'lere sahiptir ve bu nedenle büyük bir üç renkli LED gibi davranır; şeridin tamamını istediğiniz renge ayarlayabilirsiniz, ancak tek tek LED'lerin renklerini kontrol edemezsiniz. Kullanımı çok kolaydır ve oldukça ucuzdur.

Dijital tip(şekil 2) şeritler farklı bir şekilde çalışır. Her LED için bir çipleri var, şeridi kullanmak için çiplere dijital olarak kodlanmış veri göndermeniz gerekiyor. Ancak bu, her bir LED'i ayrı ayrı kontrol edebileceğiniz anlamına gelir! Çipin ekstra karmaşıklığı nedeniyle, daha pahalıdırlar.

Analog ve dijital tip şeritler arasındaki farkları fiziksel olarak tespit etmekte zorlanıyorsanız,

  1. Analog tip 4 pin, 1 ortak pozitif ve 3 negatif, yani her RGB rengi için bir tane kullanır.
  2. Dijital tip, pozitif, veri ve toprak olmak üzere 3 pin kullanır.

Analog tip şeritler kullanacağım, çünkü

  1. Bir müzikle reaktif Analog tipi şeridin nasıl oluşturulacağını öğreten çok az veya hiç Eğitilebilirlik yoktur. Çoğunluğu Dijital tipe odaklanır ve müziğe tepki vermelerini sağlamak daha kolaydır.
  2. Etrafta bazı Analog tipi şeritler vardı.

2. Adım: Ses Sinyalini Yükseltme

Ses Sinyalini Yükseltme
Ses Sinyalini Yükseltme
Ses Sinyalini Güçlendirme
Ses Sinyalini Güçlendirme
Ses Sinyalini Güçlendirme
Ses Sinyalini Güçlendirme

Ses jakı aracılığıyla gönderilen ses sinyali, +200mV ve -200mV arasında salınan bir analog sinyal. Arduino'nun analog girişleri sadece 0 ile 5V arasındaki voltajları ölçebildiğinden, ses sinyalini Arduino'nun analog girişlerinden biriyle ölçmek istiyoruz. Ses sinyalindeki negatif voltajları ölçmeye çalışırsak, Arduino sadece 0V okur ve sonunda sinyalin altını keserdik.

Bunu çözmek için ses sinyallerini 0-5V aralığında olacak şekilde yükseltmeli ve dengelemeliyiz. İdeal olarak, sinyalin minimum voltajı 0V ve maksimum voltajı 5V olacak şekilde 2.5V civarında salınan 2.5V'luk bir genliğe sahip olması gerekir.

Amplifikasyon

Amplifikatör devredeki ilk adımdır, sinyalin genliğini + veya - 200mV civarından + veya - 2.5V'a (ideal olarak) arttırır. Amplifikatörün diğer işlevi, ses kaynağını (ilk etapta ses sinyalini üreten şey) devrenin geri kalanından korumaktır. Giden güçlendirilmiş sinyal, tüm akımını amplifikatörden kaynaklayacaktır, böylece devrede daha sonra üzerine yüklenen herhangi bir yük, ses kaynağı tarafından "hissedilmez" (benim durumumda telefon/iPod/dizüstü bilgisayar). Bunu, TL072 veya TL082(şekil 2) paketindeki op-amp'lerden birini ters çevirmeyen bir amplifikatör konfigürasyonunda kurarak yapın.

TL072 veya TL082'nin veri sayfası, +15 ve -15V ile güçlendirilmesi gerektiğini söylüyor, ancak sinyal hiçbir zaman + veya - 2.5V'nin üzerinde yükseltilemeyeceğinden, op-amp'i daha düşük bir şeyle çalıştırmak sorun değil. + veya - 9V güç kaynağı oluşturmak için seri bağlanmış iki adet dokuz voltluk pil kullandım.

+V (pim 8) ve –V'nizi (pin 4) op-amp'e bağlayın. Mono jaktan gelen sinyali ters çevirmeyen girişe (pim 3) bağlayın ve jakın topraklama pimini voltaj kaynağınızdaki 0V referansına bağlayın (benim için bu, serideki iki 9V pil arasındaki bağlantıydı). Op-amp'in çıkışı (pim 1) ve evirici girişi (pim 2) arasına 100kOhm'luk bir direnç bağlayın. Bu devrede, ters çevirmeyen amplifikatörümün kazancını (amplifikatörün yükselttiği miktar) ayarlamak için değişken direnç olarak bağlanmış 10kOhm'luk bir potansiyometre kullandım. Bu 10K lineer konik potu, ters çevirme girişi ile 0V referansı arasına bağlayın.

DC Ofset

DC ofset devresinin iki ana bileşeni vardır: bir voltaj bölücü ve bir kapasitör. Voltaj bölücü, Arduino'nun 5V beslemesinden toprağa seri olarak bağlanmış iki adet 100k dirençten yapılmıştır. Dirençler aynı dirence sahip olduğundan, aralarındaki bağlantıdaki voltaj 2,5V'a eşittir. Bu 2.5V bağlantı, bir 10uF kapasitör aracılığıyla amplifikatörün çıkışına bağlanır. Kondansatörün yükseltici tarafındaki voltaj yükselip alçaldıkça, kapasitörün 2.5V bağlantısına bağlı tarafından anlık olarak şarj birikmesine ve itilmesine neden olur. Bu, 2.5V bağlantısındaki voltajın 2.5V civarında ortalanmış olarak yukarı ve aşağı salınmasına neden olur.

Şematikte gösterildiği gibi, 10 uF kapasitörün negatif ucunu amplifikatörün çıkışına bağlayın. Kapağın diğer tarafını 5V ile toprak arasında seri bağlanmış iki adet 100k direnç arasındaki bağlantıya bağlayın. Ayrıca, toprağa 2,5V'dan 47nF'lik bir kapasitör ekleyin.

Adım 3: Sinyali Sabit Sinüzoidlerin Toplamına Ayrıştırmak - Teori

Sinyali Sabit Sinüzoidlerin Toplamına Ayrıştırmak - Teori
Sinyali Sabit Sinüzoidlerin Toplamına Ayrıştırmak - Teori

Herhangi bir 3,5 mm jaktan gönderilen ses sinyali, 20 Hz ila 20 kHz aralığı. 44.1 kHz'de örneklenir ve her örnek 16 bit üzerinde kodlanır.

Ses sinyalini oluşturan temel temel frekansların yapısını bozmak için, sinyali sabit sinüzoidlerin toplamına ayrıştıran sinyale Fourier Dönüşümü uygularız. Başka bir deyişle, Fourier analizi, bir sinyali orijinal alanından (genellikle zaman veya uzay) frekans alanında bir temsile dönüştürür ve bunun tersi de geçerlidir. Ancak bunu doğrudan tanımdan hesaplamak genellikle pratik olamayacak kadar yavaştır.

Şekiller, sinyalin zaman ve frekans alanında nasıl göründüğünü gösterir.

Hızlı Fourier Dönüşümü (FFT) algoritmasının oldukça kullanışlı olduğu yer burasıdır!

Tanım olarak, Bir FFT, DFT matrisini seyrek (çoğunlukla sıfır) faktörlerin bir ürününe çarpanlara ayırarak bu tür dönüşümleri hızla hesaplar. Sonuç olarak, DFT'nin tanımı basitçe uygulandığında ortaya çıkan O(N2)'den DFT'nin hesaplanmasının karmaşıklığını, N'nin veri boyutu olduğu O(N log N'ye) düşürmeyi başarır. Hızdaki fark, özellikle N'nin binlerce veya milyonlarca olabileceği uzun veri kümeleri için çok büyük olabilir. Yuvarlama hatası varlığında, birçok FFT algoritması, DFT tanımını doğrudan veya dolaylı olarak değerlendirmekten çok daha doğrudur.

Basit bir ifadeyle, FFT algoritmasının herhangi bir sinyalin Fourier Dönüşümünü hesaplamanın daha hızlı bir yolu olduğu anlamına gelir. Bu genellikle düşük bilgi işlem gücüne sahip cihazlarda kullanılır.

Önerilen: