Bagaimana saya mendapatkan + 5v untuk noise keras, 0v untuk diam dari Electret Microphone (atau komponen lainnya)?

12

Saya telah mengajukan beberapa pertanyaan di sini untuk mendapatkan yang tepat, pertanyaan awal yang saya tanyakan terkait pada bagian akhir. Saya menggunakan Fritzing untuk membuat beberapa skema pemikiran awal saya, tetapi paling tidak saya perlu bantuan dengan nilai-nilai pada komponen, yang saya hanya samar-samar mengerti dan memilih apa yang tampaknya nilai-nilai yang wajar atau umum.

Pada dasarnya, saya memiliki Arduino yang memiliki 6 input analog. Menggunakan 10-bit ADC untuk membaca tegangan pada salah satu pin analog, jadi 0 = 0v, 511 = 2.5v, dan 1023 = 5v, dan semua nilai di antaranya. Itu membuat pembacaan LINEAR DC, jadi saya tidak mencari logika 1-0 di sini.

Saya mengaitkannya dengan lampu LED, dan saya ingin membuatnya merespons musik. Apa yang saya inginkan adalah resolusi maksimum dengan komponen minimum, dan saya pikir saya menggunakan komponen WAY terlalu banyak dan membuat WAY ini terlalu rumit. Mungkin mikrofon Electret bukan yang saya inginkan di sini, saya terbuka untuk hal lain. Saya lebih suka tidak menggunakan op-amp untuk menghemat ruang di PCB saya.

Yang saya inginkan adalah sensor tingkat kebisingan sederhana. Saya tidak ingin mereproduksi audio, atau memiliki kejelasan atau apa pun, tapi saya ingin, sedekat yang saya bisa:

  • Perfect Silence = sedekat mungkin dengan 0v DC (stabil, bukan AC) mungkin
  • Medium Noise = Sekitar 2.5v DC (stabil, bukan AC)
  • Loud Noise = sedekat mungkin dengan 5v DC (stabil, bukan AC) mungkin

Saya mengerti dengan BJT bahwa yang terbaik yang bisa saya dapatkan adalah menjadi 0.6v ke 4.4v, tetapi ini cukup dapat diterima. Apa yang tidak, bagaimanapun, adalah setengah dari gelombang, 0.6v ke 2.5v. Ini sepertinya menghabiskan setengah dari resolusi saya yang tersedia tanpa alasan. Namun, jika ada pengaturan lain selain BJT yang dapat membuat saya lebih dekat ke 0v-5v, saya akan tertarik untuk mencobanya; selama itu sederhana.

Berikut ini adalah yang lebih sederhana, yang saya harap ini mungkin, tetapi membutuhkan sinyal electret untuk memiliki amplitudo yang cukup untuk menggerakkan rangkaian detektor amplop (dioda, resistor dan kapasitor) untuk mendapatkan hanya setengah positif. Saya tidak berpikir itu bisa karena penurunan maju dioda, tetapi mungkin ini dapat diatur ulang atau dilakukan sebelum tutup output? Seperti apa nilai dari amplop detector dan amplifier amplifier? Haruskah potensiometer sensitivitas ditempatkan pada sinyal, atau RE, atau RL, dan apa nilainya? Linier atau Logaritmik?

Sederhana

Namun, mungkin keluaran electret tidak dapat bertahan dari detektor amplop, shunt sensitivitas, dan masih menggerakkan transistor NPN. Jika tidak, ini versi yang lebih kompleks. Apakah saya harus menempuh rute ini? Apakah mendapatkan output yang saya inginkan dari rangkaian benar-benar membutuhkan semua komponen ini?

Kompleks

Berikut adalah beberapa pertanyaan di masa lalu yang saya tanyakan sebelum saya lebih memahami apa yang saya coba artikulasikan, untuk lebih jelasnya. Inilah yang seharusnya dilakukan oleh detektor amplop, dan saya tidak yakin bagaimana menyetelnya untuk output electret:

Detektor Amplop Diagram Sirkuit

Ehryk
sumber
Saya pikir ini masih cukup luas. Pertanyaan yang harus Anda tanyakan pada diri sendiri adalah "apa artinya suara menjadi keras?" Persepsi manusia tentang kenyaringan itu rumit, dan dapat bergantung pada frekuensi, durasi suara, suasana hati, konsumsi kopi, dll. Persepsi manusia tentang "keheningan" juga sangat bergantung pada lingkungan dan kebisingan sekitar. Anda harus menerjemahkan persepsi subjektif ini menjadi definisi yang lebih objektif sebelum Anda dapat mewujudkan rangkaian listrik untuk mengukurnya.
Phil Frost
Berikut adalah beberapa istilah pencarian yang akan membantu: "detektor puncak" "sirkuit RC" "konstanta waktu" "frekuensi sudut" "filter low pass" "dB SPL"
Phil Frost
Saya memiliki potensiometer sensitivitas dalam desain untuk memperhitungkan itu (itu harus cukup luas sehingga dapat 'secara efektif semua diam' atau 'selalu keras', dan saya dapat menyetel dari sana). Saya tidak tahu apakah itu harus di tempat RL, RE (mengendalikan gain atau sesuatu), atau mengubah sinyal. Saya tidak tahu bagaimana lagi saya bisa lebih spesifik, dapatkah Anda membantu menjelaskan apa yang lebih dibutuhkan?
Ehryk
1
Jika Anda mengubah tegangan referensi ADC pengontrol ke celah pita 2V56, Anda tidak memerlukan tegangan output 0-5V. Anda akan mencapai resolusi penuh dari 0 - 2.56V. Tergantung pada pengontrol yang tepat Anda memiliki berbagai voltase celah pita untuk digunakan sebagai referensi.
jippie
1
Cari "penyearah aktif sinyal kecil" dan temukan sirkuit seperti techonlineindia.com/Libraries/tol/Signal3.sflb.ashx yang mengeluarkan tegangan ambang batas dioda dari persamaan.
jippie

Jawaban:

27

Meskipun Anda bisa melakukan semua ini hanya dengan amplifier dan mikrokontroler (Arduino), sejauh yang saya bisa lihat, Anda menginginkan opsi analog. Saya telah mencoba membuat sirkuit yang menghasilkan level suara pada mikrofon. Kisarannya dari 0V hingga 4V. Namun, Anda dapat memutakhirkannya dengan mudah ke 0V ke 5V hanya dengan mengubah OP-AMP. Sekarang, mari kita masuk ke dalamnya;

Pertama-tama, saya telah mengganti amplifier transistor dengan OP-AMP. Inilah yang saya pikirkan;

masukkan deskripsi gambar di sini

Ini adalah penguat pembalik sederhana dengan gain 100. Berikut adalah rumus untuk menghitung gain;

VHaikamut=-RfRsayanVsayan=-100kRsayanVsayan=-100Vsayan

Seperti yang Anda lihat, U1 mengambil sinyal input, membalikkannya dan kemudian mengalikannya dengan 100. Anda dapat mengubah R2 atau R3 dan Anda akan melihat bahwa gain dari U1 berubah. Pembalikan sinyal input tidak masalah di sini, karena Anda akan mengerti nanti. Mari kita lihat output dari amplifier ini, dan Anda akan melihat bahwa ada pertumbuhan besar pada sinyal input.

masukkan deskripsi gambar di sini

Pada grafik di atas, Anda akan melihat bahwa output memiliki tegangan offset DC 2,5 volt. Itu karena tanah virtual yang kami gunakan. Jika kita membuat ground virtual, itu artinya kita membawa ground ke level tegangan lain. Dalam hal ini kami telah memindahkannya ke 2.5 V. Dengan konfigurasi baru, kami telah membuat sesuatu yang terlihat seperti -2.5 V, 0 V, dan 2.5 V ke sirkuit. Untuk mencapai ini, saya harus membuat rel tegangan baru 2,5 volt. Karena rel tegangan itu tidak akan memasok banyak daya, (kurang dari 1 mA), mudah dibuat;

masukkan deskripsi gambar di sini

V+=V-

Setelah amplifikasi, kita harus meletakkan sinyal ke "detektor amplop" atau dengan kata lain, "pengikut amplop". Ini akan mendapatkan tingkat sinyal, seperti yang Anda inginkan dan seperti yang Anda tunjukkan dalam gambar di pertanyaan Anda. Berikut adalah apa yang terlihat seperti pengikut amplop dasar:

masukkan deskripsi gambar di sini

Ini terlihat hebat, bagaimanapun, perhatikan bahwa di sini, D3 adalah dioda dan turun sekitar 0,6 V dengan sendirinya. Jadi, Anda kehilangan tegangan. Untuk mengatasi ini, kita akan menggunakan apa yang disebut "super-diode". Itu super, karena drop tegangan hampir 0V! Untuk mencapai itu, kami menyertakan OP-AMP dengan dioda, dan itu saja! OP-AMP akan mengkompensasi penurunan tegangan dioda, dan Anda akan memiliki dioda yang hampir ideal;

masukkan deskripsi gambar di sini

V+=V-V-V-V+

Sekarang, ubah D3 pada sirkuit pengikut amplop di atas dengan super-dioda, dan Anda memiliki pengikut amplop yang lebih baik! Mari kita lihat hasil kita;

masukkan deskripsi gambar di sini

Kami semakin dekat. Seperti yang Anda lihat, output dari pengikut amplop, yang merupakan garis merah, dapat berubah dari 2,5 V menjadi 4 V. 2,5 V tidak bersuara, 4 V bersuara keras dan 3,25 V untuk bersuara sedang. Untuk menskalakan itu ke apa yang Anda inginkan, kami dapat mengurangi tegangan offset 2,5 V dan menskalakannya. Jadi, ketika Anda mengurangi 2,5 V, itu menjadi; 0 V untuk tanpa suara, 1,5 V adalah suara keras dan 0,75 V untuk suara sedang dan sebagainya. Setelah itu, jika Anda kalikan ini dengan sekitar 3, Anda akan mendapatkan apa yang sebenarnya Anda inginkan. 0 V tanpa suara, 2,5 V untuk suara sedang dan 5 V untuk suara keras. Singkatnya, yang kita inginkan adalah ini;

VHaikamut=(Vsayan-2.5V)3

Untuk mencapai ini, kami akan menggunakan penguat diferensial atau dengan kata lain " subtractor ".

masukkan deskripsi gambar di sini

Ketika resistor, R1 = R2 dan R3 = R4 fungsi transfer untuk penguat diferensial dapat disederhanakan menjadi ekspresi berikut:

VHaikamut=R3R1(V2-V1)

Jika Anda membuat V1 = 2.5V dan R3 / R1 rasio 3, maka Anda akan mendapatkan output yang Anda inginkan.

Berikut adalah skema lengkap yang akan melakukan apa yang Anda inginkan:

masukkan deskripsi gambar di sini

Saya telah menggunakan LM324 OP-AMP di sini untuk tujuan simulasi. Itu akan membatasi tegangan output maksimum hingga 4V. Untuk mendapatkan output rentang penuh, Anda harus menggunakan output rail-to-rail OP-AMP. Saya akan menyarankan MCP6004 . Ubah R1 dan R2 hingga Anda mendapatkan hasil yang diinginkan. Inilah yang saya dapatkan dengan simulasi:

masukkan deskripsi gambar di sini

Sekarang, ketika mengukur nilai-nilai ini dalam ADC, Anda tidak akan mendapatkan pengertian linear , sebaliknya suara lebih dipahami logaritmik, karena telinga kita mendengarnya. Jadi, Anda harus menggunakan desibel . Jika Anda tidak terbiasa dengan desibel, berikut ini adalah video tutorial yang bagus tentang itu.

Ruang yang sunyi, misalnya diukur sekitar 40 dB. Pesta di sebuah ruangan akan membuat level ruangan mencapai 100 dB, atau mungkin 110 dB. Di situs web ini , Anda dapat menemukan info hebat tentangnya, dari mana saya juga telah menyematkan gambar di bawah ini. Pikirkan tentang tingkat desibel dan bereksperimen dengan output tegangan dari rangkaian. Kemudian, hitung resolusi ADC yang Anda perlukan. Mungkin, Anda akan baik-baik saja dengan ADC 12-bit.

masukkan deskripsi gambar di sini

abdullah kahraman
sumber
5
Ini adalah jawaban yang fenomenal; jika SE memiliki hall of fame, saya akan mencalonkan ini. Terima kasih karena sangat tepat dan jelas! Bagaimana Anda menghasilkan gambar-gambar itu, menangkap dari osiloskop, perangkat lunak lingkup PC atau algoritma penyelesaian?
Ehryk
1
@Ehryk Terima kasih, tetapi Anda melebih-lebihkan :). Ini adalah LTSpice yang saya gunakan.
abdullah kahraman
@Ehryk Saya memperbarui jawaban saya dan menambahkan lebih banyak info tentang pengukuran suara.
abdullah kahraman
Gunakan circuitlab untuk dapat berbagi dan meminta orang-orang segera menjalankan simulasi! Saya akan memberi Anda 50 rep untuk itu.
Kortuk
1
@Kortuk Saya tidak bisa mensimulasikannya dengan benar .. CircuitLab Link
abdullah kahraman
7

Anda sepertinya berada di jalur yang benar. Ini tidak mengambil banyak komponen diskrit untuk melakukan hal semacam ini. Anda mungkin tidak mempercayai saya, tetapi menggunakan op-amp dapat membuat semua ini lebih sederhana dan lebih kecil. Saya yakin Anda dapat menemukan IC yang lebih spesifik yang melakukan lebih banyak dari yang Anda butuhkan dalam paket yang lebih kecil. Aku yakin ada sebuah IC luar sana yang melakukan persis apa yang Anda butuhkan. Namun, Anda akan belajar lebih banyak jika Anda melanjutkan tanpa mereka, bahkan jika hanya untuk nilai akademik.

Anda juga dapat membuatnya lebih sederhana dengan memindahkan logika ke mikroprosesor. Deteksi amplop mudah dilakukan dalam perangkat lunak, dan tergantung pada seberapa akurat Anda perlu dan sensitivitas mikrofon Anda, Anda bahkan mungkin lolos dengan menghilangkan amplifier setelah mikrofon, dan menempatkan output langsung ke ADC. Ini tidak akan membuat Anda 0V-5V, tetapi apakah itu penting? Anda dapat mengalikannya dengan konstanta dalam perangkat lunak. Apa yang Anda kehilangan adalah keakuratan memiliki jangkauan penuh ADC, tetapi mungkin itu tidak sepenting kesederhanaan. Kamu putuskan.

Phil Frost
sumber
Saya tidak mempercayai Anda bahwa op-amp dapat melakukannya dengan lebih sederhana, saya mencoba untuk meminimalkan PCB real estat. Namun, menjadi sangat menyakitkan bahwa dip 835 pin LM358 akan secara DRASTIS lebih sederhana. Saya juga bertanya-tanya apakah mikrofon electret adalah pilihan yang buruk juga; kelihatannya konyol bahwa hasrat sesederhana itu (kenyaringan indera, 0V-5V) adalah nonsensik kompleks.
Ehryk
Electret dengan sendirinya memberikan ~ 20mV puncak-puncak. Dengan ADC Arduino, ini adalah tentang perbedaan dua dari sangat sunyi menjadi sekeras mungkin (resolusi 4,9mV, jika 511 saat diam, 513 hingga 509 dengan kecepatan penuh). Saya ingin rentang sensitivitas yang baik, bukan "Diam / Sedang / Keras" sebagai satu-satunya gradien, dan seandainya garis itu sangat stabil.
Ehryk
@Ehryk jika Anda hanya ingin menjaga hal-hal kecil, saya yakin Anda dapat menemukan LM358 (atau op-amp umum lainnya) dalam paket mount permukaan besar seperti SOIC . Sangat mudah disolder dengan tangan dengan alat yang bagus, dan Anda tidak perlu mengebor lubang. Pendek membeli sensor yang sudah melakukan apa yang Anda butuhkan, saya ragu Anda akan melakukan lebih sederhana daripada mikrofon electret dan memindahkan semua kecuali biasing dan amplifikasi ke dalam mikrokontroler.
Phil Frost
4

