Isi kandungan:

Arduino Based Pulse Induction Detector - LC-Trap: 3 Langkah
Arduino Based Pulse Induction Detector - LC-Trap: 3 Langkah

Video: Arduino Based Pulse Induction Detector - LC-Trap: 3 Langkah

Video: Arduino Based Pulse Induction Detector - LC-Trap: 3 Langkah
Video: Arduino Unboxing: Self-Balancing Robot Kit ELEGOO Tumbller 2024, November
Anonim
Pengesan Induksi Nadi Berasaskan Arduino - LC-Trap
Pengesan Induksi Nadi Berasaskan Arduino - LC-Trap

Semasa mencari idea lebih lanjut untuk pengesan logam Ardino Pulse Induction sederhana dengan hanya satu voltan bekalan, saya menjumpai halaman utama Teemo:

www.digiwood.ee/8-electronic-projects/2-metal-detector-circuit

Dia membuat pengesan Pulse Induction sederhana menggunakan prinsip LC-Trap. Litar serupa disiarkan di sini di Instructable oleh TechKiwiGadgets. Kecuali bahawa litar Teemo menggunakan pembanding dalaman mikrokontroler PIC, sehingga memerlukan komponen luaran yang lebih sedikit

Oleh itu, saya dicabar untuk menggunakan Arduino dan bukannya PIC-Controller untuk skema ini dan melihat sejauh mana saya boleh mendapatkannya.

Langkah 1: Skematik

Skema
Skema
Skema
Skema
Skema
Skema

Skema Arduino sedikit lebih rumit kerana Arduino tidak membenarkan untuk menghantar isyarat analog dalaman ke input pembanding. Ini menambah dua komponen untuk deviderr voltan sederhana. Ini membawa kepada reka bentuk dengan 12 komponen luaran (meninggalkan pembesar suara dan LCD 16x2), berbanding 9 reka bentuk Flip Coil.

Prinsip kerja skema dijelaskan dengan baik di laman web Teemo. Pada dasarnya gegelung dihidupkan dan kemudian dimatikan. Setelah dimatikan, gegelung dan kondensor secara selari akan menghasilkan ayunan lembap. Kekerapan dan kerosakan ayunan dipengaruhi oleh logam yang berdekatan dengan gegelung. Untuk maklumat lebih lanjut mengenai litar, lihat halaman Teemo atau TechKiwi di sini di Instructables.

Seperti dalam pengesan Induksi Denyut Nadi Flip Coil, saya menggunakan pembanding dalaman dan kemungkinan untuk mencetuskan gangguan untuk mendapatkan isyarat dari gegelung.

Dalam kes ini, saya akan mendapat banyak gangguan kerana voltan berayun di sekitar voltan rujukan yang ditetapkan pada pembanding. Pada akhir ayunan, voltan pada gegelung akan menetap sekitar 5V, tetapi tidak tepat. Saya memilih pembahagi voltan dengan 200 Ohm dan 10k Ohm untuk mendapatkan voltan sekitar 4.9 volt

Untuk mengurangkan kerumitan skema, saya menggunakan D4 dan D5 untuk menyediakan GND (untuk Resistor 10k) dan 5V (untuk perintang 220 Ohm). Pin dipasang pada permulaan pengesan.

Dalam versi ini, saya menambahkan sambungan pembesar suara menggunakan pendekatan multi-nada yang dikendalikan kelantangan seperti yang dijelaskan dalam Cara Memprogram Pengesan Logam Berasaskan Arduino. Ini memungkinkan untuk membezakan sifat sasaran dan juga untuk mengetahui kekuatan isyarat. Pembesar suara boleh disambungkan ke header 5 pin addiononal. 3 pin header yang tersisa akan digunakan untuk menekan butang (akan dilaksanakan).

Langkah 2: Pengaturcaraan

Pengaturcaraan
Pengaturcaraan
Pengaturcaraan
Pengaturcaraan
Pengaturcaraan
Pengaturcaraan

Sekarang litar dirancang dan prototaip dibina, sudah tiba masanya untuk mencari pendekatan yang sesuai untuk mengesan logam.

1. Membilang denyutan

Pengiraan denyutan ayunan sehingga reput sepenuhnya adalah satu idea.

Sekiranya terdapat logam berhampiran gegelung jumlah ayunan berkurang. Dalam kes ini, voltan rujukan pembanding harus ditetapkan ke tahap yang nadi terakhir masih belum diukur. Jadi sekiranya ada sesuatu yang dikesan, nadi ini segera hilang. Ini agak bermasalah.

Setiap gelombang ayunan menimbulkan dua gangguan. Satu semasa turun dan satu lagi akan naik. Untuk menetapkan voltan rujukan tepat ke puncak gelombang ayunan, masa antara turun dan naik harus sesingkat mungkin (lihat gambar). Malangnya di sini overhead persekitaran Arduino menimbulkan masalah.

Setiap pencetus panggilan gangguan untuk kod ini:

