Daftar Isi:

Lampu Peri Musikal: 6 Langkah (dengan Gambar)
Lampu Peri Musikal: 6 Langkah (dengan Gambar)

Video: Lampu Peri Musikal: 6 Langkah (dengan Gambar)

Video: Lampu Peri Musikal: 6 Langkah (dengan Gambar)
Video: Ini cara bisa lihat hantu, bukan magic! #Shorts Nasya kaila nazifah 2024, November
Anonim
Image
Image

Oleh IanCummingIkuti Lainnya oleh penulis:

Intervalometer Arduino
Intervalometer Arduino
Bukan Hanya Pengatur Waktu Jam
Bukan Hanya Pengatur Waktu Jam
Bukan Hanya Pengatur Waktu Jam
Bukan Hanya Pengatur Waktu Jam
Termometer Satu Piksel
Termometer Satu Piksel
Termometer Satu Piksel
Termometer Satu Piksel

Tentang: Saya suka membuat barang dari roket hingga elektronik. Selengkapnya Tentang IanCumming »

Selamat datang semuanya

Ini hampir musim perayaan dan sejumlah toko mulai memasang dekorasi pesta mereka, saya pikir ini adalah waktu yang tepat untuk membangun beberapa lampu peri musik!

Langkah 1: Bagian yang Digunakan

Bagian yang Digunakan
Bagian yang Digunakan

Saya akan menggunakan yang berikut ini:

  • 12 LED
  • 12 Resistor pembatas arus
  • 1 ULN 2803 Array Transistor Darlington
  • Beberapa Kabel Jumper
  • Pembicara piezo
  • Sebuah papan tempat memotong roti dan
  • sebuah Arduino
  • Untuk membuat rangkaian lampu peri saya menggunakan 5 kabel dari kabel Ethernet

Langkah 2: Kode

//VARS GLOBAL int barWaktu = 1200; // 8/8 = 1000ms byte nrLEDS = 4; // 4 LED Dasar, Anda dapat menambahkan banyak LED byte paralel = { 3, 4, 5, 6}; byte pembicara = 11; byte polaPanjang = 64; // panjang pola byte songLength = 51; const byte lagu = { // 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 }; // Strukturnya adalah Nomor Catatan lalu // Panjang Catatan dalam pola byte ke-8 = { //Data Pola 0b0001, 0b0010, 0b0100, 0b1000, //Bit sesuai dengan Led 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, 0b0010, 0b0011, 0b0001, 0b 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1100, 0b0011, 0b1100, 0b0011, 0b1100, 0b0011, 0b1100, 0b0011, 0b0011, 0b1100, 0b0011, 0b1100, 0b0011, 0b 0b0011, 0b1100, 0b0011, 0b1100, 0b0011, };

Pertama saya mendeklarasikan variabel saya, yang menarik adalah Lagu dan Pola.

  • Lagu menyimpan nada; dalam hal ini adalah lonceng Jingle.
  • Pola menyimpan posisi on dan off dalam bit nilai dalam array.

Fungsi Kustom

//FUNCTIONS int noteToHz(int note) { // Mengonversi Catatan Nr. ke Frekuensi float freq = 440 * (pow(1.059463094359, note-21)); // -21 memberi Anda catatan 1 di C3 (Saya pikir) return int(freq); // Hasil akurat hingga 1hz } void lightLEDs(byte PORT_X) { // Kontrol Status LED untuk (int q = 0;q

Dua fungsi yang saya miliki akan melakukan hal berikut:

  • Hitung frekuensi untuk fungsi nada dalam loop
  • nyalakan atau matikan LED tergantung pada nilai yang diteruskan ke fungsi

Fungsi Pengaturan

void setup() { //setup pin OUTPUT pinMode(speaker, OUTPUT); for(int t = 0; t < nrLEDS; t++){ pinMode(leds[t], OUTPUT); } }

Dalam fungsi pengaturan saya mengatur pin yang diperlukan ke OUTPUT.

Fungsi lingkaran

void loop() { // Music Loop for (int t = 0; t < songLength; t++) { // Notes, Panjang dan mainkan melodi int note = noteToHz(song[t * 2]); int panjang = ((lagu[(t * 2)+1] * barTime) / 8); nada(speaker, nada, panjang - 50); // Lampu Berkedip! lightLEDs(pattern[t % patternLength]); penundaan (panjang); } // Silence Loop int randomSilence = random(1000, 5000); untuk (int t = 0;t

Saya memiliki 2 loop dalam fungsi Main Loop. Loop lagu dan loop hening

Loop lagu akan membaca data dari larik lagu, memutar not menggunakan fungsi nada

Putaran lagu akan,

  • Baca data dari larik lagu,
  • Mainkan not menggunakan fungsi nada lalu
  • Nyalakan larik pola pembacaan LED.

Dalam lingkaran Keheningan

hanya LED yang menyala

Colokkan Arduino dan unggah kodenya. (Kemudian cabut)

Langkah 3: Memulai Sirkuit

Memulai Sirkuit
Memulai Sirkuit
Memulai Sirkuit
Memulai Sirkuit
Memulai Sirkuit
Memulai Sirkuit
Memulai Sirkuit
Memulai Sirkuit

Saya akan memulai dengan rangkaian lampu

  • Saya menggunakan kabel dari kabel Ethernet dan menyolder 3 LED secara paralel empat kali, memastikan untuk memisahkan LED secara merata sekitar 2 meter
  • Saya menyolder Anoda masing-masing mengarah ke satu kabel.
  • Kemudian Katoda masing-masing LED ke 4 kabel terpisah. Dengan resistor tentunya
  • Saya mengulangi proses ini 3 kali untuk mendapatkan string 12 LED dan saya meletakkan pin header di ujung 5 kabel

Hubungkan rel Positif dan ground ke papan tempat memotong roti

Langkah 4: ULN2803

ULN2803
ULN2803
ULN2803
ULN2803
ULN2803
ULN2803

Tempatkan Chip ULN2308 ke papan tempat memotong roti

ULN2308 adalah chip array transistor; dari lembar data yang bisa saya lihat

  • Pin 1 itu adalah input yang mengubah pin 18 "ON"
  • Pin 2 menyalakan 17. Dll.
  • Pin 9 di-ground
  • Hubungkan Pin 9 chip ke ground rail
  • Hubungkan rel positif ke strip terminal, satu strip di atas pin 18. (Anda akan melihat alasannya dalam satu menit)
  • Hubungkan pin 1 chip ke pin 3 Arduino
  • 2 pergi ke 4
  • 3 dari chip menjadi 5 dan
  • 4 masuk ke pin 6 Arduino
  • Tempatkan string LED ke papan tempat memotong roti. Dimana kabel common anode dihubungkan ke strip yang terhubung ke 5 volt. Sisa pin cahaya peri harus masuk ke pin 18, 17, 16 dan 15 chip.

Langkah 5: Menambahkan Suara

Menambahkan Suara
Menambahkan Suara
  • Hubungkan Speaker Piezo antara 2 strip terminal
  • Hubungkan kutub negatif elemen Piezo ke ground dan
  • Ujung lain dari speaker ke pin 11

Langkah 6: Kesimpulan

Kesimpulan
Kesimpulan
Kesimpulan
Kesimpulan

Saya memiliki untaian lampu yang secara acak akan memainkan jingle bells untuk mengingatkan saya bahwa ini adalah musim perayaan.

Direkomendasikan: