İçindekiler:

Arduino Tabanlı Darbe İndüksiyon Dedektörü - LC-Trap: 3 Adım
Arduino Tabanlı Darbe İndüksiyon Dedektörü - LC-Trap: 3 Adım

Video: Arduino Tabanlı Darbe İndüksiyon Dedektörü - LC-Trap: 3 Adım

Video: Arduino Tabanlı Darbe İndüksiyon Dedektörü - LC-Trap: 3 Adım
Video: 5 Santrifüj Pompa Sistemleri 2024, Temmuz
Anonim
Arduino Tabanlı Darbe İndüksiyon Dedektörü - LC-Trap
Arduino Tabanlı Darbe İndüksiyon Dedektörü - LC-Trap

Sadece bir besleme voltajına sahip basit bir Ardino Darbe İndüksiyon metal dedektörü için daha fazla fikir ararken Teemo'nun ana sayfasına rastladım:

www.digiwood.ee/8-electronic-projects/2-metal-dedektör-devresi

LC-Trap prensibini kullanarak basit bir Darbe İndüksiyon dedektörü yarattı. Benzer devreler burada Instructable by TechKiwiGadgets'ta yayınlanmıştır. Teemo devresinin bir PIC mikro denetleyicisinin dahili karşılaştırıcılarını kullanması ve böylece daha az harici bileşene ihtiyaç duyması dışında

Bu yüzden, bu şematik için bir PIC-Denetleyici yerine Arduino'yu kullanmam istendi ve ne kadar ileri gidebileceğime bakın.

Adım 1: Şematik

Şematik
Şematik
Şematik
Şematik
Şematik
Şematik

Arduino şeması, Arduino, karşılaştırıcının girişine dahili bir analog sinyal yönlendirmesine izin vermediğinden biraz daha karmaşıktır. Bu, basit bir voltaj deviderr için iki bileşen ekler. Bu, Flip Coil tasarımının 9'una kıyasla, 12 harici bileşenli (hoparlör ve 16x2 LCD hariç) bir tasarıma yol açar.

Teemo'nun web sitesinde şemanın çalışma prensibi çok iyi anlatılmış. Temel olarak bobine güç verilir ve ardından kapatılır. Kapattıktan sonra, bobin ve kondenser paralel olarak sönümlü bir salınım yaratacaktır. Salınımın frekansı ve azalması, bobinin yakınındaki metalden etkilenir. Devrenin daha fazla ayrıntısı için Instructables'taki Teemo veya TechKiwi sayfasına bakın.

Çevirme Bobini Darbe İndüksiyon dedektöründe olduğu gibi, bobinden sinyal almak için dahili karşılaştırıcıyı ve bir kesmeyi tetikleme olasılığını kullanıyorum.

Bu durumda, karşılaştırıcıda ayarlanan referans voltajı etrafında voltaj salınım yaptığından çoklu kesintiler alacağım. Salınım sonunda, bobindeki voltaj 5V civarında olacak, ancak tam olarak değil. Yaklaşık 4.9 voltluk bir voltaj elde etmek için 200 Ohm ve 10k Ohm'luk bir voltaj bölücü seçtim

Şematiklerin karmaşıklığını azaltmak için GND (10k Direnç için) ve 5V (220 Ohm direnç için) sağlamak için D4 ve D5 kullandım. Pimler, dedektörün başlangıcında ayarlanır.

Bu versiyonda Arduino Tabanlı Metal Dedektör Nasıl Programlanır bölümünde anlatıldığı gibi ses kontrollü çok tonlu yaklaşımı kullanarak bir hoparlör bağlantısı ekledim. Bu, hedefin özelliklerini ayırt etmenin yanı sıra sinyal gücü için bir his elde etmeyi sağlar. Hoparlör, ek 5 pinli başlığa bağlanabilir. Başlığın kalan 3 pimi butonlar için kullanılacaktır (uygulanacak).

Adım 2: Programlama

Programlama
Programlama
Programlama
Programlama
Programlama
Programlama

Artık devre tasarlandığına ve prototip yapıldığına göre, metal tespiti için uygun bir yaklaşım bulmanın zamanı geldi.

1. Darbeleri sayma

Bir fikir, salınım darbelerinin tamamen azalana kadar sayılmasıdır.

Bobinin yakınında metal varsa salınım miktarı azalır. Bu durumda karşılaştırıcının referans voltajı, son darbenin zar zor ölçüldüğü bir seviyeye ayarlanmalıdır. Yani bir şey tespit edildiğinde bu nabız hemen yok oluyor. Bu biraz sorunluydu.

Salınımın her dalgası iki kesinti yaratır. Biri aşağı inerken diğeri yukarı çıkarken. Referans voltajını tam olarak bir salınım dalgasının tepesine ayarlamak için, aşağı inme ile yukarı çıkma arasındaki süre mümkün olduğunca kısa olmalıdır (resme bakın). Ne yazık ki burada Arduino ortamının yükü sorun yaratıyor.

Kesmenin her tetikleyicisi bu kodu çağırır:

ISR(ANALOG_COMP_vect){

Toggle1=Toggle0 // son değeri kaydet Toggle0=TCNT1; // yeni değer al }

Bu kod biraz zaman alıyor (doğru hatırlıyorsam, cadı yaklaşık 78 talimat döngüsü, 16MHz'de yaklaşık 5 mikrosaniyedir). Bu nedenle, iki darbe arasındaki minimum algılanabilir mesafe tam olarak bu kodun aldığı süredir, İki tetik arasındaki süre kısalırsa (resme bakın), kod ikinci bir kesmeyi algılamadan önce tam olarak yürütüldüğünden algılanmayacaktır.

Bu, hassasiyette bir kayba yol açar. Aynı zamanda, salınımların sönümlenmesinin her türlü dış etkiye karşı çok hassas olduğunu ve dolayısıyla bu yaklaşımı toplamda biraz zorlaştırdığını fark ettim.

2. Frekansın ölçülmesi

Metali tespit etmenin başka bir yolu da salınımın frekansını ölçmektir. Bu, frekanstaki değişiklik metalin ayırt edilmesine izin verdiği için salınımın sönümlenmesini ölçmeye kıyasla büyük bir avantaja sahiptir. Bobinin yanında demirli malzeme olması durumunda frekans yavaşlayacak, bobinin yanında değerli metal olması durumunda frekans artacaktır.

Frekansı ölçmenin en kolay yolu, bobinler salınım yapmaya başladıktan sonra atım miktarını ölçmektir. Başlangıç ve son darbe arasındaki sürenin, ölçülen darbelerin toplam miktarına bölümü frekanstır. Ne yazık ki son birkaç salınım oldukça simetrik değil. Metalin varlığı da salınımın azalmasını etkilediğinden, son salınımlar daha da simetrik değildir, okumaların yorumlanması zordur. Resimde bu, 1'den 1'e ve 2'den 2'ye geçişle gösterilmiştir.

Bu nedenle daha iyi bir yol, frekansı ölçmek için daha önceki bazı darbeleri kullanmaktır. Test ederken ilginç bir şekilde bazı darbe darbelerinin diğerlerinden daha hassas olduğunu öğrendim. Salınımların 2/3'ünde bir yerde, verileri elde etmek için iyi bir nokta.

Verilerin işlenmesi

Bobinin zamanlamasını yapmak için bir pulse() işlevi çağıran loop()'a dayalı ilk kod. Sonuçlar kötü olmasa da, zamanlamayı iyileştirme isteği duydum. Bunu yapmak için, tamamen zamanlayıcı tabanlı bir kod oluşturdum, bu da ayrı bir öğretilebilir Arduino Tabanlı Metal Dedektörü Nasıl Programlanır'a yol açtı. Bu talimat, zamanlamayı, veri kırma LCD çıktısını vb. ayrıntılı olarak açıklar.

1. LCD

İlk yaklaşım, 10 darbeyi ölçmek ve ardından değerleri LCD'de göstermekti. I2C veri aktarımının çok yavaş olduğunu öğrendiğimde, darbe başına yalnızca bir karakteri güncellemek için koda geçtim.

2. Minimum değer yaklaşımı

Okumaların kararlılığını daha da artırmak için, ölçülen veriler için daha iyi bir his elde etmek için bir seri çıktı rutini yazdım. Orada, okumaların çoğu bir şekilde sabit olsa da, bazılarının olmadığı ortaya çıktı! "Aynı" salınım darbesinin bazı okumaları birbirinden o kadar uzaktı ki, frekanstaki bir değişimi analiz etmek için her yaklaşımı mahvedebilirdi.

Bunu telafi etmek için, içinde değerin güvenilir olduğu bir "sınır" yarattım. ben. e. değerler beklenen değerden 35 döngü timer1'den fazla olduğunda, bu değerler göz ardı edildi ("Arduino Tabanlı Metal Dedektörü Nasıl Programlanır" Talimatında ayrıntılı olarak açıklanmıştır)

Bu yaklaşımın çok kararlı olduğu kanıtlandı.

3. voltaj

Teemo'nun orijinal tasarımı 5 voltun altında güç alıyor. Varsayımlarım “daha fazla volt = daha fazla güç = daha fazla hassasiyet” olduğundan, üniteyi başlangıçta 12V ile çalıştırdım. Bu, MOSFET'in ısınmasına neden oldu. Bu ısınma daha sonra ölçülen değerlerde genel bir kaymaya neden oldu ve bu da dedektörün sık sık yeniden dengelenmesine yol açtı. Voltajı 5V'a düşürerek MOSFET'in ısı üretimi, okumalarda neredeyse hiç kaymanın gözlemlenmediği bir düzeye indirilebilir. Bu, Arduino'nun yerleşik voltaj regülatörüne artık ihtiyaç duyulmadığından devreyi daha da basitleştirdi.

Bir MOSFET için başlangıçta IRL540'ı seçtim. Bu MOSFET, mantık seviyesi uyumludur, ancak 100V üzerinde maksimum voltaj derecesine sahiptir. 200V dereceli bir IRL640'a geçerek daha iyi performans umuyordum. Maalesef sonuçlar aynıydı. Yani ya bir IRL540 ya da bir IRL640 işi yapacaktır.

3. Adım: Nihai Sonuçlar

Nihai sonuçlar
Nihai sonuçlar
Nihai sonuçlar
Nihai sonuçlar
Nihai sonuçlar
Nihai sonuçlar

Dedektörün avantajı, değerli ve demirli malzeme arasında ayrım yapmasıdır. Dezavantajı, bu basit şema ile duyarlılığın o kadar iyi olmamasıdır. Performansı karşılaştırmak için Flip-Coil dedektörü ile aynı referansları kullandım. Muhtemelen biraz nokta atışı için iyi, ancak büyük olasılıkla gerçek arama için hayal kırıklığı yaratıyor.

Burada, PIC kontrolörlü orijinal tasarım, 16MHz yerine 32MHz'de çalıştığı için daha hassas olabilir ve frekans kaymalarını algılamak için daha yüksek çözünürlük sağlar.

Sonuçlar, 100 mm'de 48 dönüşlü bobin kullanılarak elde edildi.

Her zaman olduğu gibi, geri bildirime açık

Önerilen: