coseru.id - Coding asik & Seru

🔍 Cari Materi & Kelas

Elektronika Tingkat: Pemula Estimasi: 2 Jam 4 x dilihat

Metronom Digital Arduino dengan LED dan Layar OLED

Metronom Digital Arduino dengan LED dan Layar OLED

Ringkasan Proyek

Proyek ini membuat metronom digital menggunakan Arduino Nano, delapan LED, dua active buzzer, potensiometer, dan layar OLED 128x64. Kecepatan ketukan dapat diatur melalui potensiometer, sementara LED bergerak bolak-balik seperti pendulum dan layar menampilkan tempo dalam satuan BPM (beats per minute). Perangkat ini dapat membantu pemula berlatih musik dengan tempo yang lebih konsisten.

Bahan & Komponen

Daftar perangkat keras, modul, dan tools yang dibutuhkan untuk merakit proyek ini.

Daftar Komponen & Perangkat Keras

  • 1x Arduino Nano R3 (Mikrokontroler yang mengatur tempo, pergerakan LED, buzzer, dan tampilan OLED)
  • 1x OLED Display 128x64, 0.96 inci, I2C (Layar untuk menampilkan logo, nama perangkat, dan nilai BPM; menggunakan driver SSD1306)
  • 8x LED (Indikator visual yang bergerak maju dan mundur seperti pendulum metronom)
  • 2x Active Buzzer (Menghasilkan bunyi ketukan sebagai penanda tempo)
  • 1x Potensiometer geser 10–100 kΩ (Mengatur kecepatan ketukan atau tempo metronom)
  • 1x Resistor 470 ohm (Pembatas arus pada rangkaian LED sesuai rancangan pembuat)
  • 1x Breadboard dan kabel jumper (Untuk merangkai komponen; jenis breadboard dan jumlah kabel tidak dirinci dalam daftar komponen utama)

Perangkat Lunak

  • Arduino IDE (Untuk menulis dan mengunggah program ke Arduino Nano)
  • Adafruit GFX Library (Library grafis untuk menggambar teks dan bitmap pada OLED)
  • Adafruit SSD1306 Library (Library untuk mengendalikan layar OLED berbasis driver SSD1306)
  • SPI dan Wire (Library komunikasi yang disertakan dalam lingkungan Arduino; Wire digunakan untuk komunikasi I2C dengan OLED)

Peralatan Perakitan

  • 1x Soldering iron (Solder untuk menyambungkan komponen jika menggunakan PCB atau sambungan permanen)
  • 1x Solder wire lead-free (Timah solder bebas timbal)

Catatan komponen: Daftar komponen Hackster menampilkan rotary potentiometer generik, sedangkan penjelasan proyek menyebut slide potentiometer atau potensiometer geser bernilai 10–100 kΩ. Ikuti jenis potensiometer geser yang dijelaskan dalam cerita proyek. Pembuat juga menyebut delapan LED, dua active buzzer, dan satu resistor 470 ohm. Rancangan resistor tunggal pada common cathode merupakan pilihan pembuat; untuk rangkaian LED yang lebih aman dan konsisten, penggunaan resistor pembatas arus tersendiri pada setiap LED dapat dipertimbangkan.

Langkah Pembuatan

Khusus Member

Panduan perakitan tahap demi tahap dan catatan proses pengerjaan.

Metronom adalah alat bantu musik yang menghasilkan ketukan teratur untuk membantu pemain musik menjaga tempo. Pada proyek ini, gerakan pendulum mekanis disimulasikan menggunakan delapan LED yang menyala secara bergantian. Potensiometer digunakan untuk mengatur kecepatan gerakan, dua active buzzer menghasilkan bunyi ketukan, dan layar OLED menampilkan tempo dalam BPM (beats per minute).

\"MetronomTampilan proyek metronom digital Arduino yang dibuat oleh Mirko Pavleski.

Langkah 1: Siapkan Komponen

Siapkan Arduino Nano, delapan LED, dua active buzzer, potensiometer geser dengan nilai 10–100 kΩ, resistor 470 ohm, dan OLED 128x64 berbasis SSD1306. Siapkan juga kabel jumper serta breadboard atau PCB untuk menyusun rangkaian.

Langkah 2: Susun Delapan LED

Pasang delapan LED secara berurutan sehingga dapat membentuk gerakan visual seperti pendulum. Dalam program, LED dikendalikan melalui pin digital D2 sampai D9. LED akan menyala satu per satu dari urutan pertama menuju urutan terakhir, kemudian kembali dari urutan terakhir menuju urutan pertama. Pembuat menggunakan satu resistor 470 ohm pada jalur common cathode ke GND karena hanya satu LED yang aktif pada satu waktu. Untuk perakitan pemula, perhatikan bahwa penggunaan satu resistor bersama dapat membuat tingkat kecerahan LED berbeda; resistor tersendiri pada setiap LED merupakan pendekatan yang lebih mudah diprediksi.

Langkah 3: Hubungkan Potensiometer Geser

Potensiometer digunakan untuk mengatur tempo. Hubungkan terminal tengah (wiper) potensiometer ke pin analog A0 Arduino Nano. Hubungkan kedua terminal luar ke 5V dan GND. Ketika posisi slider berubah, tegangan pada A0 ikut berubah sehingga Arduino memperoleh nilai analog antara 0 sampai 1023. Program kemudian mengubah nilai tersebut menjadi jeda waktu untuk gerakan LED dan nilai BPM.

