Dalam proyek ini kami akan mengembangkan generator nada menggunakan Arduino Uno. Kami akan memiliki tombol yang dihubungkan dengan UNO dan masing-masing dari mereka menghasilkan intensitas nada yang berbeda. Frekuensi nada yang dihasilkan oleh UNO sama di setiap internal. Intensitas suara yang berubah dengan setiap pers. Ini adalah salah satu cara termudah untuk membuat piano dengan Arduino Uno. Periksa juga sirkuit Piano ini.
Nada dapat ditingkatkan hingga 20. Hal ini memberikan variasi nada terbaik dan perubahan yang lebih halus. Intensitas nada diubah oleh PWM (Pulse Width Modulation). Contoh PWM ditunjukkan pada grafik di bawah ini.
Dalam PWM, frekuensi sinyal atau periode waktu sinyal (Ton + Toff) selalu konstan. Hanya rasio waktu HIDUP dan MATIKAN yang berubah. Misalnya pada grafik kedua pada gambar di atas, waktu MENGHIDUPKAN adalah 80% dan waktu MATI adalah 20% dari durasi lengkap.
Pada grafik ketiga, waktu MENGHIDUPKAN adalah 50% dan waktu MATI adalah 50% dari durasi lengkap. Jadi dalam kasus pertama kami memiliki rasio tugas 80% dan dalam kasus kedua kami memiliki rasio tugas 20%.
Dengan perubahan duty ratio ini kita mengalami perubahan dalam Vrms (Root Mean Square value of Voltage), ketika tegangan ini diberikan ke buzzer maka akan membuat suara yang berbeda setiap kali ada perubahan dalam duty ratio.
Kami akan memprogram UNO untuk memberikan sinyal PWM dengan rasio tugas yang berbeda untuk setiap tombol. Jadi kami memiliki penghasil nada yang menghasilkan nada berbeda dengan setiap penekanan tombol.
Komponen Diperlukan
Perangkat Keras: Arduino Uno, Power supply (5v), kapasitor 1000 uF, kapasitor 100 nF, Buzzer, tombol (8 buah).
Perangkat lunak: AURDINO nightly atau Atmel studio 6.2
Diagram Sirkuit dan Penjelasan Kerja
Sirkuit untuk generator nada ditunjukkan pada diagram di bawah ini.
Untuk menyaring kebisingan dari kapasitor tegangan suplai ditempatkan melintasi terminal seperti yang ditunjukkan pada diagram.
PWM Arduino Uno dapat dicapai di salah satu pin yang disimbolkan sebagai “~” di papan PCB. Ada enam saluran PWM di UNO. Namun kami tidak dapat menggunakan pin PWM yang dipasang di atas PIN 0-7, karena PIN lebih disukai untuk antarmuka tombol.
Ada alasan pemilihan PIN 0-7 sebagai input, karena PIN 0-7 mewakili PORTD mikrokontroler. Jadi dalam kasus terakhir kita dapat mengambil BYTE lengkap dari PORTD.
Sekarang untuk mendapatkan PWM rasio tugas yang berbeda, kita akan menggunakan perintah berikut.
analogWrite (9, VALUE); |
Dari kondisi diatas kita bisa langsung mendapatkan sinyal PWM pada pin yang sesuai. Parameter pertama dalam tanda kurung adalah untuk memilih nomor pin sinyal PWM. Parameter kedua adalah rasio tugas penulisan.
Nilai PWM Arduino Uno dapat diubah dari 0 menjadi 255. Dengan "0" sebagai yang terendah ke "255" sebagai tertinggi. Dengan 255 sebagai duty ratio kita akan mendapatkan 5V pada PIN9. Jika duty ratio diberikan sebagai 125 kita akan mendapatkan 2.5V pada PIN9. Kami akan membagi rasio tugas 0-250 di antara 8 tombol yang dihubungkan di PORTD UNO. Di sini saya memilih 25 kenaikan untuk setiap tombol, tetapi itu terserah Anda.
Dengan itu kita akan memiliki sinyal PWM yang rasio tugasnya berubah dengan setiap tombol. Ini diberikan ke buzzer, kami memiliki generator nada. Cara kerja generator nada berbasis Arduino ini dijelaskan selangkah demi selangkah dalam kode C yang diberikan di bawah ini.