Isi kandungan:

Lampu Fairy Muzik: 6 Langkah (dengan Gambar)
Lampu Fairy Muzik: 6 Langkah (dengan Gambar)

Video: Lampu Fairy Muzik: 6 Langkah (dengan Gambar)

Video: Lampu Fairy Muzik: 6 Langkah (dengan Gambar)
Video: Bubur manis | Sweet Porridge in Malaysian | Malaysian Fairy Tales 2024, November
Anonim
Image
Image

Oleh IanCummingFollow More oleh pengarang:

Intervalometer Arduino
Intervalometer Arduino
Bukan Hanya Pemasa Jam
Bukan Hanya Pemasa Jam
Bukan Hanya Pemasa Jam
Bukan Hanya Pemasa Jam
Termometer Satu Piksel
Termometer Satu Piksel
Termometer Satu Piksel
Termometer Satu Piksel

Tentang: Saya suka membuat barang dari roket hingga elektronik. Lebih Lanjut Mengenai IanCumming »

Selamat datang semua

Sudah hampir musim perayaan dan banyak kedai mula mengeluarkan hiasan perayaan mereka, saya fikir sudah tiba masanya untuk membina beberapa lampu dongeng muzik!

Langkah 1: Bahagian Yang Digunakan

Bahagian Yang Digunakan
Bahagian Yang Digunakan

Saya akan menggunakan yang berikut:

  • 12 LED
  • 12 Perintang menghadkan semasa
  • 1 Array Transistor Darlington ULN 2803
  • Beberapa Wayar Jumper
  • Pembesar suara piezo
  • Papan Roti dan
  • seorang Arduino
  • Untuk membuat tali lampu dongeng, saya menggunakan 5 wayar dari kabel Ethernet

Langkah 2: Kodnya

// GLOBAL VARS int barTime = 1200; // 8/8 = 1000ms bait nrLEDS = 4; // 4 LED Asas, Anda boleh menambah banyak LED byte selari = {3, 4, 5, 6}; pembesar suara bait = 11; byte patternLength = 64; // corak Panjang lagu byte Panjang = 51; lagu const byte = {// Jingle Bells Data 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}; // Struktur adalah Nota Nota kemudian // Panjang Panjang dalam pola byte const ke-8 = {// Data Corak 0b0001, 0b0010, 0b0100, 0b1000, // Bit serupa dengan Leds di Array 0b0001, 0b0010, 0b0100, 0b1000, 0b0001, 0b0010, 0b0100, 0b1000, 0b0001, 0b0010, 0b0100, 0b1000, 0b1000, 0b1100, 0b0100, 0b0110, 0b0010, 0b0011, 0b0001, 0b1001, 0b1000, 0b1100, 0b0100, 0b0110, 0b1010, 0b110, 0b110, 0b110 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1100, 0b0011, 0b1100, 0b00, 0b00, 0b00, 0b00, 0b00, 0b00, 0b00 0b0011, 0b1100, 0b0011, 0b1100, 0b0011,};

Pertama saya menyatakan pemboleh ubah saya, yang menarik adalah Lagu dan Corak.

  • Lagu menyimpan lagu; dalam kes ini adalah loceng Jingle.
  • Corak menyimpan kedudukan hidup dan mati dalam bit nilai dalam larik.

Fungsi Tersuai

// FUNGSI int noteToHz (int note) {// Tukarkan Catatan Nr. ke Frekuensi apungan freq = 440 * (pow (1.059463094359, note-21)); // -21 memberi anda nota 1 di C3 (I Think) return int (freq); // Hasil tepat untuk 1hz} kosongkanLED cahaya (byte PORT_X) {// Kawal Status LED untuk (int q = 0; q

Dua fungsi yang saya ada akan melakukan perkara berikut:

  • Hitung frekuensi untuk fungsi nada dalam gelung
  • hidupkan atau matikan LED bergantung pada nilai yang diteruskan ke fungsi

Fungsi Persediaan

batal persediaan () {// setup OUTPUT pin pinMode (pembesar suara, OUTPUT); untuk (int t = 0; t <nrLEDS; t ++) {pinMode (leds [t], OUTPUT); }}

Dalam fungsi persediaan saya menetapkan pin yang diperlukan untuk OUTPUT.

Fungsi Gelung

gelung void () {// Gelung Muzik untuk (int t = 0; t <songLength; t ++) {// Catatan, Panjang dan mainkan melodi int note = noteToHz (lagu [t * 2]); int panjang = ((lagu [(t * 2) +1] * barTime) / 8); nada (pembesar suara, nota, panjang - 50); // Lampu Berkelip! lightLEDs (corak [t% patternLength]); kelewatan (panjang); } // Silence Loop int randomSilence = rawak (1000, 5000); untuk (int t = 0; t

Saya mempunyai 2 gelung dalam fungsi Gelung Utama. Gelung lagu dan gelung senyap

Gelung lagu akan membaca data dari susunan lagu, memainkan nota menggunakan fungsi nada

Gelung lagu akan,

  • Baca data dari susunan lagu,
  • Mainkan nota menggunakan fungsi nada kemudian
  • Nyalakan LED, susunan corak membaca.

Dalam gelung Senyap

hanya LED yang menyala

Pasang Arduino dan muat naik kodnya. (Kemudian cabut palamnya)

Langkah 3: Memulakan Litar

Memulakan Litar
Memulakan Litar
Memulakan Litar
Memulakan Litar
Memulakan Litar
Memulakan Litar
Memulakan Litar
Memulakan Litar

Saya akan memulakan dengan rentetan lampu

  • Saya menggunakan wayar dari kabel Ethernet dan menyolder 3 LED selari empat kali, memastikan ruang LED sama rata lebih kurang 2 meter
  • Saya menyolder Anode masing-masing membawa ke satu wayar.
  • Kemudian katod setiap LED ke 4 wayar yang berasingan. Dengan perintang tentunya
  • Saya mengulangi proses ini 3 kali untuk mendapatkan rentetan 12 LED dan saya meletakkan pin header di hujung 5 wayar

Sambungkan rel positif dan landasan ke papan roti

Langkah 4: ULN2803

The ULN2803
The ULN2803
The ULN2803
The ULN2803
The ULN2803
The ULN2803

Letakkan Cip ULN2308 ke papan roti

ULN2308 adalah cip array transistor; dari lembaran data yang dapat saya lihat

  • Pin 1 itu adalah input yang menjadikan pin 18 "ON"
  • Pin 2 menghidupkan 17. Dan lain-lain.
  • Pin 9 adalah tanah
  • Sambungkan Pin 9 cip ke landasan
  • Sambungkan rel positif ke jalur terminal, satu jalur di atas pin 18. (Anda akan melihat mengapa dalam satu minit)
  • Sambungkan pin 1 cip ke pin 3 Arduino
  • 2 pergi ke 4
  • 3 cip pergi ke 5 dan
  • 4 masuk ke pin 6 Arduino
  • Letakkan tali LED ke papan roti. Di mana wayar anod biasa disambungkan ke jalur yang disambungkan ke 5 volt. Pins cahaya peri yang selebihnya harus masuk ke pin 18, 17, 16 dan 15 cip.

Langkah 5: Menambah Bunyi

Menambah Bunyi
Menambah Bunyi
  • Sambungkan Piezo Speaker antara 2 jalur terminal
  • Sambungkan kutub negatif elemen Piezo ke tanah dan
  • Hujung pembesar suara yang lain ke pin 11

Langkah 6: Kesimpulannya

Kesimpulannya
Kesimpulannya
Kesimpulannya
Kesimpulannya

Saya mempunyai tali cahaya yang akan memainkan loceng jingle secara rawak untuk mengingatkan saya bahawa ini adalah musim perayaan.

Disyorkan: