كيف يعمل جهاز كشف المعادن بالحث النبضي
تعمل معظم أجهزة الكشف عن المعادن على حقيقة أن المعادن في المجال المغناطيسي تغير سلوك الحقل. هناك طريقتان عامتان لكشف هذه التغييرات. في أحد الأساليب ، يتم توفير تيار متناوب لملف الإرسال. يتم استخدام ملف التلقي لالتقاط المجال المغناطيسي المتولد عن جهاز الإرسال. إذا كان جزء من المعدن يأتي داخل نطاق خطوط المجال المغناطيسي ، يمكن لملف التلقي أن يكتشف تغيراً في اتساع وخطوة الإشارة المستقبلة. مقدار تغير السعة وتغيير الطور هو مؤشر لحجم المعدن ومساحته ، ويمكن أيضًا استخدامه للتمييز بين المعادن الحديدية وغير الحديدية.
في النهج الآخر ، يتم إرسال نبضات إلى ملف الإرسال. الحقل المغناطيسي الذي تسببه هذه النبضات ينتج تيارات دائرية في معادن قريبة من الملف. إذا تم تبديل الحقل المغناطيسي بالسرعة الكافية ، يمكن الكشف عن التيارات الدوامية مع ملف الإرسال ، الذي يعمل بعد ذلك كمستقبل.
غالبًا ما يصل التحريض النبضي إلى أهداف أعمق من أجهزة الكشف المستندة إلى التردد ، ولكن التمييز بين أنواع مختلفة من المعادن يكون أكثر صعوبة.
تصميم لفائف البحث:
هناك العديد من المشاريع التي تطوف على شبكة الإنترنت فيما يتعلق بالكشف عن المعادن الحث النبضي. وعلى الرغم من اختلافها في الطريقة التي تتم بها معالجة الإشارات ، إلا أن الأجهزة الإلكترونية التي تولد نبضات المجال المغنطيسي تكاد تكون متطابقة دائمًا.
الجزء الرئيسي لتوليد نبضات مغناطيسية هو الملف. يعتمد حجم الملف بشكل أساسي على عمق الكشف المطلوب والحد الأدنى لحجم الأشياء التي لا يزال يتعين الكشف عنها. بشكل عام ، يمكنك أن تقول أن أقصى عمق كشف نظري للملف هو خمسة أضعاف القطر والحد الأدنى لحجم الكائن المكتشف بملف هو 5٪ من القطر. هذه هي القيم القصوى وتعتمد بشكل كبير على الوضع. من الواضح أنه مع ملف طوله متر واحد ، لن تكتشف شيئًا يبلغ حجمه خمسة سنتيمترات على عمق خمسة أمتار. ومع ذلك ، فإنه يعطي فكرة ما نوع الملف الذي تحتاجه لمشكلة معينة. سيستخدم العديد من الأشخاص أجهزة الكشف عن المعادن للبحث عن العملات المعدنية والمجوهرات. في هذه الحالات ، سوف يعمل ملف 250 أو 400 مم. في وضعي كنت بحاجة لتحديد موقع أنابيب المياه من الحديد عيار 100 ملم على عمق مترين. هذا هو السبب في أنني قررت الذهاب لملف 1 متر.
على الرغم من أن الحجم المادي وشكل الملف قد يختلفان (يتم استخدام الملفات المربعة أو الإهليلجية في حالات محددة والعمل فقط مثل الدوران) ، إلا أن محاثة الملفات لا تختلف إلا قليلاً بين التصميمات الفيزيائية المختلفة. يكون المحاثة المثالية المقبولة بشكل عام لملفات البحث لكاشفات المعادن الحثية النبضية بين 300 و 500 ميكرو. لهذا المشروع سوف أفترض أن الملفات المستخدمة هي 400 µH. لفائف أصغر ، وهذا يعني بشكل عام عدد أكبر من اللفات.
يجب تشغيل ملف البحث من مصادر طاقة متاحة بشكل شائع. وبسبب الدارات التناظرية لتضخيم الإشارات الدوامية الصغيرة الملتقطة بعد توقف النبضة المغنطيسية ، يكون تزويد الطاقة بمقدار ± 10 فولت أو ± 12 فولت عمليًا. سوف يتم شحن اللولب فقط بأحد جانبي إمداد الطاقة ، مما يعطي تفريغ بطارية غير متماثل إذا استخدمنا مجموعتي بطارية منفصلتين للجانب الإيجابي والسلبي لإمدادات الطاقة.وهدا يفسر وجود مصدرين للطاقة في الجهاز.
عندما يتم تطبيق هذا الجهد على الملف عن طريق ترانزستور ثنائي القطب عالي السرعة أو MOSFET ، فإن التيار في الملف سيزيد تدريجيا حتى يتم تحديده من خلال المقاومة الداخلية للملف ، وترانزستور الشحن والمكونات الأخرى المحتملة ذات المقاومة في الخط. كلما زاد شحنها ، كلما ارتفع المجال المغناطيسي. وهذا له مزايا وعيوب. يمكن للحقول المغناطيسية اختراق أعماق التربة. ولكن إذا فترضنا شحنا لفترة أطول ، فلنقل على سبيل المثال 250 ثانية\ألف (ميكروسكند) ، قد تفرط في تشبع الأرض مما يجعل الأشياء الصغيرة غير مرئية بسبب ضجيج الخلفية. لذلك يجب أن نحدد مدة الشحن القصوى إلى حوالي 250 ثانية\ألف ، مع مقاومة دارة منخفضة بما يكفي للسماح بتوليد تيار كافي في الملف أثناء ذلك.
خلال الميليروسوكوندات الخمسة الأولى عندما يكون منحنى التفريغ في المرحلة 1 والمرحلة 2 ، يتم تثبيت الإشارة بواسطة دايودات الحماية في دارة الإدخال. بعد ذلك ينزل المنحنى ببطء ، سرعة النزول تعتمد على وجود الهدف ونسبة توصيل ذلك الهدف. في الجزء العلوي من المنحنى ، سوف تتسبب المعادن الحديدية المغنطيسية في تأخير صغير للإشارة إلى انخفاض أقل من 0.7 فولت ، حيث ستغير المعادن غير الحديدية هذه النقطة الانتقالية في وقت أبكر قليلاً. المواد ذات التوصيل العالي مثل الذهب والفضة والنحاس سيكون لها منحنى حاد وتنزل بسرعة إلى الصفر. نرى أنه بعد حوالي 30 ميكروثانية ، أصبح التمييز بين الأنواع المستهدفة المختلفة أمرًا مستحيلًا تقريبًا. من خلال تحليل عدد من هذه المنحنيات ، من الممكن إجراء تخمين متعمد حول المادة المستهدفة للكشف المكتشف بواسطة كاشف المعادن التعريفي النبضي. وكما هو الحال مع جميع أجهزة الكشف عن المعادن ، فإنه يعتبر تخمينًا متعلمًا وليس جوابًا محددًا ، لأن الحجم والعمق والأهداف المحيطة واستجابة التربة قد يغيران الإشارة بطريقة تجعل التمييز المناسب غير ممكن.
تصميم امدادات الطاقة
واحدة من المشاكل الرئيسية عند تطوير كاشف المعادن بالحث على النبض جيدة مع معالجة الإشارات الرقمية هو التصميم الصحيح لإمدادات الطاقة. سيحتوي النظام على ثلاثة مستخدمين للطاقة كل منهم لاحتياجاتهم الخاصة. يجب ألا يكون للتيارات الذروية في جزء واحد من مصدر الطاقة أي تأثير سلبي على الأجزاء الأخرى في النظام. يجب أن تظل الأرض التناظرية والرقمية منفصلة قدر الإمكان. هذا ليس من السهل تحقيقه إذا أردنا أيضا مصدر الدائرة بأكملها من بطارية واحدة.
لفائف العرض
الملف هو بلا شك أكبر مستهلك حالي في الدائرة. يتم توليد البقول التي قد تصل إلى عدة أمبيرات عن طريق تبديل الملف وإيقافه عن طريق MOSFET. لذلك ينبغي تغذية الملف مباشرة من حزمة البطارية. لا يوجد أي منظم خطي أو محول DC / DC لديه القدرة على توليد هذه النبضات القصيرة الحالية ، دون تأثيرات شديدة في مكان ما في النظام. يمكننا استخدام مقاومات متسلسلة صغيرة ومكثف عازل كبير لحماية البطاريات من تيارات العرض الكبيرة.
برنامج الميكروكنترولر
دارة 5 فولط
في
الصورة اعلاه المخطط الكامل الذي انجزته باستعمال البرنامج الشهير بروتوز و
يمكنك تحميل هذه الصورة مباشرة بالضغط عليها او التوجه الى رابط التحميل
الذي وضعت لكم.
يحتوي هذا المخطط تقريبا على كل المركبات الالكترونية التي ستحتاجونها ويمكنكم وضع لائحة قطع انطلاقا من الصورة فقط.
وللاشارة يمكن الاستغناء عن شاشة الالسيديه
و المكروكنترولر المستعمل هو من نوع pic16f876 pic16f873 والذي يحتوي على مداخل analog.
بصفة
عامة يحتاج هذا المخطط الي تغذيتين 5و 12 فولط، الاولى لتغذية
الميكروكنترولر و المضخم العملياتي و الثانية لتغذية باقي الدارة
الالكترونية .
و للاشارة فيمكن تغذية المضخم باستخدام 12 فولط أيضا.
برنامج الميكروكنترولر
مخطط
منظم الجهد 5 فولت والتي يمكن صنعه من ثلاثة مكونات فقط ، طريقة بسيطة
ورخيصة وسهلة للحصول على تيار يصل إلى 1 أمبير والجهد الذي لا يزيد عن 5
فولت و ايضا لا يمكن تنظيمه إلا من خلال هذه الدائرة ، يمكن استخدام هذه
الدائرة كتغذية رئيسية للمركبات الالكترونية كالميكروكنترولر
ملف الهيكس او برنامج الميكروكنترولر
باستعمال برنامج ميكروسيه قمت بتطوير كود البرنامج بلغة سيه مصغرة واستخرجته بصيغة هيكس ليسهل وضعه داخل المكروكنترولر
باستعمال برنامج ميكروسيه قمت بتطوير كود البرنامج بلغة سيه مصغرة واستخرجته بصيغة هيكس ليسهل وضعه داخل المكروكنترولر
يمكنك برمجة الميكرو باستخدام عدة مبرمجات منها
المبرمجين الذين ذكرنا في الحلقة على قناة ثفافة المعرفة
عند تحميل الكود يجب فك ضغطه باستخدام برنامج ونرار و وضعه في ملف خاص يسهل الوصول اليه أثناء البرمجة.
من أجل تحميل الكود بصيغة هيكس من سيرفر درايف توجه نحو الرابط اسفله
جميع الملفات اللازمة لصنع كاشف المعادن
وضعت
لكم جميع الملفات اللازمة في مجلد واحد قابل للتحميل و هو مضغوط بصيغة
وينرار، و عند تحميل الملفات يجب اولا فك ضغطها باستعمال نفس البرنامج
لتفادي المشاكل.
و
يحتوي المجلد أيضا المخطط بصيغة بروتوز يمكن وضع سيميليشن مباشرة على
البرنامج و يمكنكم استخراج جميع الصور الاخرى بنفسكم باستخدام هذا البرنامج
الرائع.
تقريبا كل الصور وضعتها بصيغة بيدياف لتسهل طباعتها على الورق او على البوردة
اماكن الثقوب
اماكن الثقوب
هناك عدة طرق لانجاز هذه البوردة، وضعت لكم صورة لاماكن الثقوب و يمكنكم استعمالها و هذه مراحل الانجاز:
1 يتم طبع هذه الصورة بشكل معكوس على ورقة.
2 ألصقها على البوردة النحاسية من الجهة المعدنية
3 ثم تضع الثقوب في اماكنها باتباع الدوائر الصغيرة
عند الانتهاء انزع الورقة لتحصل في الاخير على ثقوب منجزة بشكل دقيق.
انطلاقا من هذه الصفحة يمكنك تحميل الصورة على شكل pdf و طباعتها مباشرة،
البرنامج المستعمل لضغط الملف هو ونرار wirar و الذي ستحتاج اليه من اجل فك الضغط و الملف موجود على درايف.
في هذه الصورة يمكنكم مشاهدة المخطط الثاني و هو تركيبة للمضخم العملياتي مع الدايودين و المقاومات و المكثفات و منظم التيار.
يمكنكم صنع هذه التركيبة و تجربتها لوحدها اولا للتأكد من عملها قبل دمجهافي باقي الدارة الالكترونية و هي سهلة الصنع.
من اجل فهم الموضوع جيد اشاهد الفيديو على القناة
يمكنكم اخذ هذا الكود و لصقه مباشرة على برنامج ميكروسيه و التعديل عليه من اجل استخراج كود الهيكس.
-----------------------------------------
// CONFIG
#pragma config FOSC = HS // Oscillator Selection bits (HS oscillator)
#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = ON // Power-up Timer Enable bit (PWRT enabled)
#pragma config BOREN = ON // Brown-out Reset Enable bit (BOR enabled)
#pragma config LVP = OFF // Low-Voltage (Single-Supply) In-Circuit Serial Programming Enable bit (RB3 is digital I/O, HV on MCLR must be used for programming)
#pragma config CPD = OFF // Data EEPROM Memory Code Protection bit (Data EEPROM code protection off)
#pragma config WRT = OFF // Flash Program Memory Write Enable bits (Write protection off; all program memory may be written to by EECON control)
#pragma config CP = OFF // Flash Program Memory Code Protection bit (Code protection off)
// #pragma config statements should precede project file includes.
// Use project enums instead of #define for ON and OFF.
//***Define the signal pins of all four displays***//
#define s1 portb.Rb0
#define s2 portb.Rb1
#define s3 portb.Rb2
#define s4 portb.Rb3
//***End of definition**////
void main()
{
unsigned int a,b,c,d,e,f,g,h,adc,adc00,y; //just variables
int i = 0; //the 4-digit value that is to be displayed
int flag =0; //for creating delay
unsigned int seg[]={0b00000011, //Hex value to display the number 0
0b10011111, //Hex value to display the number 1
0b00100101, //Hex value to display the number 2
0b00001101, //Hex value to display the number 3
0b10011001, //Hex value to display the number 4
0b01001001, //Hex value to display the number 5
0b01000001, //Hex value to display the number 6
0b00011111, //Hex value to display the number 7
0b00000001, //Hex value to display the number 8
0b00001001 //Hex value to display the number 9
}; //End of Array for displaying numbers from 0 to 9
ADCON1 = 0xc0;
//*****I/O Configuration****//
//TRISA = 0xFF;
TRISb=0X00;
PORTb=0X00;
TRISc=0x00;
PORTc=0X00;
trisa.ra5=0;
porta.ra5=0;
trisa.ra3=0;
porta.ra3=0;
//***End of I/O configuration**///
#define _XTAL_FREQ 20000000
for(y=1 ;y<600;y++){
PORTa.Ra3=0;
Delay_us(240);
PORTa.Ra3=1;
Delay_us(200);}
adc00 = ADC_Read(0);
{
for(y=1 ;y<20;y++) {porta.ra5=1;delay_us(1000);porta.ra5=0;delay_us(1000);} y=1 ; delay_ms(50);
for(1;y<20;y++) {porta.ra5=1;delay_us(1000);porta.ra5=0;delay_us(1000);} y=1; delay_ms(50);
for(1;y<20;y++) {porta.ra5=1;delay_us(1000);porta.ra5=0;delay_us(1000);} delay_ms(50);
for(y=1 ;y<20;y++) {porta.ra5=1;delay_us(1000);porta.ra5=0;delay_us(1000);} y=1 ; delay_ms(50);
for(1;y<20;y++) {porta.ra5=1;delay_us(1000);porta.ra5=0;delay_us(1000);} y=1; delay_ms(50);
for(1;y<20;y++) {porta.ra5=1;delay_us(1000);porta.ra5=0;delay_us(1000);} delay_ms(50);
}
while(1)
{
//***Splitting "i" into four digits***//
a=i%10;//4th digit is saved here
b=i/10;
c=b%10;//3rd digit is saved here
d=b/10;
e=d%10; //2nd digit is saved here
f=d/10;
g=f%10; //1st digit is saved here
h=f/10;
//***End of splitting***//
PORTc=seg[g];s1=1; //Turn ON display 1 and print 4th digit
delay_ms(1);s1=0; //Turn OFF display 1 after 5ms delay
PORTc=seg[e];s2=1; //Turn ON display 2 and print 3rd digit
delay_ms(1);s2=0; //Turn OFF display 2 after 5ms delay
PORTc=seg[c];s3=1; //Turn ON display 3 and print 2nd digit
delay_ms(1);s3=0; //Turn OFF display 3 after 5ms delay
PORTc=seg[a];s4=1; //Turn ON display 4 and print 1st digit
delay_ms(1);s4=0; //Turn OFF display 4 after 5ms delay
//if(flag>=100) //wait till flag reaches 100
{
PORTa.Ra3=0;
Delay_us(240);
PORTa.Ra3=1;
delay_us(200);
adc = ADC_Read(0);// Get 10-bit results of AD conversion //of channel 1
if(adc>adc00) {porta.ra5=1;delay_ms(10);porta.ra5=0;delay_ms(10);porta.ra5=1;delay_ms(10);porta.ra5=0;delay_ms(10);}
else portb.ra5=0;
Delay_ms(10);
porta.ra5=0;
i=adc/10.3;
//delay_us(1000);
//i++;flag=0; //only if flag is hundred "i" will be incremented
}
//flag++; //increment flag for each flash
}
}
----------------------------------
#pragma config FOSC = HS // Oscillator Selection bits (HS oscillator)
#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = ON // Power-up Timer Enable bit (PWRT enabled)
#pragma config BOREN = ON // Brown-out Reset Enable bit (BOR enabled)
#pragma config LVP = OFF // Low-Voltage (Single-Supply) In-Circuit Serial Programming Enable bit (RB3 is digital I/O, HV on MCLR must be used for programming)
#pragma config CPD = OFF // Data EEPROM Memory Code Protection bit (Data EEPROM code protection off)
#pragma config WRT = OFF // Flash Program Memory Write Enable bits (Write protection off; all program memory may be written to by EECON control)
#pragma config CP = OFF // Flash Program Memory Code Protection bit (Code protection off)
// #pragma config statements should precede project file includes.
// Use project enums instead of #define for ON and OFF.
//***Define the signal pins of all four displays***//
#define s1 portb.Rb0
#define s2 portb.Rb1
#define s3 portb.Rb2
#define s4 portb.Rb3
//***End of definition**////
void main()
{
unsigned int a,b,c,d,e,f,g,h,adc,adc00,y; //just variables
int i = 0; //the 4-digit value that is to be displayed
int flag =0; //for creating delay
unsigned int seg[]={0b00000011, //Hex value to display the number 0
0b10011111, //Hex value to display the number 1
0b00100101, //Hex value to display the number 2
0b00001101, //Hex value to display the number 3
0b10011001, //Hex value to display the number 4
0b01001001, //Hex value to display the number 5
0b01000001, //Hex value to display the number 6
0b00011111, //Hex value to display the number 7
0b00000001, //Hex value to display the number 8
0b00001001 //Hex value to display the number 9
}; //End of Array for displaying numbers from 0 to 9
ADCON1 = 0xc0;
//*****I/O Configuration****//
//TRISA = 0xFF;
TRISb=0X00;
PORTb=0X00;
TRISc=0x00;
PORTc=0X00;
trisa.ra5=0;
porta.ra5=0;
trisa.ra3=0;
porta.ra3=0;
//***End of I/O configuration**///
#define _XTAL_FREQ 20000000
for(y=1 ;y<600;y++){
PORTa.Ra3=0;
Delay_us(240);
PORTa.Ra3=1;
Delay_us(200);}
adc00 = ADC_Read(0);
{
for(y=1 ;y<20;y++) {porta.ra5=1;delay_us(1000);porta.ra5=0;delay_us(1000);} y=1 ; delay_ms(50);
for(1;y<20;y++) {porta.ra5=1;delay_us(1000);porta.ra5=0;delay_us(1000);} y=1; delay_ms(50);
for(1;y<20;y++) {porta.ra5=1;delay_us(1000);porta.ra5=0;delay_us(1000);} delay_ms(50);
for(y=1 ;y<20;y++) {porta.ra5=1;delay_us(1000);porta.ra5=0;delay_us(1000);} y=1 ; delay_ms(50);
for(1;y<20;y++) {porta.ra5=1;delay_us(1000);porta.ra5=0;delay_us(1000);} y=1; delay_ms(50);
for(1;y<20;y++) {porta.ra5=1;delay_us(1000);porta.ra5=0;delay_us(1000);} delay_ms(50);
}
while(1)
{
//***Splitting "i" into four digits***//
a=i%10;//4th digit is saved here
b=i/10;
c=b%10;//3rd digit is saved here
d=b/10;
e=d%10; //2nd digit is saved here
f=d/10;
g=f%10; //1st digit is saved here
h=f/10;
//***End of splitting***//
PORTc=seg[g];s1=1; //Turn ON display 1 and print 4th digit
delay_ms(1);s1=0; //Turn OFF display 1 after 5ms delay
PORTc=seg[e];s2=1; //Turn ON display 2 and print 3rd digit
delay_ms(1);s2=0; //Turn OFF display 2 after 5ms delay
PORTc=seg[c];s3=1; //Turn ON display 3 and print 2nd digit
delay_ms(1);s3=0; //Turn OFF display 3 after 5ms delay
PORTc=seg[a];s4=1; //Turn ON display 4 and print 1st digit
delay_ms(1);s4=0; //Turn OFF display 4 after 5ms delay
//if(flag>=100) //wait till flag reaches 100
{
PORTa.Ra3=0;
Delay_us(240);
PORTa.Ra3=1;
delay_us(200);
adc = ADC_Read(0);// Get 10-bit results of AD conversion //of channel 1
if(adc>adc00) {porta.ra5=1;delay_ms(10);porta.ra5=0;delay_ms(10);porta.ra5=1;delay_ms(10);porta.ra5=0;delay_ms(10);}
else portb.ra5=0;
Delay_ms(10);
porta.ra5=0;
i=adc/10.3;
//delay_us(1000);
//i++;flag=0; //only if flag is hundred "i" will be incremented
}
//flag++; //increment flag for each flash
}
}
----------------------------------
Inscription à :
Publier les commentaires
(
Atom
)
السلام عليكم
RépondreSupprimerالرابط لا يعمل من فضلك ممكن ترسلي الملفات على الجيميل
سؤال آخر: ماهو جهاز استقبال الموجات تحت الصوتية ELF
وشكرا
السلام عليكم ممكن لو سمحت تبعت ملف البورد المطبوعة على بنامج البروتوز لانه لا يعمل ضروري جدا
RépondreSupprimer