- Bahan yang Dibutuhkan:
- Diagram Sirkuit:
- Menggunakan Metode Regresi untuk Menghitung dB dari Nilai ADC:
- Program Arduino untuk mengukur tingkat Suara dalam dB:
- Cara Kerja Pengukur Tingkat Suara Arduino:
- Amplifier dengan Sirkuit Filter:
Polusi suara benar-benar mulai menjadi penting karena kepadatan penduduk yang tinggi. Telinga manusia normal dapat mendengar tingkat suara dari 0dB hingga 140dB di mana tingkat suara dari 120dB hingga 140dB dianggap sebagai kebisingan. Tingkat kenyaringan atau suara biasanya diukur dalam desibel (dB), kami memiliki beberapa instrumen yang dapat mengukur sinyal suara dalam dB tetapi pengukur ini agak mahal dan sayangnya kami tidak memiliki modul sensor out of box untuk mengukur tingkat suara dalam desibel. Dan tidak ekonomis untuk membeli mikrofon mahal untuk proyek Arduino kecil yang harus mengukur tingkat suara di ruang kelas atau ruang tamu kecil.
Jadi dalam proyek ini kita akan menggunakan mikrofon Kondensor Electret normal dengan Arduino dan mencoba mengukur tingkat polusi suara atau kebisingan dalam dB sedekat mungkin dengan nilai sebenarnya. Kami akan menggunakan rangkaian penguat normal untuk memperkuat sinyal suara dan memasukkannya ke Arduino di mana kami akan menggunakan metode regresi untuk menghitung sinyal suara dalam dB. Untuk mengecek apakah nilai yang didapat sudah benar kita bisa menggunakan aplikasi android “Sound Meter”, jika Anda memiliki meteran yang lebih baik Anda bisa menggunakannya untuk kalibrasi. Perhatikan bahwa proyek ini tidak bertujuan untuk mengukur dB secara akurat dan hanya akan memberikan nilai sedekat mungkin dengan nilai sebenarnya.
Bahan yang Dibutuhkan:
- Arduino UNO
- Mikropon
- LM386
- POT variabel 10K
- Resistor dan Kapasitor
Diagram Sirkuit:
Rangkaian untuk Pengukur Level Suara Arduino ini sangat sederhana dimana kami telah menggunakan rangkaian penguat Audio LM386 untuk memperkuat sinyal dari mikrofon kondensor dan mensuplai ke port Analog Arduino. Kami telah menggunakan IC LM386 ini untuk membangun Rangkaian penguat audio tegangan rendah dan rangkaiannya kurang lebih tetap sama.
Gain dari op-amp khusus ini dapat diatur dari 20 hingga 200 menggunakan resistor atau kapasitor di pin 1 dan 8. Jika dibiarkan bebas, gain akan ditetapkan sebagai 20 secara default. Untuk proyek kami, kami mendapatkan keuntungan maksimum yang dimungkinkan oleh rangkaian ini, jadi kami menggunakan kapasitor bernilai 10uF antara pin 1 dan 8, perhatikan bahwa pin ini sensitif polaritas dan pin negatif kapasitor harus dihubungkan ke pin 8. Penguat lengkap sirkuit ini didukung oleh pin 5V dari Arduino.
Kapasitor C2 digunakan untuk memfilter gangguan DC dari Mikrofon. Pada dasarnya ketika mikrofon mendeteksi suara, gelombang suara akan diubah menjadi sinyal AC. Sinyal AC ini mungkin memiliki beberapa gangguan DC yang digabungkan dengannya yang akan disaring oleh kapasitor ini. Demikian pula, bahkan setelah amplifikasi kapasitor C3 digunakan untuk menyaring kebisingan DC yang mungkin telah ditambahkan selama amplifikasi.
Menggunakan Metode Regresi untuk Menghitung dB dari Nilai ADC:
Setelah kita siap dengan rangkaian kita, kita dapat menghubungkan Arduino ke komputer dan mengunggah program Contoh "Analog Read Serial" dari Arduino untuk memeriksa apakah kita mendapatkan nilai ADC yang valid dari mikrofon kita. Sekarang kita harus mengubah nilai ADC ini menjadi dB.
Tidak seperti nilai lain seperti mengukur suhu atau kelembapan, mengukur dB bukanlah tugas yang mudah. Karena nilai dB tidak linier dengan nilai ADC. Ada beberapa cara di mana Anda dapat mencapai tetapi setiap langkah yang mungkin saya coba tidak memberi saya hasil yang baik. Anda dapat membaca forum Arduino ini di sini jika Anda ingin mencobanya.
Untuk aplikasi saya, saya tidak membutuhkan banyak akurasi saat mengukur nilai dB dan karenanya memutuskan untuk menggunakan cara yang lebih mudah untuk mengkalibrasi langsung nilai ADC dengan nilai dB. Untuk metode ini, kita memerlukan pengukur SPL (Pengukur SPL adalah instrumen yang dapat membaca nilai dB dan menampilkannya), tetapi sayangnya saya tidak memilikinya dan pasti sebagian besar dari kita tidak. Jadi kita bisa menggunakan aplikasi android bernama “Sound meter” yang bisa diunduh dari play store secara gratis. Ada banyak jenis aplikasi seperti itu dan Anda dapat mengunduh apa pun pilihan Anda. Aplikasi ini menggunakan mikrofon inbuilt ponsel untuk mendeteksi tingkat kebisingan dan menampilkannya di ponsel kita. Mereka tidak terlalu akurat, tapi pasti akan berhasil untuk tugas kita. Jadi mari kita mulai dengan menginstal aplikasi Android, milik saya ketika dibuka terlihat seperti ini di bawah ini
Seperti yang saya katakan sebelumnya, hubungan antara dB dan nilai Analog tidak akan linier sehingga kita perlu membandingkan kedua nilai ini pada interval yang berbeda. Catat saja nilai ADC yang ditampilkan di layar untuk berbagai dB yang ditampilkan di ponsel Anda. Saya mengambil sekitar 10 bacaan dan mereka terlihat seperti ini di bawah, Anda mungkin sedikit berbeda
Buka halaman excel dan ketik nilai-nilai ini, untuk saat ini kita akan menggunakan Excel untuk mencari nilai regresi untuk angka di atas. Sebelum itu mari kita plot grafik dan memeriksa bagaimana keduanya berhubungan, milik saya terlihat seperti ini di bawah ini.
Seperti yang dapat kita lihat, nilai dB tidak terkait secara linier dengan ADC, artinya Anda tidak dapat memiliki pengali yang sama untuk semua nilai ADC untuk mendapatkan nilai dB yang setara. Dalam kasus seperti itu kita dapat menggunakan metode "regresi linier". Pada dasarnya, ini akan mengubah garis biru tidak beraturan ini menjadi garis lurus terdekat (garis hitam) dan memberi kita persamaan garis lurus tersebut. Persamaan ini dapat digunakan untuk mencari nilai ekuivalen dB untuk setiap nilai ADC yang diukur Arduino.
Di excel kami memiliki plug-in untuk analisis data yang secara otomatis akan menghitung regresi untuk kumpulan nilai Anda dan mempublikasikan datanya. Saya tidak akan membahas bagaimana melakukannya dengan excel karena di luar cakupan proyek ini, juga mudah bagi Anda untuk Google dan mempelajarinya. Setelah Anda menghitung nilai regresi, excel akan memberikan beberapa nilai seperti yang ditunjukkan di bawah ini. Kami hanya tertarik pada angka-angka yang disorot di bawah ini.
Setelah Anda mendapatkan angka-angka ini, Anda akan dapat membentuk persamaan di bawah ini
ADC = (11.003 * dB) - 83.2073
Dari mana Anda bisa mendapatkan dB menjadi
dB = (ADC + 83,2073) / 11,003
Anda mungkin harus menjalankan persamaan Anda sendiri karena kalibrasi mungkin berbeda. Namun, simpan nilai ini dengan aman karena kami akan membutuhkannya saat memprogram Arduino.
Program Arduino untuk mengukur tingkat Suara dalam dB:
Program lengkap untuk mengukur dB diberikan di bawah ini, beberapa baris penting dijelaskan di bawah ini
Dalam dua baris di atas, kita membaca nilai ADC dari pin A0 dan mengubahnya menjadi dB menggunakan persamaan yang baru saja kita turunkan. Nilai dB ini mungkin tidak kami akurat dengan nilai dB yang sebenarnya, tetapi tetap cukup dekat dengan nilai yang ditampilkan pada aplikasi seluler.
adc = analogRead (MIC); // Baca nilai ADC dari amplifer dB = (adc + 83.2073) / 11.003; // Ubah nilai ADC menjadi dB menggunakan nilai Regresi
Untuk memeriksa apakah program berfungsi dengan baik, kami juga menambahkan LED ke pin digital 3 yang dibuat menjadi tinggi selama 1 detik ketika Arduino mengukur suara keras di atas 60dB.
if (dB> 60) {digitalWrite (3, HIGH); // nyalakan LED pada penundaan (TINGGI adalah level voltase) (1000); // tunggu digitalWrite (3, LOW) kedua; }
Cara Kerja Pengukur Tingkat Suara Arduino:
Setelah Anda siap dengan kode dan perangkat keras, cukup unggah kode dan buka monitor serial Anda untuk melihat nilai dB yang diukur oleh Arduino Anda. Saya menguji kode ini di kamar saya di mana tidak ada banyak kebisingan kecuali lalu lintas di luar dan saya mendapatkan nilai di bawah ini pada monitor serial saya dan aplikasi android juga menampilkan sesuatu yang dekat dengan ini
Pekerjaan lengkap proyek ini dapat ditemukan di video yang diberikan di akhir halaman ini. Anda dapat menggunakan untuk memproyeksikan untuk mendeteksi suara di dalam ruangan dan memeriksa apakah ada aktivitas atau berapa banyak kebisingan yang dihasilkan di setiap kelas atau semacamnya. Saya baru saja membuat LED menjadi tinggi selama 2 detik jika ada suara yang direkam di atas 60dB.
Pekerjaan ini ternyata memuaskan, tetapi pasti dapat digunakan untuk proyek dan prototipe dasar lainnya. Dengan beberapa penggalian lagi saya menemukan bahwa masalahnya sebenarnya dengan perangkat keras, yang masih memberi saya suara sekarang dan nanti. Jadi saya mencoba sirkuit lain yang digunakan dalam papan mikrofon menyenangkan yang memiliki filter low-pass dan high-pass. Saya telah menjelaskan rangkaian di bawah ini untuk Anda coba.
Amplifier dengan Sirkuit Filter:
Disini kita telah menggunakan Low pass filter dan high pass filter dengan Amplifier untuk mengurangi noise pada rangkaian pengukuran level suara ini sehingga akurasi dapat ditingkatkan.
Dalam rangkaian di atas ini, kami telah menggunakan penguat LM358 yang populer untuk memperkuat sinyal dari mikrofon. Bersamaan dengan penguat kita juga telah menggunakan dua filter, filter high-pass dibentuk oleh R5, C2 dan filter low-pass digunakan oleh C1 dan R2. Filter ini dirancang untuk memungkinkan frekuensi hanya dari 8Hz hingga 10KHz, karena filter akses rendah akan menyaring apa pun di bawah 8Hz dan filter High Pass akan menyaring apa pun di atas 15KHz. Rentang frekuensi ini dipilih karena mikrofon kondensor saya hanya berfungsi dari 10Hz hingga 15KHZ seperti yang ditunjukkan pada lembar data di bawah ini.
Jika permintaan frekuensi Anda berubah maka Anda dapat menggunakan rumus di bawah ini untuk menghitung nilai Resistor dan kapasitor untuk frekuensi yang Anda butuhkan.
Frekuensi (F) = 1 / (2πRC)
Juga, perhatikan bahwa nilai resistor yang digunakan di sini juga akan mempengaruhi Gain penguat. Perhitungan nilai resistor dan kapasitor yang digunakan pada rangkaian ini ditunjukkan di bawah ini. Anda dapat mengunduh lembar excel dari sini untuk mengubah nilai Frekuensi dan menghitung nilai regresi.
Sirkuit sebelumnya bekerja dengan memuaskan untuk harapan saya, jadi saya tidak pernah mencoba yang ini. Jika Anda kebetulan mencoba rangkaian ini, beri tahu saya jika berfungsi lebih baik daripada yang sebelumnya melalui komentar.