Langkah 4: Hubungkan Dua Active Buzzer

Proyek menggunakan dua active buzzer untuk menghasilkan bunyi ketukan. Penjelasan pembuat menyebut buzzer dihubungkan langsung ke pin D2 dan D9. Kedua pin tersebut juga termasuk dalam rentang D2 sampai D9 yang digunakan program untuk mengendalikan delapan LED. Hal ini merupakan konflik pin pada kode dan deskripsi rangkaian yang perlu diperhatikan sebelum merakit. Jika buzzer dan LED benar-benar menggunakan pin yang sama, keduanya dapat saling mengganggu. Untuk implementasi yang lebih andal, gunakan pin terpisah untuk buzzer dan sesuaikan program serta pemetaan LED.

Langkah 5: Hubungkan Layar OLED

Gunakan OLED 128x64 dengan driver SSD1306 dan antarmuka I2C. Pada Arduino Nano klasik, hubungkan VCC OLED ke 5V sesuai spesifikasi modul, GND ke GND, SDA ke A4, dan SCL ke A5. Program menggunakan alamat I2C 0x3C. Jika layar tidak menampilkan apa pun, periksa tegangan kerja modul, sambungan SDA/SCL, serta alamat I2C yang digunakan.

Langkah 6: Siapkan Arduino IDE dan Library

Buka Arduino IDE dan pasang Adafruit GFX Library serta Adafruit SSD1306 Library melalui Library Manager. Program juga menggunakan SPI.h dan Wire.h. Pilih board Arduino Nano dan port yang sesuai dengan perangkat yang terhubung ke komputer.

Langkah 7: Unggah Program ke Arduino Nano

Masukkan kode Arduino dari bagian kode proyek ke Arduino IDE. Program menginisialisasi OLED, menampilkan bitmap logo dan nama perangkat selama beberapa detik, kemudian mengatur pin digital D2 sampai D9 sebagai OUTPUT. Setelah program berhasil diunggah, layar akan menampilkan informasi awal sebelum masuk ke tampilan tempo.

Langkah 8: Atur Tempo Menggunakan Potensiometer

Putar atau geser potensiometer untuk mengubah nilai analog yang dibaca dari A0. Program memetakan nilai analog 0–1023 menjadi jeda 20–125 milidetik. Nilai jeda tersebut kemudian dipetakan menjadi tempo sekitar 160–60 BPM. Pada program asli, nilai analog yang lebih besar menghasilkan jeda lebih panjang dan BPM lebih rendah. Dengan demikian, gerakan LED menjadi lebih lambat ketika potensiometer digeser ke arah nilai analog yang lebih tinggi.

Langkah 9: Amati Gerakan LED dan Bunyi Ketukan

Delapan LED menyala secara berurutan dari D2 hingga D9. Setelah mencapai LED terakhir, urutan dibalik dari D9 menuju D2. Pola ini menghasilkan efek gerakan bolak-balik seperti pendulum atau efek Knight Rider. Dua active buzzer dimaksudkan untuk memberikan bunyi pada posisi ketukan tertentu. Perhatikan bahwa program yang dipublikasikan hanya mengatur pin D2 sampai D9 sebagai output dan tidak memiliki perintah khusus digitalWrite untuk buzzer yang terpisah. Oleh sebab itu, fungsi bunyi buzzer sebagaimana dijelaskan dalam cerita proyek perlu diverifikasi melalui rangkaian dan revisi pemetaan pin.

Langkah 10: Baca Nilai BPM pada OLED

Layar OLED menampilkan tulisan BPM dan angka tempo yang dihitung dari posisi potensiometer. Satuan /min juga ditampilkan untuk menunjukkan jumlah ketukan per menit. Serial Monitor dapat digunakan untuk memantau nilai BPM melalui komunikasi Serial dengan Baud Rate 9600.

Langkah 11: Uji dan Sesuaikan Rangkaian

Ubah posisi potensiometer secara bertahap dan amati perubahan angka BPM serta kecepatan gerakan LED. Pastikan layar OLED menampilkan nilai yang berubah, LED bergerak berurutan, dan buzzer bekerja sesuai rancangan. Jika ingin mengubah rentang tempo atau jumlah LED, sesuaikan fungsi map() dan batas perulangan pada program. Pastikan juga konflik pin antara LED dan buzzer diselesaikan sebelum rangkaian digunakan.

\"DiagramDiagram skematik rangkaian metronom digital dari dokumentasi Hackster.io.

Catatan teknis: Program asli menampilkan logo bitmap pada OLED dan menjalankan LED menggunakan delay(). Karena delay() menghentikan proses utama sementara, pembacaan potensiometer dan pembaruan tampilan tidak berlangsung terus-menerus selama rangkaian LED sedang bergerak. Untuk pengembangan lanjutan, penggunaan millis() dapat membuat pembacaan input dan pembaruan tampilan lebih responsif. Kode yang tersedia juga belum secara eksplisit mengendalikan kedua buzzer.

🔒
Akses Gratis Khusus Member

Buka Seluruh Panduan, Skema & Source Code

Dapatkan akses penuh ke langkah perakitan detail, diagram sirkuit lengkap, dan source code siap pakai. Gratis selamanya!

✓ Akses Gratis Selamanya
✓ Copy-Paste Source Code
✓ Kembali Otomatis ke Proyek

Petualangan Belajar di coseru

💡 Saksikan keseruan anak-anak belajar merakit robot dan coding! Daftar Kelas Uji Coba →