Pertama, Anda tidak perlu Arduino kecuali jika Anda perlu melakukan lebih banyak pemrosesan - yang Anda inginkan hanyalah sebuah penguat (sebuah op-amp akan melakukannya, banyak sirkuit dasar di seluruh googles) untuk meningkatkan output mic dalam kisaran tersebut. 0-5v. Jika Anda tidak terlalu khawatir tentang keakuratan (seperti dalam hal ini hanya untuk kesenangan daripada pengukuran ilmiah), Anda dapat menggunakan sirkuit kliping yang cukup mendasar, menyalurkan output ke pemicu schmitt, atau menggunakan LM3914 untuk menghasilkan tampilan.

Sedikit lebih banyak kemahiran dapat diperoleh dengan membuat sirkuit AGC untuk secara otomatis meningkatkan gain naik & turun dengan tingkat rata-rata.

Apa pun, Anda mendapatkan karma positif utama dengan membuang arduino dan melakukannya analog seperti yang dimaksudkan oleh alam;)

Sunting: Kemungkinan ada banyak sirkuit "mic pre-amp" di web juga, mungkin sebuah chip SOT23 $ 0,10 untuk melakukannya untuk Anda hari ini ...

John U
sumber
Arduino mengendalikan array LED dengan 5 pin PWM, dan saya akan mem-flash huruf / pola yang berbeda pada kecerahan dari berbagai fraksi input noise. Jadi - Arduino diperlukan, dan entah bagaimana saya perlu mengatakannya, dengan resolusi yang baik, seberapa kerasnya sehingga dapat PWM pola pada berbagai tingkat kecerahan musik. Saya tidak benar-benar tahu apa yang Anda lakukan tanpa diagram sirkuit.
Ehryk
Jangan terobsesi dengan diagram sirkuit, saya menggambarkan sirkuit yang merupakan blok bangunan dasar, yang ditampilkan dalam setiap buku teks, sebuah google cepat harus mengaktifkan sirkuit dasar untuk berbagai fungsi (pre-amp, AGC, clipper, dll.) Serta semakin banyak disko (sirkuit EQ grafis, driver layar, organ ringan, dll.) yang telah menjadi subjek hobi elektronik sejak Disco ditemukan.
John U
Masalahnya adalah bahwa ada terlalu banyak contoh, dengan berbagai komponen dan 'fitur', dijelaskan secara samar-samar atau tidak dijelaskan sama sekali. Diagram spesifik dengan beberapa penjelasan tentang mengapa komponen tertentu dipilih dan nilai-nilai yang dicapai adalah apa yang menurut saya paling membantu, dan apa yang biasanya saya tanyakan dalam pertanyaan saya. Jawaban ini sangat fenomenal dan sangat membantu, misalnya.
Ehryk
Anda meminta lego, saya menawarkan benjolan plastik dan pisau bedah, itu hanya pendekatan yang berbeda.
John U
2
... dan saya merespons dengan fakta bahwa saya sudah memiliki 10 gumpalan plastik dan pisau bedah saya sendiri, dan dapat memperoleh ratusan lagi dengan mencari. Plus, saya secara khusus meminta lego dalam pertanyaan, dan Anda mengatakan 'jangan berharap lego.'
Ehryk