Isi kandungan:

Metronome Berasaskan Pengawal Mikro: 5 Langkah
Metronome Berasaskan Pengawal Mikro: 5 Langkah

Video: Metronome Berasaskan Pengawal Mikro: 5 Langkah

Video: Metronome Berasaskan Pengawal Mikro: 5 Langkah
Video: Откуда в Arduino 986 МГц? 2024, Julai
Anonim
Image
Image

Metronome adalah alat pemasa yang digunakan oleh pemuzik untuk mengesan rentak dalam lagu dan untuk mengembangkan rasa waktu di kalangan pemula yang mempelajari instrumen baru. Ini membantu mengekalkan rasa irama yang sangat penting dalam muzik.

Metronome yang dibina di sini dapat digunakan untuk menetapkan jumlah denyut per bar dan rentak per minit. Setelah data persediaan ini dimasukkan, data berbunyi mengikut data yang disertakan dengan pencahayaan yang sesuai menggunakan LED. Data persediaan dipaparkan di layar LCD.

Langkah 1: Komponen yang Diperlukan:

·

  • Mikrokontroler Atmega8A
  • · Paparan 16 * 2 Lcd
  • · Piezo Buzzer
  • · LED (hijau, merah)
  • · Perintang (220e, 330e, 1k, 5.6k)
  • · Pushbutton (2 * anti-locking, 1 * locking)
  • · Bateri Sel Koin 3V CR2032 (* 2)
  • Pemegang Bateri Syiling (* 2)
  • · Penyambung Hubungan (terpolarisasi) 6pin

Langkah 2: Membuat Litar

Lakukan sambungan litar seperti yang ditunjukkan dalam gambar di papan tanda dan solkan sambungan dengan betul

Langkah 3: Ciri-ciri Metronome

Antaramuka metronom terutama dihuni oleh skrin lcd. Di atasnya adalah mikrokontroler 8A yang diletakkan di tengah dengan LED dan buzzer di sebelah kanan. Tiga suis dan penyambung Relimate diletakkan di bahagian atas.

Keseluruhan projek ini dikuasakan oleh dua bateri sel duit syiling sahaja (dalam siri @ 6V 220mAh) dengan jangka masa jangka masa 20 hari hingga 1 bulan (tidak berterusan). Oleh itu, ia cukup cekap kuasa dan mempunyai keperluan semasa 3 - 5 mA.

Suis mengunci diri diletakkan di kiri paling kiri dan merupakan butang ON / OFF. Butang di tengahnya adalah butang Setup dan tombol di sebelah kanan digunakan untuk mengubah nilai bpm dan denyut (per bar).

Apabila suis ON / OFF ditekan, lcd menyala dan memaparkan nilai rentak per bar. Ia menunggu selama 3 saat untuk pengguna menukar nilai dan kemudian mengambil nilai yang dihasilkan sebagai inputnya. Nilai ini berkisar antara 1/4, 2/4, 3/4, 4/4.

Kemudian ia memaparkan denyutan per minit (bpm) dan sekali lagi menunggu selama 3 saat bagi pengguna untuk mengubah nilai setelah itu menetapkan nilai tertentu. Masa menunggu selama 3 saat dikalibrasi setelah pengguna mengubah nilai. Nilai bpm boleh berbeza-beza antara 30 hingga 240. Menekan butang Setup semasa penyediaan bpm menetapkan semula nilainya menjadi 30 bpm yang membantu mengurangkan jumlah klik butang. Nilai bpm adalah gandaan 5.

Setelah persediaan selesai, lampu latar lcd mati untuk menjimatkan bateri. Buzzer berbunyi bip sekali untuk setiap rentak dan LED berkedip satu demi satu untuk setiap rentak. Untuk menukar nilai, butang Setup ditekan. Setelah melakukan itu, lampu latar lcd menyala dan prompt memukul muncul seperti yang disebutkan sebelumnya dengan prosedur yang sama selepas itu.

Mikrokontroler Atmega8A terdiri daripada 500 byte EEPROM yang bermaksud bahawa apa pun nilai rentak dan bpm yang dimasukkan, tetap disimpan walaupun metronome dimatikan. Oleh itu menghidupkannya kembali, menjadikannya disambung semula dengan data yang sama yang dimasukkan sebelumnya.

Penyambung Relimate sebenarnya adalah header SPI yang boleh digunakan untuk dua tujuan. Ia dapat digunakan untuk memprogram ulang mikrokontroler Atmega8A untuk mengemas kini firmware dan menambahkan fitur baru ke metronom. Kedua, bekalan kuasa luaran juga dapat digunakan untuk memberi kuasa kepada metronom untuk pengguna tegar. Tetapi bekalan kuasa ini tidak boleh lebih besar daripada 5.5 volt dan mengatasi suis ON / OFF. Atas sebab keselamatan, suis ini HARUS dimatikan supaya bekalan luaran tidak pendek dengan bateri terpasang.

Langkah 4: Penerangan

Projek ini dibuat menggunakan mikrokontroler Atmel Atmega8A yang diprogramkan menggunakan Arduino IDE melalui Arduino Uno / Mega / Nano yang digunakan sebagai ISP Programmer.

Mikrokontroler ini adalah versi Atmel Atmega328p yang kurang diketengahkan dan digunakan secara meluas di Arduino Uno. Atmega8A terdiri daripada memori 8Kb yang dapat diprogramkan dengan RAM 1Kb. Ia adalah mikrokontroler 8 bit yang berjalan pada frekuensi yang sama dengan 328p iaitu 16Mhz.

