Daftar Isi:

Pengukur VU Analog Berkemampuan Bluetooth: 6 Langkah
Pengukur VU Analog Berkemampuan Bluetooth: 6 Langkah

Video: Pengukur VU Analog Berkemampuan Bluetooth: 6 Langkah

Video: Pengukur VU Analog Berkemampuan Bluetooth: 6 Langkah
Video: Detik-Detik Pegawai PLN Kesetrum di Tiang Listrik 2024, November
Anonim
Pengukur VU Analog Berkemampuan Bluetooth
Pengukur VU Analog Berkemampuan Bluetooth

Ini adalah proyek saya untuk salah satu kelas universitas saya yang disebut SMP. Saat kami menggunakan papan pengembangan STM32F103RB, saya mendasarkan proyek saya pada ini, mulai dari VU meter sederhana. Saya kemudian menambahkan beberapa fitur tambahan seperti dukungan Bluetooth untuk menyiarkan nilai dari ADC ke aplikasi Android untuk membuat bagan dB sederhana.

Langkah 1: Komponen yang Digunakan

  • Papan pengembangan STM32F103RB
  • Modul bluetooth HC-05 zs040
  • Panel meteran VU analog (tautan)
  • Mikrofon listrik
  • LM324N quad op-amp
  • 2 transistor TIP120
  • 3 1N4148 dioda
  • Berbagai kapasitor dan resistor

Meskipun Anda dapat menggerakkan sirkuit ini dari rel 5V papan, saya juga menggunakan catu daya 5V eksternal.

Langkah 2: Pengikut Amplop

Pengikut Amplop
Pengikut Amplop
Pengikut Amplop
Pengikut Amplop

Bagian utama dari desain ini adalah pengikut amplop yang mengambil sinyal dari mikrofon electret dan mengeluarkan tegangan yang sebanding dengan amplitudo sinyal mikrofon.

Sinyal mentah dari mikrofon pertama-tama dilewatkan melalui amplifier dengan penguatan 150.

Sinyal kemudian dilewatkan melalui pengikut amplop aktual yang seharusnya hanya mengeluarkan bagian sinyal positif.

Bagian terakhir adalah mengurangi tegangan offset 1,65V dari output pengikut amplop untuk memberikan sinyal 0 V untuk tidak ada suara, 1,65 V untuk suara sedang dan 3,3 V untuk suara keras yang harus kompatibel dengan built in ADC dari dewan.

Pengikut amplop ini diimplementasikan dari jawaban StackExchange yang hebat ini.

Langkah 3: PWM untuk Analog Meter

Untuk menjalankan jarum pengukur, saya telah mengonfigurasi timer TIM4 dari papan mikrokontroler dengan frekuensi sekitar 500 Hz.

Dengan mencoba siklus tugas yang berbeda secara berturut-turut, saya telah menyelesaikan beberapa nilai yang cukup untuk membuat jarum bergerak dari 0 hingga 100.

Saya akan merinci proses menampilkan nilai yang tepat di langkah berikutnya dengan menerapkan beberapa matematika.

Langkah 4: Kalibrasi Mikrofon

Kalibrasi Mikrofon
Kalibrasi Mikrofon
Kalibrasi Mikrofon
Kalibrasi Mikrofon

Setelah pengikut amplop selesai, saya kemudian menulis beberapa kode sederhana untuk menggunakan ADC dan memverifikasi bahwa nilai baca memang berubah sesuai dengan kenyaringan di dalam ruangan.

Untuk "menerjemahkan" nilai ini menjadi pembacaan dB yang sebenarnya, saya telah menggunakan generator nada online dengan frekuensi 550 Hz dan Android saya untuk menyediakan pembacaan referensi.

Saya telah memplot nilai-nilai itu dan menggunakan Curve Fit Tool MatLAB untuk mendapatkan fungsi yang memetakan pembacaan ADC ke perkiraan aktual level dB (atau setidaknya cukup dekat dengan pembacaan ponsel saya).

Kita dapat melihat bahwa ini mengikuti skala logaritmik mikrofon.

Saya juga melakukan hal yang sama untuk memetakan posisi jarum ke nilai PWM. Saya mengumpulkan nilai-nilai itu dengan menambah nilai PWM sebanyak 10 berturut-turut sampai kebutuhan mencapai pembacaan pada skalanya.

Menggabungkan 2 fungsi tersebut, saya mendapatkan cara mudah untuk menampilkan pembacaan dari ADC ke nilai aktual pada indikator pengukur.

Langkah 5: Aplikasi Android

Aplikasi ini menggunakan perpustakaan keren ini untuk berkomunikasi melalui serial Bluetooth untuk bertukar info byte.

Peringatan utama dari sistem ini adalah bahwa panjang kata maksimum yang dikirim melalui Bluetooth adalah 8 bit dan nilai ADC direpresentasikan sebagai 12 bit. Untuk mengatasi masalah ini, saya membagi satu nilai ADC menjadi 2 nilai 6 bit terpisah (MSB dan LSB) dengan sisa 2 bit digunakan untuk mengidentifikasi jenis pesan (MSB, LSB, CHK).

Oleh karena itu, untuk satu nilai ADC yang ingin kami broadcast, kami membagi nilai sebenarnya menjadi 2 pesan. Untuk memeriksa integritas pesan-pesan itu, saya mengirim pesan ketiga dengan XOR dari 2 pesan pertama.

Setelah integritas nilai diperiksa, kita dapat menerapkan fungsi yang sama untuk mendapatkan level dB dan memplotnya ke grafik langsung kita.

Langkah 6: Ringkasan

Sementara saya bagian mikro-kontroler dari proyek ini berfungsi cukup baik menampilkan kenyaringan di dalam ruangan, saya mengalami beberapa masalah saat mengirim data melalui Bluetooth karena kehilangan paket.

Kode sumber untuk proyek ini dapat ditemukan di sini:

  • Aplikasi pendamping Android - repo
  • Kode mikrokontroler - repo

Jangan ragu untuk berkontribusi jika Anda merasa ini berguna dengan cara apa pun.

Direkomendasikan: