DIYのシンプルな高感度金属探知機
コンポーネントと消耗品
> |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
| × | 6 | ||||
| × | 1 |
必要なツールとマシン
> |
|
アプリとオンラインサービス
> |
|
このプロジェクトについて
これは、「PIRAT」と呼ばれる有名なロシアのパルス誘導金属探知機の修正版であり、今回はArduino Nanoの助けを借りて作成されたもので、製造が大幅に簡素化されています。
15cmの距離にある金属コインと40cm以上の距離にあるより大きな金属物体を検出できます。その単純さを考えると、これは比較的良い結果です。
パルス誘導(PI)金属探知機は、送信機と受信機の両方として単一のコイルを使用します。この技術は、ワイヤーのコイルを介して電流の強力で短いバースト(パルス)を送信します。各パルスは短い磁場を生成します。パルスが終了すると、磁場は極性を反転させ、非常に突然崩壊し、鋭い電気スパイクをもたらします。このスパイクは数マイクロ秒続き、コイルに別の電流が流れます。この電流は反射パルスと呼ばれ、非常に短く、約30マイクロ秒しか持続しません。次に、別のパルスが送信され、プロセスが繰り返されます。金属片が磁力線の範囲内に入ると、受信コイルは受信信号の振幅と位相の両方の変化を検出できます。振幅変化と相変化の量は、金属のサイズと距離の指標であり、鉄金属と非鉄金属を区別するためにも使用できます。
このデバイスは非常にシンプルで簡単に作成でき、いくつかのコンポーネントが含まれています。
-ArduinoNanoマイクロコントローラー
-パワーMOSFETトランジスタ
-オペアンプ
-抵抗とコンデンサはほとんどありません
-サーチコイル
-そして表示用のLEDとブザー</ P> <図>
以前のビデオの1つで同様の金属探知機を紹介しましたが、スマートフォンをインジケーターとして使用しており、頻繁に調整する必要がありました。それとは異なり、これはArduinoをリセットすることで自己校正するスタンドアロンデバイスです。直列に接続された2つのリチウムイオン電池は、デバイスに電力を供給するために使用されます。今回の検出器は、光と音の表示が含まれているため、操作がはるかに簡単です。物体に近づくと、LEDの周波数と強度が増加します。サーチコイルの直径は20cmで、断面が0.3〜0.5mmの正方形の絶縁銅線が25ターン含まれています。
コード
- Arduinoコード
Arduinoコード C / C ++
// arduinoバージョンのPIメタル検出器version_18_min(C)alex --- 1967 2015int ss0 =0; int ss1 =0; int ss2 =0; long c0 =0; long c1 =0; long c2 =0; byte i =0; int sss0 =0; int sss1 =0; int sss2 =0; int s0 =0; int s1 =0; int s2 =0; void setup(){DDRB =0xFF; //ポートB-すべてoutDDRD =0xFF; //ポートD-すべてoutfor(i =0; i <255; i ++)//キャリブレーション/キャリブレーション{PORTB =B11111111; //ポートBのピンを1に変換して、開きます。キー(オン)delayMicroseconds(200); // 200マイクロ秒待機PORTB =0; // delayMicroseconds(20); s0 =analogRead(A0); s1 =analogRead(A0); s2 =analogRead(A0); c0 =c0 + s0; c1 =c1 + s1; c2 =c2 + s2; delay(3);} c0 =c0 / 255; c0 =c0-5; c1 =c1 / 255; c1 =c1-5; c2 =c2 / 255; c2 =c2-5;} void loop(){PORTB =B11111111; //ポートBのピンを1に変換して、開きます。キー(オン)delayMicroseconds(200); // 200マイクロ秒待機PORTB =0; //サーチコイルの電流を遮断してキーを閉じます(オフ-サーチコイルの割り込み回路)delayMicroseconds(20); s0 =analogRead(A0); s1 =analogRead(A0); s2 =analogRead(A0); ss0 =s0 --c0; if(ss0 <0){sss0 =1;} ss0 =ss0 / 16; PORTD =ss0; //インジケーターに送信(LEDに送信)delay(1); ss1 =s1-c1; if(ss1 <0){sss1 =1;} ss1 =ss1 / 16; PORTD =ss1; //インジケーターに送信(LEDに送信)delay(1); ss2 =s2-c2; if(ss2 <0){sss2 =1;} ss2 =ss2 / 16; PORTD =ss2; //インジケーターに送信(LEDに送信)delay(1); if(sss0 + sss1 + sss2> 2){digitalWrite(7、HIGH); digitalWrite(6、HIGH); digitalWrite(5、HIGH); digitalWrite( 4、HIGH); digitalWrite(3、HIGH); digitalWrite(2、HIGH); digitalWrite(1、HIGH); digitalWrite(0、HIGH); delay(1); sss0 =0; sss1 =0; sss2 =0; }}
回路図
製造プロセス