Daftar Isi:
- Langkah 1: Ubah Skor Musik Menjadi Catatan Digital: Nilai Tunda
- Langkah 2: Ubah Skor Musik Menjadi Catatan Digital: Nilai Hertz
- Langkah 3: Desain Sirkuit
- Langkah 4: Mengunggah Kode: How-To
- Langkah 5: Mengunggah Kode: Apa Artinya Semua Itu?
- Langkah 6: Selesai!
Video: Mendigitalkan Lagu Dengan Arduino: 6 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:57
Saya ingin membuat proyek yang menggabungkan dua mata pelajaran favorit saya: sains dan musik. Saya memikirkan semua cara agar saya dapat menggabungkan dua domain ini, dan, saya pikir akan menarik untuk membuat Arduino memainkan Fur Elise sambil menampilkan nada nada dalam Hertz. Sekarang, mari kita mulai membangun!
Anda memerlukan satu Arduino Uno atau Mega, banyak kabel jumper, buzzer Piezo, papan tempat memotong roti, layar LCD 16*2 dengan semua pin penghapus terpasang, dan Potensiometer 10k (Anda mungkin juga mendengarnya disebut sebagai potmeter.). Yang terbaik adalah mengumpulkan semua persediaan ini sebelum kita mulai membangun.
Langkah 1: Ubah Skor Musik Menjadi Catatan Digital: Nilai Tunda
Ada dua langkah untuk menyalin catatan dari skor secara digital ke dalam ekuivalen digitalnya. Pertama, kita perlu menulis waktu nada berlangsung dalam milidetik. Saya menggunakan bagan yang ditemukan online untuk tugas ini. Berdasarkan apakah sebuah not adalah not setengah, not seperempat, not kedelapan, dll, saya menyalin panjang not ke dalam milidetik. Anda dapat melihat angka-angka ini dalam kode saya sebagai delay(); fungsi dan angka di dalam tanda kurung akan menjadi nilai penundaan dalam milidetik yang kami tentukan pada langkah ini.
Langkah 2: Ubah Skor Musik Menjadi Catatan Digital: Nilai Hertz
Sebelum memulai langkah ini, izinkan saya mendefinisikan beberapa istilah teknis. "Nilai" dari sebuah not dapat digunakan secara bergantian dengan kata-kata "pitch", "value", dan "note". Sekarang, Anda harus membaca setiap nada lagu dari skor. Anda kemudian harus menerjemahkan setiap nada ke dalam Hertz menggunakan musik ke tabel Hertz, yang dapat Anda temukan dengan mudah secara online. Satu hal yang perlu diingat adalah bahwa C tengah terdaftar sebagai C4 di atas meja, dan satu oktaf lebih tinggi adalah C5, dan seterusnya. Setelah semua nada ini ditranskripsikan ke dalam Hertz, Anda akan menempatkan nilainya ke dalam nada fungsi (x, y, z); dimana X adalah nomor pin atau const int, cara mendefinisikan variabel yang akan saya jelaskan nanti. Y akan menjadi nilai Hertz yang baru saja Anda transkripsikan, dan Z akan menjadi durasi nada dalam milidetik yang dibulatkan ke perseratus terdekat. Keterlambatan(); nilai akan menjadi durasi catatan. Sekarang, mari kita rancang sirkuit yang dapat memutar musik.
Langkah 3: Desain Sirkuit
Sekarang kita telah menerjemahkan semua not ke dalam nilai digital yang dapat dipahami oleh komputer, saatnya untuk membangun sirkuit. Mulailah dengan mengambil papan tempat memotong roti dan menempatkan layar LCD dengan pin pertama (GND) di baris 14. Tempatkan bel di mana saja Anda suka, dan letakkan potensiometer di sebelahnya. Tujuannya adalah untuk menyelaraskan semuanya, untuk meminimalkan kekacauan kabel. Tempatkan Arduino di sebelah breadboard, dan sambungkan pin 5v ke rel positif breadboard, dan pin ground ke rel negatif. Sekarang, kita siap untuk menghubungkan jumper antara Arduino dan komponen.
Sekarang, mari kita bicara tentang pin pada LCD, dan cara menghubungkannya.
GND adalah singkatan dari ground, ini adalah kabel negatif dalam arus searah. Hubungkan GND ke rel negatif papan tempat memotong roti.
VCC adalah singkatan dari Voltage at the Common Collector, dan di sinilah Anda menghubungkan sumber daya 5 volt Anda (rel daya positif).
VO adalah singkatan dari Contrast, sambungkan ini ke pin tengah potensiometer. Hubungkan pin kiri potensiometer ke rel daya positif, dan pin kanan ke rel daya ground.
RS adalah singkatan dari Register Select, dan ini digunakan oleh Arduino untuk memberi tahu tampilan tempat menyimpan data. Hubungkan pin ini ke pin 12 pada Arduino.
RW adalah singkatan dari Read/Write pin, yang digunakan Arduino untuk memeriksa apakah layar menunjukkan apa yang telah Anda programkan untuk ditampilkan. Hubungkan pin ini ke rel negatif pada papan tempat memotong roti.
E singkatan dari Enable, yang memberi tahu LCD piksel mana yang akan diaktifkan (dihidupkan) atau dinonaktifkan (dimatikan). Hubungkan pin ini ke pin Arduino 11.
D4, D5, D6, dan D7 adalah pin Display yang mengontrol karakter dan huruf yang ditampilkan. Hubungkan mereka ke pin Arduino 5, 4, 3, dan 2, masing-masing.
Pin A, terkadang diberi label LED, adalah anoda LED untuk lampu latar. Hubungkan ini ke rel daya positif dengan kabel atau dengan resistor 220-ohm. Resistor lebih baik digunakan lebih lama karena menghemat LCD, tetapi jika perangkat tidak akan digunakan siang dan malam, Anda tidak memerlukan resistor.
Pin K, terkadang juga (membingungkan) berlabel LED, adalah pin ground LED. Hubungkan ini ke rel listrik tanah.
Langkah 4: Mengunggah Kode: How-To
Colokkan Arduino Anda ke USB komputer Anda. Unggah kode berikut menggunakan programmer Arduino IDE.
#termasuk
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
batalkan pengaturan() {
// mengatur jumlah kolom dan baris LCD: lcd.begin(16, 2); // Mencetak pesan ke LCD. lcd.print("Pitch Hertz:!"); penundaan (1000); void loop() { // memutar e4 delay(600);//pause selama 0,6 detik nada(10, 329.63, 300);//memutar e ke buzzer di pin 10, berlangsung selama.3 detik lcd.print(" 329.63");//menampilkan pesan pada LCD "329.63"
delay(350);//delay selama.35 detik
lcd.clear();//clear LCD dan reset untuk pesan berikutnya // mainkan nada d4#(10, 311.13, 300); lcd.print("311.13"); penundaan (350); lcd.clear(); // mainkan nada e4(10, 329.63, 300); lcd.print("329.63"); penundaan (350); lcd.clear(); // mainkan nada d4#(10, 311.13, 300); lcd.print("311.13"); penundaan (350); lcd.clear(); // mainkan nada e4(10, 329.63, 300); lcd.print("329.63"); penundaan (350); lcd.clear(); // mainkan nada b3(10, 246.94, 300); lcd.print("246.94"); penundaan (400); lcd.clear(); // mainkan nada d4(10, 293,66, 300); lcd.print("293.66"); penundaan (400); lcd.clear(); // mainkan nada c4(10, 261.63, 300); lcd.print("261.63"); penundaan (400); lcd.clear(); // mainkan nada a3 (10, 220, 900); lcd.print("220.0"); penundaan (1000); lcd.clear();//line60//helpsave//avrdude.failure.eeprom // mainkan nada d3 (10, 146.83, 300); lcd.print("146.63"); penundaan (350); lcd.clear(); //mainkan nada f3(10, 174.61, 300); lcd.print("174.61"); penundaan (400); lcd.clear(); //mainkan nada a3(10, 220, 300); lcd.print("220"); penundaan (400); lcd.clear(); // mainkan nada b3(10, 246.94, 900); lcd.print("246.94"); penundaan (1000); lcd.clear();
// mainkan e3
nada (10, 164.81, 300); lcd.print("164.81"); penundaan (400); lcd.clear(); // mainkan nada g3# (10, 207.65, 300); lcd.print("207.65"); penundaan (400); lcd.clear(); // mainkan nada b3(10, 246.94, 300); lcd.print("246.94"); penundaan (400); lcd.clear(); // mainkan nada c4(10, 261.63, 900); lcd.print("261.63"); penundaan (1000); lcd.clear(); //mainkan nada e(10, 164.81, 300); lcd.print("164.81"); penundaan (400); lcd.clear(); // mainkan nada e4(10, 329.63, 300); lcd.print("329.63"); penundaan (400); lcd.clear(); // mainkan nada d4#(10, 311.13, 300); lcd.print("311.13"); penundaan (400); lcd.clear(); // mainkan nada e4(10, 329.63, 300); lcd.print("329.63"); penundaan (400); lcd.clear(); // mainkan nada d4#(10, 311.13, 300); lcd.print("311.13"); penundaan (400); lcd.clear(); // mainkan nada e4(10, 329.63, 300); lcd.print("329.63"); penundaan (400); lcd.clear(); // mainkan nada b3(10, 246.94, 300); lcd.print("246.94"); penundaan (400); lcd.clear(); // mainkan nada d4(10, 293,66, 300); lcd.print("293.66"); penundaan (400); lcd.clear(); // mainkan nada c4(10, 261.63, 300); lcd.print("261.63"); penundaan (400); lcd.clear(); // mainkan nada a3(10, 220, 900); lcd.print("220.0"); penundaan (1000); lcd.clear(); // mainkan nada d3(10, 146.83, 300); lcd.print("146.83"); penundaan (400); lcd.clear(); // mainkan nada f3(10, 174.61, 300); //eeprom 20--6 yesno, flash 65--0 noyes lcd.print("174.61"); penundaan (400); lcd.clear(); // mainkan nada a3(10, 220, 300); lcd.print("220.0"); penundaan (400); lcd.clear(); // mainkan nada b3(10, 246.94, 900); lcd.print("246.94"); penundaan (1000); lcd.clear(); // mainkan nada f3(10, 174.61, 300); lcd.print("174.61"); penundaan (400); lcd.clear(); // mainkan nada c4(10, 261.63, 300); lcd.print("261.63"); penundaan (400); lcd.clear(); // mainkan nada b3(10, 246.94, 300); lcd.print("246.94"); penundaan (400); lcd.clear(); // mainkan nada a3 (10, 220, 900); lcd.print("220.0"); penundaan (1000); lcd.clear(); // mainkan nada b3(10, 246.94, 300); lcd.print("246.94"); penundaan (400); lcd.clear(); // mainkan nada c4(10, 261.63, 300); lcd.print("261.63"); penundaan (400); lcd.clear(); // mainkan nada d4(10, 293,66, 300); lcd.print("293.66"); penundaan (400); lcd.clear(); // mainkan nada e4(10, 329.63, 900); lcd.print("329.63"); penundaan (1000); lcd.clear(); // mainkan nada g3(10, 196, 300); lcd.print("196.0"); penundaan (400); lcd.clear(); // mainkan nada f4(10, 349.23, 300); lcd.print("349.23"); penundaan (400); lcd.clear(); //mainkan nada e4(10, 329.23, 300); lcd.print("329.23"); penundaan (400); lcd.clear(); // mainkan nada d4(10, 293.63, 900); lcd.print("293.63"); penundaan (1000); lcd.clear(); // mainkan nada e3(10, 164.81, 300); lcd.print("164.81"); penundaan (400); lcd.clear(); // mainkan nada e4(10, 329.63, 300); lcd.print("329.63"); penundaan (400); lcd.clear(); // mainkan nada d4(10, 293.63, 300); lcd.print("293.63"); penundaan (400); lcd.clear(); // mainkan nada c4(10, 261.63, 900); lcd.print("261.63"); penundaan (1000); lcd.clear(); // mainkan nada d3(10, 146.83, 300); lcd.print("146.83"); penundaan (400); lcd.clear(); // mainkan nada d4(10, 293.63, 300); lcd.print("293.63"); penundaan (400); lcd.clear(); // mainkan nada c4(10, 261.63, 300); lcd.print("261.63"); penundaan (400); lcd.clear(); // mainkan nada b3(10, 246.94, 900); lcd.print("246.94"); penundaan (1000); lcd.clear(); // mainkan nada e4(10, 329.63, 300); lcd.print("329.63"); penundaan (400); lcd.clear(); // mainkan nada d4#(10, 311.13, 300); lcd.print("311.13"); penundaan (350); lcd.clear(); // mainkan nada e4(10, 329.63, 300); lcd.print("329.63"); penundaan (350); lcd.clear(); // mainkan nada d4#(10, 311.13, 300); lcd.print("311.13"); penundaan (350); lcd.clear(); // mainkan nada e4(10, 329.63, 300); lcd.print("329.63"); penundaan (350); lcd.clear(); // mainkan nada b3(10, 246.94, 300); lcd.print("246.94"); penundaan (400); lcd.clear(); // mainkan nada d4(10, 293.66, 300); lcd.print("293.66"); penundaan (400); lcd.clear(); // mainkan nada c4(10, 261.63, 300); lcd.print("261.63"); penundaan (400); lcd.clear(); // mainkan nada a3(10, 220, 900); lcd.print("220.0"); penundaan (1000); lcd.clear(); // mainkan nada d3(10, 146.83, 300); lcd.print("146.83"); penundaan (350); lcd.clear(); //mainkan nada f3(10, 174.61, 300); lcd.print("174.61"); penundaan (400); lcd.clear(); //mainkan nada a3(10, 220, 300); lcd.print("220.0"); penundaan (400); // mainkan b3 lcd.clear(); nada (10, 246.94, 900); lcd.print("246.94"); penundaan (1000); lcd.clear(); // mainkan nada e3(10, 164.81, 300); lcd.print("164.81"); penundaan (400); lcd.clear(); // mainkan nada g#3 (10, 207.65, 300); lcd.print("207.65"); penundaan (400); lcd.clear(); // mainkan nada b3(10, 246.94, 300); lcd.print("246.94"); penundaan (400); lcd.clear(); // mainkan nada c4(10, 261.63, 900); lcd.print("261.63"); penundaan (1000); penundaan (300); lcd.clear(); //mainkan nada e3(10, 164.81, 300); lcd.print("164.81"); penundaan (400); lcd.clear(); // mainkan nada e4(10, 329.63, 300); lcd.print("329.63"); penundaan (400); lcd.clear(); // mainkan nada d4#(10, 311.13, 300); lcd.print("311.13"); penundaan (400); lcd.clear(); // mainkan nada e4(10, 329.63, 300); lcd.print("329.63"); penundaan (400); lcd.clear(); // mainkan nada d4#(10, 311.13, 300); lcd.print("311.13"); penundaan (400); lcd.clear(); // mainkan nada e4(10, 329.63, 300); lcd.print("329.63"); penundaan (400); lcd.clear(); // mainkan nada b3(10, 246.94, 300); lcd.print("246.94"); penundaan (400); lcd.clear(); // mainkan nada d4(10, 293.66, 300); lcd.print("293.66"); penundaan (400); lcd.clear(); // mainkan nada c4(10, 261.63, 300); lcd.print("261.63"); penundaan (400); lcd.clear(); // mainkan nada a3 (10, 220, 900); lcd.print("220.0"); penundaan (1000); lcd.clear(); // mainkan nada d3(10, 146.83, 300); lcd.print("146.83"); penundaan (400); lcd.clear(); // mainkan nada f3(10, 174.61, 300); lcd.print("174.61"); penundaan (400); lcd.clear(); // mainkan nada a3 (10, 220, 300); lcd.print("220.0"); penundaan (400); lcd.clear(); // mainkan nada b3(10, 246.94, 900); lcd.print("246.94"); penundaan (1000); lcd.clear(); // mainkan nada f3(10, 174.61, 300); lcd.print("174.61"); penundaan (400); lcd.clear(); // mainkan nada c4(10, 261.63, 300); lcd.print("261.63"); penundaan (400); lcd.clear(); // mainkan nada b3(10, 246.94, 300); lcd.print("246.94"); penundaan (400); lcd.clear(); // mainkan nada a3 (10, 220, 900); lcd.print("220.0"); penundaan (1000); lcd.clear(); }
Langkah 5: Mengunggah Kode: Apa Artinya Semua Itu?
Mari kita definisikan beberapa fungsi dalam bahasa Inggris, sehingga Anda dapat memahami kodenya.
nada(x, y, z); = memainkan nada dengan titinada y Hertz, ke buzzer di pin x, selama z milidetik.
lcd.print("XYZ"); = mencetak pesan dengan karakter XYZ ke layar LCD. (misalnya menampilkan nada Hertz)
penundaan (x); = jeda selama x milidetik.
const int X=Y = atur variabel konstan X ke pin Y, dan gunakan X atau Y untuk menetapkan tugas ke perangkat.
lcd.clear(); = bersihkan layar LCD dan setel ulang untuk tampilan baru
pinMode(X, OUTPUT); = setel pin X untuk mode keluaran
Setelah Anda memahami semua fungsi ini, Anda dapat dengan mudah mengganti variabel dengan data yang Anda kumpulkan saat menerjemahkan lagu, dan Anda kemudian dapat mengkodekan lagu Anda sendiri!
Langkah 6: Selesai!
Anda memiliki Arduino yang memainkan Fur Elise dan menampilkan nilai not dalam Hertz, atau Anda telah membuat Arduino yang memainkan melodi lagu yang Anda pilih, dan menampilkan teks yang ingin Anda tampilkan. Terima kasih telah mengunjungi tutorial ini, dan saya berharap untuk Anda proyek ini di Arduino.
Direkomendasikan:
Arduino Piano Dengan Manual dan 7 Lagu Preset: 7 Langkah
Arduino Piano Dengan Manual dan 7 Lagu Preset: Antarmuka Keyboard Piano Arduino dengan LCD memiliki 2 mode. Mode Manual & Modus preset. Saya menggunakan 7 Pushbutton untuk piano 7 tuts sederhana dan 1 tombol untuk Setup Mode untuk beralih ke 7 lagu preset.. Lagu mode preset: Klik tombol mode setup untuk
Cara Mendigitalkan Slide dan Film Negatif Dengan DSLR: 12 Langkah (dengan Gambar)
Cara Mendigitalkan Slide dan Film Negatif Dengan DSLR: Pengaturan serbaguna dan stabil untuk mendigitalkan slide dan negatif dengan DSLR atau kamera apa pun dengan opsi makro. Instruksi ini adalah pembaruan Cara mendigitalkan negatif 35mm (diunggah Juli 2011) dengan beberapa perbaikan untuk memperluas
Lagu Tema PUBG+Animasi Dengan Arduino!: 13 Langkah (dengan Gambar)
Lagu Tema PUBG + Animasi Dengan Arduino !: Halo dan selamat datang di instruksi yang menyenangkan ini! Saya harap kalian semua baik-baik saja dan tetap sehat. Proyek kecil tapi luar biasa ini adalah tentang memainkan lagu tema PUBG dan bahkan membuat beberapa animasi game menggunakan arduino. Komponen yang digunakan sangat e
Memutar Lagu (MP3) Dengan Arduino Menggunakan PWM pada Speaker atau Flyback Transformer: 6 Langkah (dengan Gambar)
Memutar Lagu (MP3) Dengan Arduino Menggunakan PWM di Speaker atau Flyback Transformer: Halo Guys, Ini adalah instruksi pertama saya, saya harap Anda menyukainya!! Pada dasarnya, Dalam Proyek ini saya telah menggunakan Komunikasi Serial antara Arduino dan Laptop saya, untuk mengirimkan data musik dari laptop saya ke Arduino. Dan menggunakan TIMER Arduino untuk
Jam Alarm Matahari Terbit LED Dengan Alarm Lagu yang Dapat Disesuaikan: 7 Langkah (dengan Gambar)
Jam Alarm Matahari Terbit LED Dengan Alarm Lagu yang Dapat Disesuaikan: Motivasi Saya Musim dingin ini pacar saya mengalami banyak kesulitan bangun di pagi hari dan tampaknya menderita SAD (Seasonal Affective Disorder). Saya bahkan menyadari betapa sulitnya untuk bangun di musim dingin karena matahari belum datang