Daftar Isi:
- Perlengkapan
- Langkah 1: Ikhtisar
- Langkah 2: Merakit Sirkuit
- Langkah 3: Bagaimana Sirkuit Bekerja
- Langkah 4: Cara Kerja Kode
- Langkah 5: Memprogram Lagu
- Langkah 6: Umpan Balik
Video: Membuat Lagu Dengan Arduino dan Motor DC: 6 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:55
Suatu hari, saat menelusuri beberapa artikel tentang Arduino, saya melihat sebuah proyek menarik yang menggunakan motor stepper yang dikendalikan Arduino untuk membuat melodi pendek. Arduino menggunakan pin PWM (Pulse Width Modulation) untuk menjalankan motor stepper pada frekuensi tertentu, sesuai dengan not musik. Dengan mengatur waktu frekuensi mana yang dimainkan, melodi yang jelas dapat terdengar dari motor stepper.
Namun, ketika saya mencobanya sendiri, saya menemukan bahwa motor stepper yang saya miliki tidak dapat berputar cukup cepat untuk menghasilkan nada. Sebagai gantinya, saya menggunakan motor DC, yang relatif sederhana untuk diprogram dan dihubungkan ke Arduino. IC L293D yang umum dapat digunakan untuk menggerakkan motor dengan mudah dari pin PWM Arduino, dan fungsi tone() asli di Arduino dapat menghasilkan frekuensi yang diperlukan. Yang mengejutkan saya, saya tidak menemukan contoh atau proyek apa pun menggunakan motor DC secara online, jadi Instruksi ini adalah tanggapan saya untuk memperbaikinya. Mari kita mulai!
P. S. Saya berasumsi bahwa Anda sudah memiliki pengalaman dengan Arduino dan akrab dengan bahasa pemrograman dan perangkat kerasnya. Anda harus tahu apa itu array, apa itu PWM dan bagaimana menggunakannya, dan bagaimana tegangan dan arus bekerja, hanya untuk menyebutkan beberapa hal. Jika Anda belum atau baru memulai Arduino, jangan khawatir: coba halaman memulai ini dari situs web resmi Arduino dan kembalilah kapan pun Anda siap.:)
Perlengkapan
- Arduino (Saya menggunakan UNO tetapi Anda dapat menggunakan Arduino yang berbeda jika Anda mau)
- Motor DC 5V standar, lebih disukai yang memiliki kipas terpasang (lihat gambar di "Merakit Sirkuit"
- IC L293D
- Tombol tekan sebanyak nada dalam lagu yang ingin Anda mainkan
- Papan tempat memotong roti
- Kabel Jumper
Langkah 1: Ikhtisar
Begini cara kerja proyek: Arduino akan menghasilkan gelombang persegi pada frekuensi tertentu, yang dikeluarkan ke L293D. L293D dihubungkan ke catu daya eksternal yang digunakan untuk memberi daya pada motor pada frekuensi yang diberikan oleh Arduino. Dengan mencegah poros motor DC berputar, motor dapat terdengar mati dan hidup pada frekuensi yang menghasilkan nada, atau nada. Kita dapat memprogram Arduino untuk memainkan not saat tombol ditekan, atau untuk memutarnya secara otomatis.
Langkah 2: Merakit Sirkuit
Untuk merakit sirkuit, cukup ikuti diagram Fritzing di atas.
Tip: Nada dari motor paling baik didengar saat poros tidak berputar. Saya memasang kipas di poros motor saya dan menggunakan selotip untuk menahan kipas saat motor berjalan (lihat gambar). Ini mencegah poros berputar dan menghasilkan nada yang jelas dan terdengar. Anda mungkin harus melakukan beberapa penyesuaian untuk mendapatkan nada yang bersih dari motor Anda.
Langkah 3: Bagaimana Sirkuit Bekerja
L293D adalah IC yang digunakan untuk menggerakkan perangkat tegangan tinggi dan arus tinggi seperti relai dan motor. Arduino tidak dapat menggerakkan sebagian besar motor secara langsung dari outputnya (dan EMF belakang dari motor dapat merusak sirkuit digital sensitif Arduino), sehingga IC seperti L293D dapat digunakan dengan catu daya eksternal untuk menggerakkan motor DC dengan mudah. Memasukkan sinyal ke L293D akan mengeluarkan sinyal yang sama ke motor DC tanpa risiko kerusakan pada Arduino.
Di atas adalah skema pinout/fungsional L293D dari lembar datanya. Karena kita hanya menggerakkan 1 motor (L293D dapat menggerakkan 2), kita hanya membutuhkan satu sisi IC. Pin 8 adalah daya, pin 4 dan 5 adalah GND, pin 1 adalah output PWM dari Arduino, dan pin 2 dan 7 mengontrol arah motor. Ketika pin 2 HIGH dan pin 7 LOW, motor berputar satu arah, dan ketika pin 2 LOW dan pin 7 HIGH, motor berputar ke arah lain. Karena kita tidak peduli ke arah mana motor berputar, tidak masalah jika pin 2 dan 7 LOW atau HIGH, asalkan berbeda satu sama lain. Pin 3 dan 6 terhubung ke motor. Anda dapat menghubungkan semuanya ke sisi lain (pin 9-16) jika diinginkan, tetapi perlu diketahui bahwa pin daya dan PWM bertukar tempat.
Catatan: Jika Anda menggunakan Arduino yang tidak memiliki cukup pin untuk setiap tombol, Anda dapat menggunakan jaringan resistor untuk menghubungkan semua sakelar ke satu pin analog, seperti dalam instruksi ini. Cara kerjanya berada di luar cakupan proyek ini, tetapi jika Anda pernah menggunakan R-2R DAC, Anda akan merasa familiar. Perhatikan bahwa menggunakan pin analog akan memerlukan sebagian besar kode untuk ditulis ulang, karena pustaka Tombol tidak dapat digunakan dengan pin analog.
Langkah 4: Cara Kerja Kode
Untuk mempermudah menangani semua tombol, saya menggunakan perpustakaan yang disebut "Tombol" oleh madleech. Saya memasukkan perpustakaan hal pertama. Selanjutnya, di baris 8-22, saya mendefinisikan frekuensi untuk not yang diperlukan untuk memainkan Twinkle, Twinkle, Little Star (contoh lagu), pin yang akan saya gunakan untuk menggerakkan L293D, dan tombol-tombolnya.
Dalam fungsi pengaturan, saya menginisialisasi Serial, tombol, dan mengatur pin driver untuk L293D ke mode output.
Akhirnya, di loop utama saya memeriksa untuk melihat apakah sebuah tombol telah ditekan. Jika sudah, Arduino memainkan not yang sesuai dan mencetak nama not ke Serial Monitor (berguna untuk mengetahui not mana yang ada di papan tempat memotong roti Anda). Jika sebuah not dilepaskan, arduino menghentikan suara apa pun dengan noTone().
Sayangnya, karena cara perpustakaan terstruktur, saya tidak dapat menemukan cara untuk memeriksa apakah tombol telah ditekan atau dilepaskan dengan cara yang tidak terlalu bertele-tele daripada menggunakan 2 kondisional per catatan. Kelemahan lain dengan kode ini adalah jika Anda menekan dua tombol secara bersamaan dan kemudian melepaskan salah satunya, kedua nada akan dihentikan, karena noTone() menghentikan nada apa pun yang dihasilkan terlepas dari nada mana yang memicunya.
Langkah 5: Memprogram Lagu
Alih-alih menggunakan tombol untuk memainkan not, Anda juga dapat memprogram Arduino untuk memainkan melodi untuk Anda secara otomatis. Berikut adalah versi modifikasi dari sketsa pertama yang memainkan Twinkle, Twinkle, Little Star di motor. Bagian pertama dari sketsa adalah sama - menentukan frekuensi nada dan tonePin. Kita sampai ke bagian baru di bpm="100". Saya mengatur ketukan per menit (bpm), dan kemudian menggunakan beberapa matematika untuk mengetahui jumlah milidetik per ketukan yang setara dengan bpm. Untuk melakukan ini, saya menggunakan teknik yang disebut analisis dimensi (jangan khawatir - ini tidak sesulit kedengarannya). Jika Anda pernah mengambil kursus kimia sekolah menengah, Anda pasti menggunakan analisis dimensi untuk mengkonversi antar unit. Float() ada di sana untuk memastikan bahwa tidak ada dalam persamaan yang dibulatkan sampai akhir untuk akurasi.
Setelah kita mendapatkan jumlah ms/beat, saya membagi atau mengalikannya dengan tepat untuk menemukan nilai milidetik dari durasi nada yang berbeda yang ditemukan dalam musik. Saya kemudian membuat larik dari setiap nada dalam urutan kronologis, dan satu lagi dengan durasi setiap nada. Sangat penting bahwa indeks setiap nada cocok dengan indeks durasinya, jika tidak, melodi Anda akan berbunyi. Saya memasukkan catatan untuk Twinkle, Twinkle, Little Star di sini sebagai contoh, tetapi Anda dapat mencoba lagu atau urutan nada apa pun yang Anda suka.
Keajaiban nyata terjadi dalam fungsi loop. Untuk setiap nada, saya memainkan nada selama waktu yang saya tentukan dalam larik beat_values. Alih-alih menggunakan penundaan di sini, yang akan menyebabkan nada tidak dimainkan, saya mencatat waktu sejak program dimulai dengan fungsi milis(), dan menguranginya dari waktu saat ini. Ketika waktu melebihi waktu yang saya tentukan agar catatan bertahan di array beat_values, saya menghentikan catatan tersebut. Penundaan setelah loop for ada untuk menambah celah di antara nada, memastikan bahwa nada berikutnya dengan frekuensi yang sama tidak akan menyatu.
Langkah 6: Umpan Balik
Itu saja untuk proyek ini. Jika ada sesuatu yang Anda tidak mengerti, atau jika Anda memiliki saran, jangan ragu untuk menghubungi saya. Karena ini adalah Instructables pertama saya, saya akan sangat menghargai komentar dan saran tentang cara meningkatkan konten ini. Sampai jumpa lain waktu!
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
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 Menggunakan Motor Stepper!!: 11 Langkah (dengan Gambar)
Memutar Lagu Menggunakan Motor Stepper!!: Proyek ini adalah tentang merancang antarmuka dinamis sederhana, yang memungkinkan untuk berinteraksi dengan motor stepper dalam dua cara berbeda. Antarmuka pertama akan mengontrol arah dan kecepatan motor stepper melalui penggunaan GUI sederhana, yang
SENSOR SUHU DENGAN LCD DAN LED (Membuat Sensor Suhu Dengan LCD dan LED): 6 Langkah (Dengan Gambar)
SENSOR SUHU DENGAN LCD DAN LED (Membuat Sensor Suhu Dengan LCD dan LED): hai, saya Devi Rivaldi mahasiswa UNIVERSITAS NUSA PUTRA dari Indonesia, di sini saya akan berbagi cara membuat sensor suhu menggunakan Arduino dengan Output ke LCD dan LED. Ini adalah pembaca suhu dengan desain saya sendiri, dengan sensor ini dan
Membuat Lagu Chi Running "Metronome" MP3: 6 Langkah (dengan Gambar)
Membuat Trek MP3 "Metronome" Chi Running: Tepat sebelum saya mulai berlari di Vibram Five Fingers tahun lalu, saya juga membaca metode Chi Running yang dikembangkan oleh Danny Dreyer sehingga saya dapat menyesuaikan gaya lari saya. Saya segera menyadari bahwa satu peralatan lagi, metronom, akan sangat membantu, tapi