Daftar Isi:

Metronom Berbasis Mikrokontroler: 5 Langkah
Metronom Berbasis Mikrokontroler: 5 Langkah

Video: Metronom Berbasis Mikrokontroler: 5 Langkah

Video: Metronom Berbasis Mikrokontroler: 5 Langkah
Video: Cara Upload Program Rangkaian Running LED Berbasis Mikrokontroler ATMEGA 8535 2024, Juli
Anonim
Image
Image

Metronom adalah alat pengatur waktu yang digunakan oleh musisi untuk melacak ketukan dalam lagu dan untuk mengembangkan rasa pengaturan waktu di antara pemula yang sedang mempelajari alat musik baru. Ini membantu untuk mempertahankan rasa ritme yang sangat penting dalam musik.

Metronom yang dibangun di sini dapat digunakan untuk mengatur jumlah ketukan per bar dan ketukan per menit. Setelah data pengaturan ini dimasukkan, akan berbunyi bip sesuai data disertai dengan pencahayaan yang sesuai menggunakan LED. Data setup ditampilkan di layar LCD.

Langkah 1: Komponen yang Diperlukan:

·

  • Mikrokontroler Atmega8A
  • · Layar LCD 16*2
  • · Piezo Buzzer
  • · LED (hijau, merah)
  • · Resistor (220e, 330e, 1k, 5.6k)
  • · Tombol tekan (2 * anti-penguncian, 1 * penguncian)
  • · Baterai Sel Koin 3V CR2032 (*2)
  • Tempat Baterai Koin (*2)
  • · Konektor Relimate 6pin (terpolarisasi)

Langkah 2: Membuat Sirkuit

Buat koneksi sirkuit seperti yang ditunjukkan pada gambar di veroboard dan solder koneksi dengan benar

Langkah 3: Fitur Metronom

Antarmuka metronom terutama ditempati oleh layar lcd. Di atasnya terdapat mikrokontroler 8A yang ditempatkan di tengah dengan LED dan buzzer di sebelah kanan. Tiga sakelar dan konektor Relimate ditempatkan di bagian atas.

Seluruh proyek ini ditenagai oleh dua baterai sel koin saja (dalam seri @6V 220mAh) dengan perkiraan runtime 20 hari hingga 1 bulan (tidak terus menerus). Oleh karena itu cukup hemat daya dan memiliki kebutuhan arus 3 – 5 mA.

Sakelar pengunci otomatis ditempatkan di paling kiri dan merupakan tombol ON/OFF. Tombol di tengah adalah tombol Setup dan tombol di sebelah kanan digunakan untuk mengubah nilai bpm dan ketukan (per bar).

Saat tombol ON/OFF ditekan, lcd menyala dan menampilkan nilai ketukan per bar. Itu menunggu selama 3 detik bagi pengguna untuk mengubah nilai setelah itu mengambil nilai yang dihasilkan sebagai inputnya. Nilai ini berkisar antara 1/4, 2/4, 3/4, 4/4.

Kemudian ia menampilkan ketukan per menit (bpm) dan sekali lagi menunggu selama 3 detik bagi pengguna untuk mengubah nilai setelah itu menetapkan nilai tertentu. Waktu tunggu 3 detik ini dikalibrasi setelah pengguna mengubah nilai. Nilai bpm dapat bervariasi dari 30 hingga 240. Menekan tombol Pengaturan selama pengaturan bpm akan menyetel ulang nilainya menjadi 30 bpm yang membantu mengurangi jumlah klik tombol. Nilai bpm adalah kelipatan 5.

Setelah pengaturan selesai, lampu latar lcd mati untuk menghemat baterai. Buzzer berbunyi bip sekali untuk setiap ketukan dan LED berkedip satu per satu secara bergantian untuk setiap ketukan. Untuk mengubah nilai, tombol Setup ditekan. Setelah melakukan itu, lampu latar lcd menyala dan prompt ketukan muncul seperti yang disebutkan sebelumnya dengan prosedur yang sama setelahnya.

Mikrokontroler Atmega8A terdiri dari 500 byte EEPROM yang berarti bahwa berapa pun nilai ketukan dan bpm yang dimasukkan, tetap tersimpan bahkan setelah metronom dimatikan. Karenanya menyalakannya kembali, membuatnya melanjutkan dengan data yang sama yang dimasukkan sebelumnya.

Konektor Relimate sebenarnya adalah header SPI yang dapat digunakan untuk dua tujuan. Ini dapat digunakan untuk memprogram ulang mikrokontroler Atmega8A untuk memperbarui firmware dan menambahkan fitur baru ke metronom. Kedua, catu daya eksternal juga dapat digunakan untuk menyalakan metronom untuk pengguna hardcore. Tetapi catu daya ini tidak boleh lebih besar dari 5,5 volt dan menggantikan sakelar ON/OFF. Untuk alasan keamanan, sakelar ini HARUS dimatikan agar suplai eksternal tidak kekurangan baterai internal.

Langkah 4: Deskripsi

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

Mikrokontroler ini adalah versi fitur yang lebih rendah dari Atmel Atmega328p yang digunakan secara luas di Arduino Uno. Atmega8A terdiri dari memori yang dapat diprogram 8Kb dengan RAM 1Kb. Ini adalah mikrokontroler 8 bit yang berjalan pada frekuensi yang sama dengan 328p yaitu 16Mhz.

Dalam proyek ini, karena konsumsi arus merupakan aspek penting, frekuensi clock telah dikurangi dan osilator internal 1 Mhz digunakan. Ini sangat mengurangi kebutuhan arus menjadi sekitar 3,5 mA @3.3V dan 5mA @4.5V.