ISR (ANALOG_COMP_vect) {

Toggle1 = Toggle0 // simpan nilai terakhir Toggle0 = TCNT1; // dapatkan nilai baru}

Kod ini memerlukan sedikit masa (jika saya ingat betul, kira-kira 78 kitaran arahan penyihir adalah sekitar 5 mikrodetik @ 16MHz). Oleh itu jarak minimum yang dapat dikesan antara dua denyutan adalah tepat masa kod ini mengambil, Jika waktu antara dua pemicu menjadi lebih pendek (lihat gambar), ia akan tidak dapat dikesan, kerana kod tersebut dilaksanakan sepenuhnya sebelum mengesan gangguan kedua

Ini menyebabkan hilangnya kepekaan. Pada masa yang sama, saya perhatikan, bahawa redaman osilasi sangat sensitif terhadap pengaruh luaran apa pun, sehingga menjadikan pendekatan ini sedikit sukar.

2. Mengukur frekuensi

Kaedah lain untuk mengesan logam ialah mengukur kekerapan ayunan. Ini mempunyai kelebihan besar berbanding mengukur redaman osilasi kerana perubahan frekuensi memungkinkan untuk diskriminasi logam. Sekiranya terdapat bahan besi di dekat gegelung, frekuensi akan menjadi perlahan, sekiranya terdapat logam berharga di dekat gegelung, frekuensi akan meningkat.

Cara termudah untuk mengukur frekuensi adalah dengan mengukur jumlah nadi setelah gegelung mula berayun. Jangka masa antara permulaan dan nadi terakhir dibahagikan dengan jumlah denyutan yang diukur adalah frekuensi. Malangnya beberapa ayunan terakhir agak tidak simetri. Oleh kerana kehadiran logam juga mempengaruhi pembusukan ayunan, ayunan terakhir lebih tidak simetri, bacaan sukar ditafsirkan. Dalam gambar ini ditunjukkan dengan persimpangan 1 hingga 1 'dan 2 hingga 2'.

Oleh itu, kaedah yang lebih baik adalah menggunakan beberapa denyutan awal untuk mengukur frekuensi. Semasa menguji, dengan menariknya saya mendapat tahu bahawa beberapa denyutan nadi lebih sensitif daripada yang lain. Di suatu tempat pada 2/3 ayunan adalah titik yang baik untuk memperoleh data.

Memproses data

Kod awal berdasarkan gelung () memanggil fungsi nadi () untuk melakukan pemasaan gegelung. Walaupun hasilnya tidak buruk, saya mempunyai keinginan untuk memperbaiki waktunya. Untuk melakukannya, saya membuat kod berdasarkan pemasa sepenuhnya, yang mengarah ke Cara Memprogram Pengesan Logam Berasaskan Arduino yang tidak dapat diasingkan. Instruksional ini menerangkan masa, data LCD output dll secara terperinci

1. LCD

Pendekatan pertama adalah mengukur 10 denyutan dan kemudian menunjukkan nilai pada LCD. Ketika saya mengetahui bahawa pemindahan data I2C terlalu perlahan, saya menukar kod untuk mengemas kini hanya satu watak per nadi.

2. Pendekatan nilai minimum

Untuk meningkatkan kestabilan bacaan lebih jauh saya menulis rutin output bersiri untuk mendapatkan perasaan yang lebih baik untuk data yang diukur. Di sana menjadi jelas, walaupun sebahagian besar bacaannya agak stabil, ada yang tidak! Beberapa bacaan denyut ayunan "sama" berjauhan sehingga akan merosakkan setiap pendekatan untuk menganalisis pergeseran frekuensi.

Untuk mengimbangi ini, saya membuat "sempadan" di mana nilai boleh dipercayai. I. e. ketika nilai lebih dari 35 kitaran pemasa1 dari nilai yang diharapkan, nilai-nilai ini diabaikan (dijelaskan secara terperinci dalam "Cara Memprogram Pengesan Logam Berasaskan Arduino")

Pendekatan ini terbukti sangat stabil.

3. Voltan

Reka bentuk asal Teemo dikuasakan di bawah 5 volt. Oleh kerana anggapan saya adalah "lebih banyak volt = lebih banyak kuasa = lebih banyak kepekaan" saya menggerakkan unit pada awalnya dengan 12V. Ini mengakibatkan pemanasan MOSFET. Pemanasan ini kemudian menghasilkan pergeseran umum dari nilai-nilai yang diukur, yang membawa kepada pengimbangan semula pengesan yang kerap. Dengan menurunkan voltan menjadi 5V, penghasilan haba MOSFET dapat diminimumkan ke tahap di mana hampir tidak ada arus bacaan yang diperhatikan. Ini menjadikan litar lebih mudah, kerana pengatur voltan on-board Arduino tidak diperlukan lagi.

Untuk MOSFET saya memilih pada mulanya IRL540. MOSFET ini bersesuaian dengan tahap logik, tetapi mempunyai nilai voltan maksimum melebihi 100V. Saya berharap prestasi yang lebih baik berubah menjadi IRL640 dengan penilaian 200V. Sayangnya hasilnya sama. Oleh itu sama ada IRL540 atau IRL640 akan melaksanakan tugas.

Langkah 3: Keputusan Akhir

Keputusan Akhir
Keputusan Akhir
Keputusan Akhir
Keputusan Akhir
Keputusan Akhir
Keputusan Akhir

Kelebihan pengesan adalah bahawa ia membezakan antara bahan berharga dan besi. Kelemahannya ialah, kepekaan dengan skema ringkas ini tidak begitu baik. Untuk membandingkan prestasi, saya menggunakan rujukan yang sama seperti pengesan Flip-Coil. Mungkin bagus untuk beberapa petunjuk, tetapi kemungkinan besar mengecewakan untuk carian sebenar.

Di sini reka bentuk asal dengan pengawal PIC mungkin lebih sensitif kerana ia berjalan pada 32MHz dan bukannya 16MHz yang memberikan resolusi yang lebih tinggi untuk mengesan peralihan frekuensi.

Hasil dicapai dengan menggunakan gegelung dengan 48 putaran @ 100mm.

Seperti biasa, buka untuk maklum balas

Disyorkan: