Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Detektor Logam Induksi Pulsa Arduino Nano – Kit & Panduan DIY

Komponen dan Perlengkapan

Alat dan Mesin yang Diperlukan

Tentang Proyek Ini

Sistem Induksi Pulsa (PI) menggunakan satu coil sebagai pengirim dan penerima. Teknologi ini mengirimkan burst (pulsa) arus yang kuat dan singkat melalui kawat coil. Setiap pulsa menghasilkan medan magnet yang singkat. Saat pulsa berakhir, medan magnet membalik polaritas dan runtuh sangat tiba-tiba, menghasilkan spike listrik yang tajam. Spike ini bertahan beberapa mikrodetik dan menyebabkan arus lain mengalir melalui coil. Arus ini disebut pulsa reflected dan sangat singkat, bertahan hanya sekitar 30 mikrodetik. Pulsa lain kemudian dikirim dan proses berulang. Jika suatu logam masuk ke dalam jangkauan garis medan magnet, coil penerima dapat mendeteksi perubahan baik amplitudo maupun fase dari sinyal yang diterima. Jumlah perubahan amplitudo dan fase adalah indikasi ukuran dan jarak logam, dan juga dapat digunakan untuk membedakan logam ferrous dan non-ferrous.

Saya menemukan contoh yang baik dari detektor PI di situs proyek N.E.C.O. Detektor logam ini adalah simbiosis Arduino dan Android. Di Play Store Anda dapat mengunduh versi gratis aplikasi "Spirit PI," yang berfungsi penuh, tetapi Anda juga dapat membeli versi pro yang memiliki beberapa opsi hebat. Komunikasi antara smartphone dan arduino dilakukan dengan modul bluetooth HC 05, tetapi Anda dapat menggunakan adaptor bluetooth apa pun yang harus Anda atur baud rate ke 115200. Skema diberikan dalam gambar di bawah ini. Saya membuat beberapa modifikasi kecil pada skema asli untuk meningkatkan fitur perangkat. Anda dapat menemukan skema asli di web N.E.C.O.:

https://neco-desarrollo.es/pirat-wireless-metal-detector

Di tempat resistor 150 ohm, saya menempatkan potensiometer trimer dengan nilai 47 Kohms. Trimer ini mengatur arus melalui coil. Dengan meningkatkan nilainya, arus melalui coil meningkat dan sensitivitas perangkat meningkat.Modifikasi kedua adalah potensiometer trimer 100kOhm alih-alih resistor 62k dalam skema asli. Dengan trimer ini, kami menetapkan tegangan sekitar 4.5V ke input A0 pada Arduino, karena saya perhatikan bahwa untuk operational amplifier dan tegangan operasi yang berbeda, nilai resistor ini harus berbeda.

Dalam kasus khusus ini, untuk memberi daya pada perangkat saya menggunakan 4 baterai lithium ion yang disambungkan secara seri sehingga tegangan adalah sesuatu yang lebih besar dari 15v. Karena Arduino menerima tegangan masukan maksimal 12V, saya menempatkan stabilizer 5V (7805) yang dipasang pada heatsink kecil untuk memberi daya pada Arduino secara langsung ke pin +5v.

Coil dibuat dari kawat tembaga terisolasi dengan diameter 0,4 mm dan mengandung 25 gulungan dalam bentuk lingkaran dengan diameter 19 sentimeter. Dalam pengakhiran akhir, perlu dijamin bahwa tidak ada objek logam di dekat coil (elemen akan dipelekatkan dengan lem, dan tidak ada sekrup)

Seperti yang Anda lihat pada video, koin logam kecil dapat terdeteksi pada jarak 10-15 sentimeter, sedangkan objek logam yang lebih besar 30-40 sentimeter dan lebih. Ini adalah hasil yang luar biasa, mengingat bahwa pembuatan dan pengaturan perangkat relatif sederhana.

Kode

kodeArduino
#include <EEPROM.h> //#include <SoftwareSerial.h> //int bluetoothTx = 5; //int bluetoothRx = 6;//blutoth module terminal RX //SoftwareSerial bluetooth(bluetoothTx, bluetoothRx); #define pulsePine 2 int timer = 200; const int button1 = 12; int buttonState1 = 0; char data; //EEPROM variables int addr_duty = 0; int addr_freq = 1; int stored_value; int duty_cycle; int duty_cycle_temp; int freq; int freq_temp; int duty_def_value = 10; int freq_def_value = 60; //Balance variables int value_count = 0; int value_count_def = 100; int balance_value = 0; int balance_value_temp = 0; //**** unsigned long startMillis; unsigned long currentMillis; long period = 100000; //nilai adalah jumlah mikrodetik //Pengukuran tingkat baterai float resistencia1 = 101000; //Resistensi 100K untuk menguji tegangan (Voltios)/Resistance 100k untuk uji volt float resistencia2 = 10000; //Resistensi 10k untuk menguji tegangan (Voltios)/Resistance 10k untuk uji volt float const arefVolt=4.8f; //pin "4.9v" SET NILAI TEMPAT DISINI float voutv; float vinv; unsigned long startMillisVolts; unsigned long currentMillisVolts; long periodVolts = 2000; //nilai adalah jumlah mikrodetik int sensorValue ; void setup() { //analogReference(INTERNAL); Serial.begin(115200); readFromStorage(addr_duty); duty_cycle = stored_value; readFromStorage(addr_freq); freq = stored_value; if(duty_cycle == 0 || duty_cycle == 255){ writeToStorage(duty_def_value,addr_duty); readFromStorage(addr_duty); duty_cycle = stored_value; } if(freq == 0 || freq == 255 ){ writeToStorage(freq_def_value,addr_freq); readFromStorage(addr_freq); freq = stored_value; } pinMode(pulsePine, OUTPUT); } void loop() { currentMillis = micros(); currentMillisVolts = millis(); if(Serial.available()>0) { data = Serial.read(); setDutyAndFreq (data); } if (currentMillis - startMillis >= period) { period = 1000000 / freq; // Serial.println(period); digitalWrite(pulsePine, HIGH); duty_cycle_temp = duty_cycle * 10; delayMicroseconds(duty_cycle_temp); digitalWrite(pulsePine, LOW); //sensorValue = analogRead(A0); for(int i = 0;i < 3; i++){ sensorValue = analogRead(A0); } delayMicroseconds(10); sensorValue = analogRead(A0); sensorValue = sensorValue / 5; sendData(); startMillis = currentMillis; } // Baca voltase if (currentMillisVolts - startMillisVolts >= periodVolts) { lecturaVoltios(); //Serial.println("Lectura voltios"); startMillisVolts = currentMillisVolts; } } void writeToStorage(int valor,int addr) { EEPROM.write(addr, valor); } int readFromStorage(int addr) { stored_value = EEPROM.read(addr); return stored_value; } void setDutyAndFreq (char valor) { //"n" valor untuk meningkatkan duty cycle //"m" valor untuk mengurangi duty cycle //"j" valor untuk meningkatkan frekuensi //"k" valor untuk mengurangi frekuensi //"+" valor untuk meningkatkan balance //"-" valor untuk mengurangi balance if(valor == 'n') { // Serial.println("n Recived"); readFromStorage(addr_duty); duty_cycle = stored_value; duty_cycle = duty_cycle + 1; writeToStorage(duty_cycle,addr_duty); } else if(valor == 'm') { // Serial.println("m Recived"); readFromStorage(addr_duty); duty_cycle = stored_value; duty_cycle = duty_cycle - 1; writeToStorage(duty_cycle,addr_duty); } else if(valor == 'j') { // Serial.println("j Recived"); readFromStorage(addr_freq); freq = stored_value; freq = freq + 10; writeToStorage(freq,addr_freq); } else if(valor == 'k') { // Serial.println("k Recived"); readFromStorage(addr_freq); freq = stored_value; freq = freq - 10; writeToStorage(freq,addr_freq); } else if(valor == 'p') { // Serial.println("m Recived"); writeToStorage(0,addr_freq); writeToStorage(0,addr_duty); } } //Fungsi Voltase void lecturaVoltios(){ vinv=0.0f; voutv=0.0f; for (int i=0;i < 100;i++){ voutv = (analogRead(A7) * arefVolt) / 1023; //Baca tegangan masukan vinv += voutv / (resistencia2 / (resistencia1 + resistencia2)); //Rumus pembagi resistensi untuk tegangan akhir if(vinv < 0.9){ vinv=0.0f; } } vinv = vinv/100; } void sendData() { /* Serial.print("<"); Serial.print(sensorValue); Serial.print("/"); Serial.print(freq); Serial.print("/"); Serial.print( duty_cycle); Serial.print("/"); Serial.print( vinv); Serial.print(">"); Serial.println();*/ String data = "<"; data +=sensorValue; data +="/"; data +=freq; data +="/"; data +=duty_cycle; data +="/"; data +=vinv; data +=">"; /* bluetooth.print("<"); bluetooth.print(sensorValue); bluetooth.print("/"); bluetooth.print(freq); bluetooth.print("/"); bluetooth.print( duty_cycle); bluetooth.print("/"); bluetooth.print( vinv); bluetooth.print(">");*/ Serial.println(data); } 

Skematik

Detektor Logam Induksi Pulsa Arduino Nano – Kit & Panduan DIY

Proses manufaktur

  1. Buat Voltmeter Cerdas dengan Arduino & Smartphone – Proyek DIY Mudah
  2. Pixie: Jam Tangan NeoPixel Berbasis Arduino – Jam LED DIY yang Elegan
  3. Detektor Frekuensi Audio Arduino – Ukur Puncak Suara Terkeras dengan Modul Sensitivitas Tinggi
  4. Bangun Papan Skate VR DIY dengan Arduino, Google Cardboard, dan Bluetooth
  5. Bangun Automata Seluler Real-Time di Arduino dengan Layar OLED 128x64
  6. Buat Sendiri Perangkat Perawatan EMR Radionik Arduino
  7. Simulator Balap 2D DIY Menggunakan Arduino Nano & Servo SG90
  8. Detektor Jarak Ultrasonik dengan Arduino UNO dan Sensor SR04
  9. Sistem Keamanan Berbasis Arduino: Deteksi Gerakan Cerdas & Peringatan
  10. Membuat Detektor Petir Hemat Biaya dengan Arduino Uno