Isi kandungan:
- Langkah 1: Langkah 1: Membina Litar
- Langkah 2: Langkah 2: Kod dan Penjelasan
- Langkah 3: Langkah 3: Demonstrasi Video
Video: Arduino Piano Dengan Tombol Tombol Tekan: 3 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:09
Dibuat oleh: Haotian Ye
Gambaran keseluruhan
Ini adalah papan piano dengan lapan suis butang tekan yang membolehkan anda memainkan satu oktaf (Do Re Mi Fa So La Si Do) dan dengan satu oktaf ini anda boleh mencuba memainkan beberapa lagu yang anda suka. Untuk projek ini terdapat beberapa pengetahuan penting yang perlu anda ketahui sebelum memulakannya.
Pertama, kita perlu mengetahui kekerapan nota asas piano.
Frekuensi disenaraikan di bawah:
Lakukan - 261Hz
Re - 294Hz
Mi - 329Hz
Fa - 349Hz
Jadi - 392Hz
La - 440Hz
Si - 493Hz
Lakukan - 523Hz
Kedua, saya akan menunjukkan cara membina litar dengan menggunakan bahagian yang boleh dibeli dari Kedai Elektronik Lee. Akhirnya ๏ผ Saya akan membentangkan dan menerangkan kod yang perlu dimuat naik ke papan Arduino.
Bahagian yang anda perlukan:
Arduino Uno R3 (ID Produk: 10997)
Kabel USB A hingga B M / M (ID Produk: 29861)
Resistor 10K * 8 (ID Produk: 91516)
Berbagai Warna Tack Switch * 8 (ID Produk: 3124, 31242, 31243, 31245, 31246)
Pembesar suara mini (ID Produk: 41680)
Papan Roti (ID Produk: 106861)
Kawat Jumper (ID Produk: 21801)
Langkah 1: Langkah 1: Membina Litar
Pertama, masukkan semua suis butang tekan dan pembesar suara mini di papan roti satu persatu dan padankan pada satu baris. Kemudian sambungkan pin setiap suis butang tekan ke tanah. Sambungkan perintang 10k kedua antara daya positif dan pin lain pada setiap suis butang tekan. Dan, sambungkan lajur ini ke pin 2-9 di Arduino Board. Juga, sambungkan ground ke pin ground dan daya positif ke pin 3.3v pada Arduino. Akhirnya, sambungkan pembesar suara mini ke pin 10 di Arduino.
Langkah 2: Langkah 2: Kod dan Penjelasan
Kod di bawah adalah apa yang saya tulis
const int hitam = 2;
const int putih = 3;
const int merah = 4;
const int hijau = 5;
const int biru = 6;
const int black2 = 7;
const int green2 = 8;
const int red2 = 9;
const int speaker = 10; // Pautkan semua suis butang tekan dan pembesar suara dengan pin isyarat arduino
frekuensi int = {262, 294, 330, 349, 392, 440, 493, 523}; // array mengandungi semua frekuensi satu oktaf
batal persediaan () {
// masukkan kod persediaan anda di sini, untuk dijalankan sekali:
pinMode (hitam, INPUT);
pinMode (putih, INPUT);
pinMode (merah, INPUT);
pinMode (hijau, INPUT);
pinMode (biru, INPUT);
pinMode (black2, INPUT);
pinMode (hijau2, INPUT);
pinMode (merah2, INPUT);
pinMode (pembesar suara, OUTPUT);
nada (pembesar suara, 2000);
Serial.begin (9600);
}
gelung kosong () {
// letakkan kod utama anda di sini, untuk dijalankan berulang kali:
if (digitalRead (hitam) == RENDAH) // semasa anda menekan suis butang tekan "DO"
{nada (pembesar suara, kekerapan [0], 50);
kelewatan (50);
noTone (pembesar suara);}
lain jika (digitalRead (putih) == RENDAH) // semasa anda menekan suis butang tekan "RE"
{nada (pembesar suara, kekerapan [1], 50);
kelewatan (50);
noTone (pembesar suara);}
lain jika (digitalRead (merah) == RENDAH) // semasa anda menekan suis butang tekan "MI"
{nada (pembesar suara, kekerapan [2], 50);
kelewatan (50);
noTone (pembesar suara);}
lain jika (digitalRead (hijau) == RENDAH) // semasa anda menekan butang tekan "FA"
{nada (pembesar suara, kekerapan [3], 50);
kelewatan (50);
noTone (pembesar suara);}
lain jika (digitalRead (biru) == RENDAH) // semasa anda menekan suis butang tekan "SO"
{nada (pembesar suara, kekerapan [4], 50);
kelewatan (50);
noTone (pembesar suara);}
lain jika (digitalRead (black2) == RENDAH) // semasa anda menekan suis butang tekan "LA"
{nada (pembesar suara, kekerapan [5], 50);
kelewatan (50);
noTone (pembesar suara);}
lain jika (digitalRead (green2) == RENDAH) // semasa anda menekan suis butang tekan "SI"
{nada (pembesar suara, kekerapan [6], 50);
kelewatan (50);
noTone (pembesar suara);}
lain jika (digitalRead (red2) == RENDAH) // semasa anda menekan suis butang tekan "DO"
{nada (pembesar suara, kekerapan [7], 50);
kelewatan (50);
noTone (pembesar suara);}
lain // apabila anda tidak menekan apa-apa
noTone (pembesar suara);
}
Pertama, kita harus menyatakan semua suis butang tekan dan pembesar suara sebagai pin dari 2 hingga 10 di Arduino. Setiap suis mewakili satu nota. Kemudian, gunakan satu array untuk memasukkan semua frekuensi ke dalamnya. Seterusnya, pernyataan If and else adalah apa yang saya gunakan untuk memberitahu Arduino yang mana suis butang tekan yang saya tekan.
Akhirnya, sambungkan papan Arduino anda ke komputer atau komputer riba anda dengan kabel usb A hingga B. Sebelum memuat naik kod anda, anda masih perlu memuat turun perisian Arduino dan melakukan beberapa tetapan lalai. Pilih Alat -> Papan -> Arduino / Genuino Uno; Maka kita perlu memilih port komunikasi yang disambungkan ke papan Arduino. Pilih Alat -> Pelabuhan, maka nama port mana pun yang dilabel "(Arduino / Genuino Uno)." Kemudian, anda boleh memuat naik kod tersebut ke papan Arduino.
Disyorkan:
Litar Pemasangan SSR Dengan Tombol Tekan: 6 Langkah (dengan Gambar)
SSR Latching Circuit With Push Button: Saya bercadang untuk menambahkan beberapa alat kuasa di bahagian bawah meja kerja saya sehingga saya dapat membuat penghala meja misalnya. Alat-alat akan dipasang dari bahagian bawah pada semacam plat yang boleh ditanggalkan sehingga mereka boleh ditukar ganti. Sekiranya anda berminat untuk melihat
Papan Relay 4CH Dikendalikan Dengan Tombol Tekan: 4 Langkah
Papan Relay 4CH Dikendalikan Dengan Tombol Tekan: Matlamat saya adalah untuk menaik taraf pencetak 3D Anet A8 saya dengan menambahkan kawalan bekalan kuasa melalui antara muka Octoprint. Walaupun begitu, saya juga ingin dapat memulakan " secara manual " pencetak 3D saya, yang bermaksud tidak menggunakan antara muka web tetapi hanya menekan butang
Mikrokontroler AVR. Togol LED Menggunakan Suis Tombol Tekan. Menolak Butang Tekan: 4 Langkah
Mikrokontroler AVR. Togol LED Menggunakan Suis Tombol Tekan. Menolak Butang Tekan: Di bahagian ini, kita akan belajar Cara membuat kod program C untuk ATMega328PU untuk menukar status ketiga LED mengikut input dari tombol suis. Kami juga telah mencari jalan keluar untuk masalah ini ialah 'Switch Bounce'. Seperti biasa, kami
Cara Menghubungkan Tombol Tekan dengan Input dan Keluaran Audio: 13 Langkah
Cara Menghubungkan Tombol Tekan dengan Input dan Keluaran Audio: Butang tekan adalah salah satu komponen asas untuk menangkap tindakan anda. Anda boleh menekan butang untuk melakukan sesuatu secara dinamik. Sudah ada beberapa cara untuk menggunakan butang tekan dalam projek anda (mis. Menggodam tetikus dan papan kekunci, atau Arduino, penerima, MCK). Ini
Tombol Tekan Limpet: 4 Langkah (dengan Gambar)
Limpet Push-Button: Kerang laut dan elektronik - apa yang harus dilakukan dengan semua limpet itu kecuali untuk memasang butang tekan, bateri, pemegang dan motor dan LED di dalamnya. Saya mengambil sedikit masa untuk mengetahui istilah yang tepat untuk cangkang ini. Mereka tempang dan bukan tong sampah, kerana saya atau