Arduino IDE tidak memiliki fasilitas untuk memprogram mikrokontroler ini. Oleh karena itu paket "Minicore" (plugin) diinstal untuk menjalankan 8A dengan osilator internalnya menggunakan bootloader Optiboot. Terlihat bahwa kebutuhan daya proyek meningkat dengan meningkatnya tegangan. Oleh karena itu untuk pemanfaatan daya yang optimal, mikrokontroler diatur untuk dijalankan pada 1 MHz dengan baterai koin 3V tunggal yang hanya 3,5mA. Tetapi diamati bahwa lcd tidak berfungsi dengan baik pada tegangan rendah seperti itu. Oleh karena itu keputusan untuk menggunakan dua baterai koin secara seri diterapkan untuk menaikkan tegangan menjadi 6V. Tetapi ini berarti bahwa konsumsi arus meningkat menjadi 15mA yang merupakan kelemahan besar karena masa pakai baterai akan menjadi sangat buruk. Juga melebihi batas tegangan aman 5.5V dari mikrokontroler 8A.

Oleh karena itu resistor 330 ohm dihubungkan secara seri dengan catu daya 6V untuk menghilangkan masalah ini. Resistor pada dasarnya menyebabkan penurunan tegangan pada dirinya sendiri untuk menurunkan level tegangan dalam 5.5V untuk menjalankan mikrokontroler dengan aman. Selain itu nilai 330 dipilih dengan mempertimbangkan berbagai faktor:

  • · Tujuannya adalah untuk menjalankan 8A pada tegangan serendah mungkin untuk menghemat daya.
  • · Terlihat bahwa lcd berhenti bekerja di bawah 3.2V meskipun mikrokontroler masih berfungsi
  • · Nilai 330 ini memastikan bahwa penurunan tegangan pada titik ekstrem akurat untuk memanfaatkan baterai koin sepenuhnya.
  • · Ketika sel koin berada pada puncaknya, tegangannya sekitar 6,3V, dengan 8A menerima tegangan efektif 4,6 – 4,7 V (@ 5mA). Dan ketika baterai hampir kering, tegangannya sekitar 4V dengan 8A dan lcd menerima tegangan yang cukup yaitu 3.2V untuk berfungsi dengan benar. (@3.5mA)
  • · Di bawah level 4v baterai, mereka secara efektif tidak berguna tanpa ada sisa daya untuk menyalakan apa pun. Penurunan tegangan melintasi resistor bervariasi sepanjang waktu karena konsumsi arus mikrokontroler 8A dan lcd berkurang dengan mengurangi tegangan yang pada dasarnya membantu meningkatkan masa pakai baterai.

LCD 16*2 diprogram menggunakan perpustakaan LiquidCrystal bawaan dari Arduino IDE. Ini menggunakan 6 pin data dari mikrokontroler 8A. Selain itu, kecerahan dan kontrasnya dikontrol menggunakan dua pin data. Hal ini dilakukan agar tidak menggunakan komponen tambahan yaitu potensiometer. Sebagai gantinya, fungsi PWM dari pin data D9 digunakan untuk mengatur kontras layar. Juga lampu latar lcd harus dimatikan saat tidak diperlukan, jadi ini tidak akan mungkin terjadi tanpa menggunakan pin data untuk menyalakannya. Sebuah resistor 220 ohm digunakan untuk membatasi arus melintasi LED lampu latar.

Buzzer dan LED juga terhubung ke pin data 8A (masing-masing satu). Sebuah resistor 5,6 k ohm digunakan untuk membatasi arus melintasi LED merah sementara 1k ohm digunakan untuk yang hijau. Nilai resistor telah dipilih dengan memperoleh sweet spot antara kecerahan dan konsumsi arus.

Tombol ON/OFF tidak terhubung ke pin data dan hanya tombol yang mengalihkan proyek. Salah satu terminalnya terhubung ke resistor 330 ohm sementara yang lain terhubung ke pin Vcc dari lcd dan 8A. Dua tombol lainnya terhubung ke pin data yang ditarik secara internal untuk memasok tegangan melalui perangkat lunak. Ini diperlukan untuk pengoperasian sakelar.

Selain itu, pin data, yang terhubung dengan tombol Pengaturan, adalah pin Interupsi Perangkat Keras. Rutin layanan interupsi (ISR) diaktifkan di Arduino IDE. Artinya, setiap kali pengguna ingin menjalankan menu pengaturan, 8A menangguhkan operasinya yang sekarang bekerja sebagai metronom, dan menjalankan ISR yang pada dasarnya mengaktifkan menu Pengaturan. Jika tidak, pengguna tidak akan dapat mengakses menu Setup.

Opsi EEPROM yang disebutkan sebelumnya memastikan bahwa data yang dimasukkan tetap tersimpan bahkan setelah papan dimatikan. Dan header SPI terdiri dari 6 pin – Vcc, Gnd, MOSI, MISO, SCK, RST. Ini adalah bagian dari protokol SPI dan seperti yang disebutkan sebelumnya, programmer ISP dapat digunakan untuk memprogram 8A lagi untuk menambahkan fitur baru atau apa pun. Pin Vcc diisolasi dari terminal positif baterai dan karenanya Metronom menyediakan opsi untuk menggunakan catu daya eksternal dengan mengingat batasan yang disebutkan sebelumnya.

Seluruh proyek dibangun di Veroboard dengan menyolder komponen individu dan koneksi yang sesuai sesuai dengan diagram sirkuit.

Direkomendasikan: