İçindekiler:
- Adım 1: Kullanılan Parçalar
- 2. Adım: Kod
- Adım 3: Devrenin Başlatılması
- Adım 4: ULN2803
- Adım 5: Ses Ekleme
- 6. Adım: Sonuç
Video: Müzikli Peri Işıkları: 6 Adım (Resimli)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:21
IanCumming tarafındanYazarın daha fazlasını izleyin:
Hakkında: Roketlerden elektroniğe bir şeyler yapmayı seviyorum. IanCumming Hakkında Daha Fazlası »
Herkese Hoş Geldiniz
Neredeyse bayram mevsimi ve çok sayıda dükkan bayram dekorasyonlarını yapmaya başladı, bazı müzikal peri ışıkları yapmanın tam zamanı olduğunu düşündüm!
Adım 1: Kullanılan Parçalar
Aşağıdakileri kullanacağım:
- 12 LED
- 12 Akım sınırlayıcı Dirençler
- 1 ULN 2803 Darlington Transistör Dizisi
- Bazı Jumper Telleri
- Piezo Hoparlör
- Bir Breadboard ve
- bir Arduino
- Peri ışıkları dizisini yapmak için bir Ethernet kablosundan 5 tel kullandım
2. Adım: Kod
//GLOBAL VARS int barTime = 1200; // 8/8 = 1000ms bayt nrLEDS = 4; // 4 Base LED, Paralel bayt ledler ekleyebilirsiniz = { 3, 4, 5, 6}; bayt konuşmacı = 11; bayt desenUzunluğu = 64; // kalıp Uzunluğu bayt şarkı Uzunluğu = 51; const bayt şarkı = { // Jingle Bells Verileri 29, 2, 29, 2, 29, 4, 29, 2, 29, 2, 29, 4, 29, 2, 32, 2, 25, 3, 27, 1, 29, 8, 30, 2, 30, 2, 30, 3, 30, 1, 30, 2, 29, 2, 29, 2, 29, 1, 29, 1, 29, 2, 27, 2, 27, 2, 29, 2, 27, 4, 32, 4, 29, 2, 29, 2, 29, 4, 29, 2, 29, 2, 29, 4, 29, 2, 32, 2, 25, 3, 27, 1, 29, 8, 30, 2, 30, 2, 30, 2, 30, 2, 30, 2, 29, 2, 29, 2, 29, 1, 29, 1, 32, 2, 32, 2, 30, 2, 27, 2, 25, 8 }; // Yapı Not Numarasıdır, sonra // 8.'nin sabit bayt modelinde NoteLength = { //Pattern Data 0b0001, 0b0010, 0b0100, 0b1000, //Bitler 0b0001, 0b0010, 0b0100, 0b1000, 0b0001, Dizideki Ledlere karşılık gelir 0b0010, 0b0100, 0b1000, 0b0001, 0b0010, 0b0100, 0b1000, 0b1000, 0b1100, 0b0100, 0b0110, 0b0010, 0b0011, 0b0001, 0b1001, 0b1000, 0b1100, 0b0100, 0b0110, 0b0010, 0b0011, 0b000010, 0b0011, 0b000011, 0b0011, 0b000010, 0b0010, 0b0011, 0b0001, 0b0010, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1100, 0b0011, 0b1100, 0b0011, 0b1100b1100, 0b0011, 0b1100b1100b0011, 0b1100b1100b0011, 0b1010, 0b0101, 0b1010 0b0011, 0b1100, 0b0011, 0b1100, 0b0011, };
İlk önce değişkenlerimi ilan ediyorum, ilginç olanlar Song ve Pattern.
- Şarkı melodiyi saklar; bu durumda Jingle bells'dir.
- Model, dizideki değerlerin bitlerinde açık ve kapalı konumları saklar.
Özel İşlevler
//FUNCTIONS int noteToHz(int not) { // Not No'yu Dönüştür. to Frekans kayan nokta frekansı = 440 * (pow(1.059463094359, not-21)); // -21 size C3'te not 1'i verir (Sanırım) return int(freq); // Sonuçlar 1hz kadar doğrudur } void lightLEDs(byte PORT_X) { // Kontrol LED'inin Durumu (int q = 0;q
Sahip olduğum iki işlev aşağıdakileri yapacak:
- Döngüdeki ton işlevi için frekansı hesaplayın
- fonksiyona geçen değere bağlı olarak LED'leri açar veya kapatır
Kurulum İşlevi
void setup() { //kurulum OUTPUT pinleri pinMode(hoparlör, OUTPUT); for(int t = 0; t < nrLEDS; t++){ pinMode(ledler[t], ÇIKIŞ); } }
Setup fonksiyonunda gerekli pinleri OUTPUT olarak ayarladım.
Döngü İşlevi
void loop() { // Music Loop for (int t = 0; t < şarkıLength; t++) { // Notalar, Uzunluk ve melodiyi çal int nota = notToHz(şarkı[t * 2]); int uzunluk = ((şarkı[(t * 2)+1] * barTime) / 8); ton(hoparlör, nota, uzunluk - 50); // Yanıp sönen ışıklar! lightLED'ler(desen[t % desenUzunluğu]); gecikme(uzunluk); } // Sessiz Döngü int rastgeleSilence = rastgele(1000, 5000); for (int t = 0;t
Ana Döngü işlevinde 2 döngüm var. Bir şarkı döngüsü ve bir sessizlik döngüsü
Şarkı döngüsü, şarkı dizisindeki verileri okuyacak, ton işlevini kullanarak notayı çalacaktır.
Şarkı döngüsü olacak,
- Şarkı dizisindeki verileri okuyun,
- Ton işlevini kullanarak notayı çalın, ardından
- LED'leri aydınlatın, desen dizisini okuyun.
Sessizlik döngüsünde
sadece LED'ler yanıyor
Arduino'yu takın ve kodu yükleyin. (Sonra fişini çekin)
Adım 3: Devrenin Başlatılması
Işık dizisiyle başlayacağım
- Bir Ethernet kablosundan tel kullandım ve 3 LED'i dört kez paralel olarak lehimledim, LED'leri yaklaşık 2 metreden eşit aralıklarla yerleştirdiğimden emin oldum.
- Her bir ledin Anotunu tek bir kabloya lehimledim.
- Daha sonra her bir LED'in Katotu 4 ayrı kabloya. Tabii ki bir dirençle
- 12 LED'li bir dizi elde etmek için bu işlemi 3 kez tekrarladım ve 5 telin ucuna başlık pinleri koydum
Pozitif ve toprak raylarını breadboard'a bağlayın
Adım 4: ULN2803
ULN2308 Chip'i devre tahtasına yerleştirin
ULN2308, bir transistör dizisi yongasıdır; veri sayfasından görebiliyorum
- Bu pin 1, pin 18'i "AÇIK" duruma getiren bir giriştir.
- Pin 2, 17'yi açar. Vesaire.
- Pim 9 topraklanmış
- Çipin Pin 9'unu toprak rayına bağlayın
- Pozitif rayı pim 18'in üzerinde bir şerit olacak şekilde bir terminal şeridine bağlayın. (Nedenini bir dakika içinde göreceksiniz)
- Çipin 1 numaralı pinini Arduino'nun 3 numaralı pinine bağlayın
- 2 4'e gider
- çipin 3'ü 5'e gidiyor ve
- 4, Arduino'nun 6 numaralı pinine gider
- LED dizisini breadboard üzerine yerleştirin. Ortak anot telinin bağlandığı şerit 5 volta bağlanır. Peri ışığı pimlerinin geri kalanı çipin 18, 17, 16 ve 15 numaralı pimlerine gitmelidir.
Adım 5: Ses Ekleme
- Piezo Hoparlörü 2 terminal şeridi arasına bağlayın
- Piezo elemanının negatif kutbunu toprağa bağlayın ve
- Hoparlörün diğer ucu pin 11'e
6. Adım: Sonuç
Bana bayram mevsimi olduğunu hatırlatmak için rastgele jingle bells çalacak bir dizi ışık var.
Önerilen:
DIY Otomatik Müzikli Noel Işıkları (MSGEQ7 + Arduino): 6 Adım (Resimlerle)
Kendin Yap Otomatik Müzikli Noel Işıkları (MSGEQ7 + Arduino): Yani her yıl bunu yapacağımı söylüyorum ve çok fazla ertelediğim için asla yapmaya doyamı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 bir s olacak
Breathe: Bir Cam Blokta Solan Peri Işıkları: 6 Adım
Breathe: Bir Cam Blokta Solan Peri Işıkları: Bu yıl Noel için karıma renkli bir hediye vermek için bir cam blok, bir PWM kontrol cihazı ve bazı LED peri ışığı şeritleri kullanmaya karar verdim
Etkileşimli Avlu Işıkları, Geçit Işıkları: 3 Adım
Etkileşimli Avlu Işıkları, Geçit Işıkları: Arka bahçem için bir çeşit etkileşimli avlu ışığı yapmak istedim. Fikir, birisi bir yöne yürüdüğünde, yürüdüğünüz yönde bir animasyon başlatacaktı. Dollar General 1.00$ güneş ışığıyla başladım
Raspberry Pi ile Yeni Başlayanlar İçin Kendin Yap Müzikli Noel Işıkları: 12 Adım (Resimlerle)
Raspberry Pi ile Yeni Başlayanlar İçin Kendin Yap Müzikli Noel Işıkları: Bugün, Noel ışıklarınızın müzikle yanıp sönmesini sağlamak için bir ahududu pi kullanma adımlarını inceleyeceğim. Sadece birkaç dolar ekstra malzemeyle, normal Noel ışıklarınızı tüm evi kapsayan bir ışık gösterisine dönüştürme konusunda size yol göstereceğim. Gol o
Kendin Yap Noel Işıkları Müziğe Ayarlandı - Koreograflı Ev Işıkları: 15 Adım (Resimlerle)
Kendin Yap Noel Işıkları Müziğe Ayarlandı - Koreograflı Ev Işıkları: Müzik Ayarlı DIY Noel Işıkları - Koreograflı Ev Işıkları Bu yeni başlayan bir DIY DEĞİLDİR. Elektronik, devre, BASIC programlama ve elektrik güvenliği ile ilgili genel zeka konularında sağlam bir kavrayışa ihtiyacınız olacak. Bu DIY, deneyimli bir kişi içindir, yani