Dalam projek ini, kerana penggunaan semasa adalah aspek penting, frekuensi jam telah dikurangkan dan pengayun 1 Mhz dalaman digunakan. Ini sangat mengurangkan keperluan semasa menjadi sekitar 3.5 mA @ 3.3V dan 5mA @ 4.5V.

Arduino IDE tidak mempunyai kemudahan untuk memprogram mikrokontroler ini. Oleh itu, pakej "Minicore" (plugin) dipasang untuk menjalankan 8A dengan pengayun dalamannya menggunakan pemuat boot Optiboot. Telah diperhatikan bahawa keperluan kuasa projek meningkat dengan peningkatan voltan. Oleh itu untuk penggunaan tenaga yang optimum, mikrokontroler ditetapkan untuk dijalankan pada 1 MHz dengan bateri duit syiling 3V tunggal hanya 3.5mA. Tetapi diperhatikan bahawa lcd tidak berfungsi dengan baik pada voltan rendah seperti itu. Oleh itu, keputusan menggunakan dua bateri duit syiling secara bersiri digunakan untuk menaikkan voltan ke 6V. Tetapi ini bermaksud bahawa penggunaan semasa meningkat kepada 15mA yang merupakan kelemahan besar kerana jangka hayat bateri menjadi sangat buruk. Ia juga melebihi had voltan selamat 5.5V mikrokontroler 8A.

Oleh itu perintang 330 ohm dihubungkan secara bersiri dengan bekalan kuasa 6V untuk menyingkirkan masalah ini. Perintang pada dasarnya menyebabkan penurunan voltan untuk menurunkan tahap voltan dalam jarak 5.5V untuk menjalankan mikrokontroler dengan selamat. Selain itu, nilai 330 dipilih dengan mempertimbangkan pelbagai faktor:

  • · Tujuannya adalah untuk menjalankan 8A pada voltan serendah mungkin untuk menjimatkan kuasa.
  • · Diperhatikan bahawa lcd berhenti berfungsi di bawah 3.2V walaupun mikrokontroler masih berfungsi
  • · Nilai 330 ini memastikan voltan yang jatuh di hujungnya tepat tepat untuk menggunakan sepenuhnya bateri duit syiling.
  • · Ketika sel duit syiling berada di puncaknya, voltan sekitar 6.3V, dengan 8A menerima voltan berkesan 4.6 - 4.7 V (@ 5mA). Dan ketika bateri hampir kering, voltan sekitar 4V dengan 8A dan lcd menerima voltan yang cukup iaitu 3.2V untuk berfungsi dengan betul. (@ 3.5mA)
  • · Di bawah tahap bateri 4v, bateri mereka tidak berguna tanpa jus yang tersisa untuk menghidupkan apa-apa. Kejatuhan voltan merintangi perintang berbeza sepanjang masa kerana penggunaan semasa mikrokontroler 8A dan lcd berkurang dengan pengurangan voltan yang pada dasarnya membantu meningkatkan jangka hayat bateri.

LCD 16 * 2 diprogramkan menggunakan perpustakaan LiquidCrystal built-in dari Arduino IDE. Ia menggunakan 6 pin data mikrokontroler 8A. Selain itu, kecerahan dan kontrasnya dikawal menggunakan dua pin data. Ini dilakukan agar tidak menggunakan komponen tambahan iaitu potensiometer. Sebaliknya, fungsi PWM dari pin data D9 digunakan untuk menyesuaikan kontras skrin. Lampu latar lcd juga perlu dimatikan apabila tidak diperlukan, jadi ini tidak mungkin dilakukan tanpa menggunakan pin data untuk mengaktifkannya. Perintang 220 ohm digunakan untuk mengehadkan arus melintasi lampu latar LED.

Buzzer dan LED juga disambungkan ke pin data 8A (satu untuk masing-masing). Perintang 5.6 k ohm digunakan untuk mengehadkan arus melintasi LED merah sementara 1k ohm digunakan untuk lampu hijau. Nilai perintang telah dipilih dengan memperoleh titik manis antara kecerahan dan penggunaan semasa.

Butang ON / OFF tidak disambungkan ke pin data dan hanya suis yang menukar projek. Salah satu terminalnya menyambung ke perintang 330 ohm sementara yang lain menghubungkan ke pin Vcc lcd dan 8A. Dua butang lain dihubungkan ke pin data yang ditarik secara dalaman untuk membekalkan voltan melalui perisian. Ini diperlukan untuk kerja suis.

Selain itu pin data, yang disambungkan oleh butang Setup, adalah pin Hardware Interrupt. Rutin perkhidmatan gangguannya (ISR) diaktifkan di Arduino IDE. Maksudnya adalah bahawa setiap kali pengguna ingin menjalankan menu persediaan, 8A menangguhkan operasinya yang sekarang berfungsi sebagai metronom, dan menjalankan ISR yang pada dasarnya mengaktifkan menu Persediaan. Jika tidak, pengguna tidak dapat mengakses menu Persediaan.

Pilihan EEPROM yang disebutkan sebelumnya memastikan bahawa data yang dimasukkan tetap disimpan walaupun papan dimatikan. Dan tajuk SPI terdiri daripada 6 pin - Vcc, Gnd, MOSI, MISO, SCK, RST. Ini adalah sebahagian daripada protokol SPI dan seperti yang disebutkan sebelumnya, pengaturcara ISP dapat digunakan untuk memprogram ulang 8A untuk menambahkan fitur baru atau yang lain. Pin Vcc diasingkan dari terminal positif bateri dan oleh itu Metronome memberikan pilihan untuk menggunakan bekalan kuasa luaran dengan mengingat sekatan yang disebutkan sebelumnya.

Keseluruhan projek ini dibina di Veroboard dengan menyolder komponen individu dan sambungan yang sesuai mengikut gambarajah litar.

Disyorkan: