İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Bu yüzden her yıl bunu yapacağımı söylüyorum ve çok fazla ertelediğim için asla yapamıyorum. 2020 bir değişim yılı, bu yüzden bunu yapmanın yılı olduğunu söylüyorum. Umarım beğenirsiniz ve kendi müzikal Noel ışıklarınızı yaparsınız. Bu basit bir rehber olacak ama gelecek yıl bu projeyle çok daha fazlasını yapmayı planlıyorum.
Tam proje videosu:
Gereçler
Bluetooth Alıcı
Arduino Nano https://amzn.to/3piiJHb veya
PRO Mini
(programlamak için https://amzn.to/2WGa19q gerekir)
MSGEQ7 IC
MSGEQ7 Modülü
MSGEQ7 Kalkanı
Dirençler
Kondansatörler
Röleler - Mekanik https://amzn.to/3pm2WXF veya
Katı Hal https://amzn.to/2KOVqFU X3
Katı Hal 4 kanal
8x8 LED ekran
Lehimlenebilir Breadboard
Bağlantı Kablosu Kiti
JST Adaptörleri
3.5mm Stereo Jak Soketi
Güç Kaynağı Modülü
9V 1A Güç Kaynağı
Herhangi bir yerel donanımdan AC Fişi, AC prizleri ve elektrik kutusu
Kullanılan araçlar (bu video için satın alınmadı, sadece sahip olduğum genel şeyler):
Lehim Demiri:
Tamir Matı:
Kurşunsuz Lehim Teli:
Manyetik Yardım Elleri:
Multimetre: https://amzn.to/3oQrgB5 (bir sonraki satın almam)
Devre Kartı Tutucu
Bu gönderi, kanalımı desteklemeye yardımcı olan bağlı kuruluş bağlantıları içerir. Bağlantılarımdan birini satın alırsanız, küçük bir komisyon kazanabilirim; sana hiçbir ekstra ücret ödemeden
Adım 1: Bu Nasıl Çalışır - MSGEQ7
Dolayısıyla bu projenin ana bileşeni MSGeq7 olacaktır. Bu yedi bantlı bir grafik ekolayzır IC, ses spektrumunu 63Hz, 160Hz, 400Hz, 1kHz, 2.5kHz, 6.25kHz ve 16kHz olmak üzere yedi banda bölen bir CMOS yongasıdır. Yedi frekans, tepe noktası olarak algılanır ve her bandın genliğinin bir DC temsilini sağlamak için çıkışa çoğullanır. Filtre yanıtlarını seçmek için harici bileşenlere gerek yoktur. Çip üstü saat osilatör frekansını seçmek için yalnızca bir çip dışı direnç ve kapasitör gereklidir. Filtre merkezi frekansları bu frekansı izler.
Veri sayfaları:
Sonuç olarak, kullanımı gerçekten kolay bir IC.
Adım 2: Test Devresi
msgeq7 için veri sayfası, bu proje için devre tasarlamak için takip ettiğim ve kullandığım tipik uygulama devre şemasını sağlar.
Belirli dirençlerin ve kapasitörlerin değerlerini not edin. Bir Bluetooth modülünün msgeq7 tarafından algılanacak ses girişi yapmasına izin vermek için 2 x 3,5 mm stereo ses jakları var. MSG'yi izole etmek ve diğer jakın bir AUX kablosu aracılığıyla bir hoparlöre çıkış vermesine izin vermek için iki adet 22k dirence ve bir kapasitöre ihtiyacınız olacaktır.
Ayrıca, daha sonra bazı Noel ışıklarını kontrol etmek için LED'leri daha sonra rölelerle değiştirdim (temelde bu projenin alanında aynı şey).
LED'ler "düşük" "orta" "Yüksek" sesi temsil eder. Plan, frekans genliklerini algılamak ve daha sonra ışığı açacak bir tetikleme noktası belirlemektir.
Ayrıca, çalınırken ses frekansının güzel bir sesli görselleştirmesini sağlamak için 8x8 led matris ekledim.
Kod herhangi bir Arduino kartıyla çalışabilir ancak test için nano ve finial kartında Pro Mini kullanıyorum.
3. Adım: Kodlayın
Yani kod yine oldukça basit.
Tam kod:
Kodun, 8x8 ekran MAX7219 için LedControl kitaplığına https://www.arduino.cc/reference/en/libraries/ledc… ihtiyacı var. Bunun dışında ekstra bir kütüphaneye ihtiyaç yoktur ve kod tek başınadır.
Döngüde, MSG'den farklı bantları kontrol ediyorum ve 8x8 matrisinde görüntülenecek 0 ile 7 arasındaki değerleri ölçeklendiriyorum. Daha sonra değerleri hemen ardından hızlı bir şekilde işlenmek üzere bir dizide saklarım.
Bu genlik değerleri daha sonra bir set değerini geçip geçmediklerini görmek için kontrol edilir. Eğer yaparlarsa, ışığı yakarım.
bant 0, 1, 2 = DÜŞÜK (63Hz - 400Hz)
bant 3 = MID'ler (400Hz - 2500Hz)
Bant 4, 5, 6 = YÜKSEK (2,5KHz - 16KHz
Bu, bence en iyi aydınlatma efektini veren gözlemlere dayanan kişisel bir seçimdi. Bu, her tür müzik veya ışık gösterisine uyacak şekilde değiştirilebilir ve değiştirilebilir.
Mekanik röleler kullanmaya başladığımdan, şu anda sahip olduğum tek şey bu olduğundan, rölelere zarar verebilecek ve etkileyebilecek aşırı anahtarlama/hızlı salınımlara neden olmamak için tekrarların minimum süre açık kalmasına izin vermek için bir bayrak sistemi ekledim. müzikal aydınlatma.
Süre dolduğunda ve genlik tekrar tetiklenmediğinde led söner ve işlem devam eder.
Millis() kullanıyorum, bunun gecikmelerle bloke edici kodu olmaması için gecikmeler değil. Yani kod gerçekten hızlı ve verimli çalışıyor.
Adım 4: Röle Ekleme
UYARI: Lütfen AC voltajlarla uğraşırken dikkatli olun. Emin değilseniz lütfen bir profesyonelden/Elektrikçiden yardım alın. Not Ben lisanslı bir telgrafçıyım.
Bu proje için mekanik röleler kullanıyorum çünkü sahip olduğum katı hal röleleri sadece DC gerilimler/
İç çekmek.
Halihazırda mekanik röleleriniz yoksa ve bu projeyi yapmayı planlıyorsanız bir SSR seti almanızı öneririm.
Daha hızlı ve daha da önemlisi daha sessizdirler. Not SSR, bir fişe ne kadar ışık koymak istediğinizi not etmek ve akım çekişini ölçmek için mekanik rölelerden daha düşük akım seviyelerine sahiptir.
Adım 5: Her Şeyi Yapan Kurul
Her şeyi istediğim gibi çalıştırdıktan sonra her şeyi lehimlenebilir bir devre tahtasına yerleştirdim.
Daha önce olduğu gibi aynı devre şeması sadece bu sefer ses girişi ve çıkışı için eski bir dizüstü bilgisayar ses jakı kullandım.
Bir Arduino pro mini ve bir breadboard güç kaynağım var, böylece kart 12v dc jakından güç alabilir/
8x8 ekran vida deliklerinden birine takılıdır.
Röle, 4 röleyi kontrol etmek için Gnd, 5v ve 4 GPIO'yu besleyen 6 pinli JST konektörüne sahiptir. Bu proje için, 4 fiş normal kapalıyken bu rölelerden sadece 3'ünü kullanıyorum ve gelecek için donanım sıfırlaması ve karta güç sağlamak için kullanılacak.
Adım 6: Bitti + Gelecek
Tam proje videosu:
Beğenip paylaşıp abone olabilirsiniz.
Gelecek yıl, uzaktan ve zaman kontrolüne izin vermek için wifi ve bir RTC eklemek istiyorum. Ayrıca, arabaların sesi ayarlayabilmesi için bir FM vericisi. En önemlisi, SSR'ler için röleleri kapatırdım. Ayrıca MSGEQ7'yi bir DSP ile değiştirebilir ve daha iyi aydınlatma efektleri için sesin uygun bir analizini yapabilirim.
Umarım herkesin harika bir Noel ve mutlu bir yeni yılı olur.