فهرست مطالب:

آشکارساز القایی پالس مبتنی بر آردوینو - سیم پیچ تلنگر: 5 مرحله (همراه با تصاویر)
آشکارساز القایی پالس مبتنی بر آردوینو - سیم پیچ تلنگر: 5 مرحله (همراه با تصاویر)

تصویری: آشکارساز القایی پالس مبتنی بر آردوینو - سیم پیچ تلنگر: 5 مرحله (همراه با تصاویر)

تصویری: آشکارساز القایی پالس مبتنی بر آردوینو - سیم پیچ تلنگر: 5 مرحله (همراه با تصاویر)
تصویری: ساخت مدار افزایش دهنده ولتاژ - ساخت مدار افزاینده ولتاژ دی سی به دی سی 2024, دسامبر
Anonim
آشکارساز القایی پالس مبتنی بر آردوینو - Flip Coil
آشکارساز القایی پالس مبتنی بر آردوینو - Flip Coil
آشکارساز القایی پالس مبتنی بر آردوینو - Flip Coil
آشکارساز القایی پالس مبتنی بر آردوینو - Flip Coil

ایده

با ساختن برخی فلزیاب ها در گذشته با نتایج متفاوت ، می خواستم قابلیت های آردوینو را در این جهت بررسی کنم.

چند مثال خوب از نحوه ساخت فلزیاب با آردوینو وجود دارد ، برخی در اینجا به عنوان دستورالعمل وجود دارد. اما وقتی به آنها نگاه می کنیم ، آنها معمولاً به برخی از اجزای خارجی برای درمان سیگنال آنالوگ نیاز دارند یا حساسیت آن بسیار کم است.

وقتی به فلزیاب ها فکر می کنید ، موضوع اصلی این است که چگونه تغییرات جزئی ولتاژ را در سیگنال های مربوط به سیم پیچ جستجو حس کنید. این تغییرات معمولاً بسیار کوچک هستند. واضح ترین روش در استفاده از ورودی های آنالوگ ATmega328 خواهد بود. اما با نگاهی به مشخصات ، دو مشکل اساسی وجود دارد: آنها (اغلب) کند هستند و وضوح تصویر (در بیشتر موارد) کم است.

از سوی دیگر ، آردوینو با فرکانس 16 مگاهرتز کار می کند و دارای قابلیت های زمانی بسیار خوبی است. ه در صورت استفاده از سرعت ساعت ، وضوح 0.0625µS بنابراین به جای استفاده از ورودی آنالوگ برای سنجش ، ساده ترین روش برای تشخیص تغییرات دینامیکی کوچک در ولتاژ ، مقایسه تغییر افت ولتاژ در طول زمان در یک ولتاژ مرجع ثابت است.

بدین منظور ، ATmega328 دارای ویژگی مرتب یک مقایسه کننده داخلی بین D6 و D7 است. این مقایسه کننده می تواند وقفه ای را ایجاد کرده و امکان مدیریت دقیق رویداد را فراهم کند. با کنار گذاشتن برنامه های زمان بندی دقیق و دقیق مانند millis () و micos () و ورود به تایمر داخلی ATmega328 با وضوح بسیار بالاتر ، Arduino مبنایی عالی برای رویکردهای تشخیص فلزات است.

بنابراین ، از دیدگاه کد منبع ، شروع خوب برنامه ریزی مقایسه کننده داخلی برای "تغییر" در قطبیت ورودی ها و استفاده از شمارنده داخلی با بالاترین سرعت ممکن برای تغییر زمان تغییرات است.

کد کلی در Arduido برای دستیابی به این عبارت است:

// تعریف کلیه متغیرهای پیش نیاز و غیره و تنظیم ثبات ها

ساعت char charSelectBits = _BV (CS10)؛ // بدون پیش فرض ، کامل xtal void setup () {pinMode (6، INPUT)؛ // + مقایسه کننده - با تنظیم آنها به عنوان INPUT ، آنها // روی امپدانس بالا pinMode (7 ، INPUT) تنظیم می شوند ؛ // - مقایسه کننده - با تنظیم آنها به عنوان INPUT ، آنها // بر روی امپدانس بالا cli () تنظیم می شوند؛ // توقف توقف TCCR1A = 0؛ // کل ثبت TCCR1A را روی 0 تنظیم کنید TCCR1B = 0؛ // برای TCCR1B -> حالت عادیTCNT1 = 0 ؛ // مقداردهی اولیه را به 0 تنظیم کنید ؛ TCCR1B | = clockSelectBits؛ // تنظیم کننده پیش فروش و شروع به کار ساعت TIMSK1 = _BV (TOIE1) ؛ // وقفه سرریز تایمر را فعال می کند bit sei ()؛ // اجازه وقفه ACSR = (0 << ACD) | // مقایسه کننده آنالوگ: فعال شده (0 << ACBG) | // مقایسه کننده آنالوگ Bandgap Select: AIN0 روی ورودی مثبت اعمال می شود (0 << ACO] | // خروجی مقایسه کننده آنالوگ: خاموش (1 << ACI) | // پرچم وقفه مقایسه کننده آنالوگ: وقفه روشن در انتظار (1 << ACIE) | // وقفه مقایسه کننده آنالوگ: فعال است (0 << ACIC) | // ورودی مقایسه کننده آنالوگ ضبط: غیر فعال (0 << ACIS1 | 0 << ACIS0 // وقفه در ضامن خروجی // (0 << ACIS1 | 1 << ACIS0 // رزرو شده // (1 << ACIS1 | 0 << ACIS0 // وقفه در سقوط لبه خروجی // (1 << ACIS1 | 1 << ACIS0 // وقفه در افزایش لبه ورودی ؛}

// این روال هر بار که مقایسه کننده وقفه ایجاد می کند فراخوانی می شود

ISR (ANALOG_COMP_vect) {oldSREG = SREG؛ cli ()؛ timeStamp = TCNT1؛ SREG = oldSREG؛ }

// این روال هر بار که در شمارنده داخلی سرریز می شود فراخوانی می شود

ISR (TIMER1_OVF_vect) {timer1_overflow_count ++؛ }

// از این روال برای تنظیم مجدد تایمر به 0 استفاده می شود

void resetTimer (void) {oldSREG = SREG؛ cli ()؛ // غیرفعال کردن وقفه ها TCNT1 = 0؛ // مقداردهی اولیه 0 به SREG = oldSREG ؛ // بازیابی وضعیت ثبت TCCR1B | = clockSelectBits؛ // prescaler را تنظیم می کند و زمان سنج را شروع می کند1_overflow_count = 0؛ // تنظیم مجدد شمارنده سرریز}

البته این ایده کاملاً جدید نیست. قسمت اصلی این کد را می توان در جاهای دیگر یافت. یک پیاده سازی خوب برای رویکردهای میکروکنترلر موجود در صفحه اصلی TPIMD - Tiny Pulse Induction فلزیاب.

www.miymd.com/index.php/projects/tpimd/ (متأسفانه این صفحه دیگر آنلاین نیست ، در حال حاضر یک نسخه پشتیبان از سایت به آدرس www.basic4mcu.com وجود دارد که برای "TPIMD" جستجو می شود).

مرحله 1: ایده القایی پالس آردوینو - تلنگر کویل

ایده القایی نبض آردوینو - تلنگر کویل
ایده القایی نبض آردوینو - تلنگر کویل
ایده القایی پالس آردوینو - Flip Coil
ایده القایی پالس آردوینو - Flip Coil

ایده این است که از Arduino به عنوان یک آشکارساز القایی پالس استفاده کنید ، مانند TPIMD ، زیرا ایده زمان بندی منحنی پوسیدگی به خوبی کار می کند. مشکل آشکارسازهای القایی پالس این است که آنها برای کار معمولاً به ولتاژ متفاوتی نیاز دارند. یک ولتاژ برای تغذیه سیم پیچ و یک ولتاژ جداگانه برای مقابله با منحنی پوسیدگی. این دو منبع ولتاژ آشکارسازهای القایی پالس را همیشه کمی پیچیده می کند.

با نگاهی به ولتاژ سیم پیچ در یک آشکارساز PI ، منحنی حاصل می تواند در دو مرحله مختلف تقسیم شود. مرحله اول ، خود پالس است که سیم پیچ را تغذیه می کند و میدان مغناطیسی را ایجاد می کند (1). مرحله دوم منحنی پوسیدگی ولتاژ است که با یک پیک ولتاژ شروع می شود ، سپس سریع به ولتاژ "بدون قدرت" سیم پیچ منتقل می شود (2). مشکل این است که سیم پیچ بعد از نبض قطبیت خود را تغییر می دهد. آیا نبض مثبت است (وار 1. در تصویر پیوست) منحنی پوسیدگی منفی است. آیا نبض منفی است ، منحنی پوسیدگی مثبت خواهد بود (وار 2. در تصویر پیوست)

برای حل این مشکل اساسی ، سیم پیچ باید بعد از پالس به صورت الکترونیکی "واژگون" شود. در این حالت نبض می تواند مثبت و منحنی پوسیدگی نیز مثبت باشد.

برای دستیابی به این هدف ، سیم پیچ باید بعد از پالس از Vcc و GND جدا شود. در این لحظه ، فقط یک جریان از طریق مقاومت میرایی جریان می یابد. این سیستم جدا شده از سیم پیچ و مقاومت میرایی می تواند بیش از هر ولتاژ مرجع "جهت دار" باشد. این ، از لحاظ تئوری ، منحنی مثبت ترکیبی را ایجاد می کند (پایین نقاشی)

این منحنی مثبت را می توان از طریق مقایسه کننده برای تشخیص نقطه ای از زمان که ولتاژ پوسیدگی از "ولتاژ مرجع" عبور می کند ، استفاده کرد. در مورد گنجینه های نزدیک به سیم پیچ ، منحنی پوسیدگی تغییر می کند و نقطه عبور ولتاژ مرجع تغییر می کند. این تغییر را می توان تشخیص داد.

پس از چند آزمایش مدار زیر ثابت کرد که کار می کند.

مدار شامل یک ماژول آردوینو نانو است. این ماژول دو ترانزیستور MOSFET که سیم پیچ را (در SV3) از طریق D10 تغذیه می کند ، هدایت می کند. هنگامی که پالس در D10 به پایان می رسد ، هر دو MOSFET سیم پیچ را از 12V و GND جدا می کنند. انرژی ذخیره شده در سیم پیچ از طریق R2 (220 اهم) خارج می شود. در همان زمان R1 (560 اهم) طرف مثبت سابق سیم پیچ را با GND متصل می کند. این منحنی پوسیدگی منفی در R5 (330 اهم) را به منحنی مثبت تغییر می دهد. دیودها از پین ورودی آردوینو محافظت می کنند.

R7 یک تقسیم کننده ولتاژ در حدود 0.04V است. در حال حاضر منحنی پوسیدگی در D7 منفی تر از 0.04 در D6 می شود که وقفه ایجاد شده و مدت زمان پس از پایان نبض ذخیره می شود.

در مورد فلز نزدیک سیم پیچ ، منحنی پوسیدگی بیشتر طول می کشد و زمان بین پایان نبض و وقفه طولانی تر می شود.

مرحله 2: ساخت آشکارساز (تخته نان)

ساخت آشکارساز (تخته نان)
ساخت آشکارساز (تخته نان)
ساخت آشکارساز (تخته نان)
ساخت آشکارساز (تخته نان)
ساخت آشکارساز (تخته نان)
ساخت آشکارساز (تخته نان)

ساخت آشکارساز بسیار آسان است. این کار را می توان هم روی تخته نان (چسبیدن به مدار اصلی) و هم با لحیم کاری قطعات روی PCB انجام داد.

LED D13 روی برد Arduino Nano به عنوان نشانه ای برای فلز استفاده می شود

برداشتن تخته نان سریعترین راه برای آشکارساز در حال کار است. مقداری سیم کشی مورد نیاز است ، اما این را می توان با یک تخته نان کوچک انجام داد. در تصاویر این کار در 3 مرحله نشان داده شده است زیرا Arduino و MOSFET برخی از سیم ها را پنهان کرده اند. هنگام آزمایش ، دیودها را به نوعی بدون توجه در ابتدا قطع کردم. این هیچ تاثیری منفی بر رفتار آشکارساز نداشت. در نسخه PCB مدار ، آنها را به طور کامل کنار گذاشتم.

اتصالات به یک صفحه نمایش 0.96 OLED در تصاویر نشان داده نشده است. این صفحه نمایش متصل است:

Vcc - 5V (در پین آردوینو ، نه ولتاژ تغذیه !!!)

GND - GND

SCL - A5

SDA - A4

این صفحه نمایش OLED برای کالیبراسیون آشکارساز در ابتدا مورد نیاز است. این کار با تنظیم ولتاژ مناسب در PIN6 آردوینو انجام می شود. این ولتاژ باید در حدود 0.04V باشد. صفحه نمایش به تنظیم ولتاژ مناسب کمک می کند.

نسخه تخته نان بسیار خوب کار می کند ، اگرچه احتمالاً برای رفتن به طبیعت مناسب نیست.

مرحله 3: رفتن به PCB

رفتن به PCB
رفتن به PCB
رفتن به PCB
رفتن به PCB
رفتن به PCB
رفتن به PCB
رفتن به PCB
رفتن به PCB

در مورد لحیم کاری ، من واقعاً PCB دو طرفه با تکنولوژی بالا را دوست ندارم ، بنابراین مدار را تغییر دادم تا روی PCB یک طرفه نصب شود.

تغییرات زیر انجام شد:

1. دیودها کنار گذاشته شدند.

2. دروازه MOSFET ها دارای مقاومت 10 اهم هستند

3. ولتاژ منبع تقسیم ولتاژ در D6 توسط یک سیگنال سطح بالا در D8 داده می شود

4. پین درایور MOSFET تغییر کرد.

به این ترتیب می توان یک PCB یک طرفه ایجاد کرد که می تواند روی PCB های معمولی لحیم شود. با استفاده از این مدار ، یک آشکارساز PI کار می کنید که فقط 8-10 جزء خارجی دارد (بسته به این که از صفحه نمایش OLED و/یا بلندگو استفاده شود).

مرحله 4: راه اندازی و استفاده از آشکارساز

راه اندازی و استفاده از آشکارساز
راه اندازی و استفاده از آشکارساز
راه اندازی و استفاده از آشکارساز
راه اندازی و استفاده از آشکارساز
راه اندازی و استفاده از آشکارساز
راه اندازی و استفاده از آشکارساز

اگر آشکارساز به درستی ساخته شود و برنامه روی آردوینو نوشته شود ، ساده ترین راه (اگر نه تنها) راه اندازی دستگاه استفاده از صفحه نمایش OLED است. صفحه نمایش به 5V ، GND ، A4 ، A5 متصل شده است. بعد از روشن شدن دستگاه ، صفحه نمایش باید "کالیبراسیون" را نشان دهد. بعد از چند ثانیه باید نوشته شود "calibration done" و سه عدد باید روی صفحه نمایش داده شود.

اولین عدد "مقدار مرجع" است که در طول کالیبراسیون مشخص شده است. مقدار دوم آخرین مقدار اندازه گیری شده و مقدار سوم مقدار میانگین 32 اندازه گیری گذشته است.

این سه مقدار باید کم و بیش یکسان باشند (در موارد آزمایش من زیر 1000). مقدار میانی باید کم و بیش پایدار باشد.

برای شروع تنظیم اولیه ، نباید فلزی در نزدیکی سیم پیچ وجود داشته باشد.

در حال حاضر تقسیم ولتاژ (پتانسیومتر تریم) باید به گونه ای بریده شود که دو مقدار پایینی باید حداکثر تنظیم شود و در عین حال قرائت پایدار داشته باشد. یک محیط بحرانی وجود دارد ، جایی که مقدار میانی شروع به خواندن مطالب عجیب می کند. اصلاح کننده را به عقب برگردانید تا دوباره مقادیر پایدار را بدست آورید.

ممکن است اتفاق بیفتد که صفحه نمایش منجمد شود. کافی است دکمه تنظیم مجدد را فشار داده و از نو شروع کنید.

برای تنظیم من (سیم پیچ: 18 دور در 20 سانتی متر) مقدار پایدار در حدود 630-650 است. پس از تنظیم ، دکمه تنظیم مجدد را فشار دهید ، واحد دوباره کالیبره می شود و همه مقادیر درخت باید دوباره در یک محدوده باشند. اگر فلز به سیم پیچ آورده شود ، LED روی Arduino-Board (D13) باید روشن شود. یک بلندگوی متصل برخی از صداهای کلیک را می دهد (جایی برای بهبود برنامه نویسی در آنجا وجود دارد).

برای جلوگیری از انتظارات بالا:

آشکارساز برخی از موارد را تشخیص می دهد ، اما یک آشکارساز بسیار ساده و محدود باقی می ماند.

برای نشان دادن قابلیت ها ، آشکارسازهای مرجع را با آشکارسازهای مختلف دیگر انجام داد. با نگاهی به نتایج ، هنوز برای یک آشکارساز با 8 قسمت خارجی اما با آشکارسازهای حرفه ای مطابقت ندارد ، هنوز هم بسیار چشمگیر است.

با نگاهی به مدار و برنامه ، فضای زیادی برای پیشرفت وجود دارد. مقادیر مقاومتها با تجربه یافت شد ، زمان پالس 250 میلی ثانیه به طور تصادفی انتخاب شد ، پارامترهای سیم پیچ نیز. اگر ایده ای برای پیشرفت دارید ، خوشحال می شوم در مورد آنها بحث کنم.

خوش بگذره!

مرحله 5: Update1: استفاده از LCD 16x2

Update1: استفاده از LCD 16x2
Update1: استفاده از LCD 16x2
Update1: استفاده از LCD 16x2
Update1: استفاده از LCD 16x2
Update1: استفاده از LCD 16x2
Update1: استفاده از LCD 16x2

پیشرفت ها

در حین آزمایش بیشتر متوجه شدم که کتابخانه صفحه نمایش OLED I2C زمان قابل توجهی را مصرف می کند. بنابراین تصمیم گرفتم به جای آن از صفحه نمایش 16x2 با مبدل I2C استفاده کنم.

بنابراین من برنامه را به صفحه LCD اضافه کردم و برخی ویژگی های مفید را اضافه کردم. اکنون خط اول صفحه نمایش قدرت سیگنال یک نشانگر احتمالی را نشان می دهد. خط دوم اکنون دو مقدار را نشان می دهد. مشت انحراف سیگنال فعلی را در مقایسه با مقدار کالیبراسیون نشان داد. این مقدار باید "0" باشد. اگر این مقدار به طور مداوم منفی یا مثبت باشد ، آشکارساز باید با فشار دادن دکمه تنظیم مجدد کالیبره شود. مقادیر مثبت نشان دهنده فلز نزدیک به سیم پیچ است.

مقدار دوم مقدار تاخیر واقعی منحنی پوسیدگی را نشان می دهد. این مقدار معمولاً چندان جالب نیست ، اما برای تنظیم اولیه آشکارساز مورد نیاز است.

این برنامه در حال حاضر اجازه می دهد تا چندین پالس به ترتیب (به منظور آزمایش / بهبود عملکرد). من به هیچ شکافی نرسیدم. بنابراین به طور پیش فرض بر روی یک مدت زمان پالس تنظیم شده است.

راه اندازی اولیه آشکارساز

هنگام راه اندازی آشکارساز ، مقدار دوم خط دوم مربوط است (اولین مورد را می توان نادیده گرفت). در ابتدا مقدار می تواند "ناپایدار" باشد (تصویر را ببینید). مقاومت تریم را بچرخانید تا مقدار به قرائت پایدار برسد. سپس آن را بچرخانید تا مقدار به حداکثر مقدار پایدار برسد. برای تنظیم مجدد دکمه تنظیم مجدد را فشار دهید و آشکارساز آماده استفاده است.

این تصور را داشتم که با تنظیم حداکثر مقدار پایدار ، حساسیت را برای فلزات غیرآهنی از دست دادم. بنابراین ممکن است ارزش آزمایش برخی از تنظیمات را داشته باشد تا حساسیت خوبی برای موارد غیر آهن داشته باشید.

سیم پیچ

من 3 کویل برای آزمایش بیشتر می سازم

1 -> 18 دور در 200 میلی متر

2 -> 25 دور در 100 میلی متر

3 -> 48 دور در 100 میلی متر

جالب اینجاست که همه سیم پیچ ها تقریباً خوب کار می کردند و تقریباً عملکرد یکسانی داشتند (سکه 20 عیار در هوا 40-50 میلی متر). این ممکن است یک مشاهده کاملاً ذهنی باشد.

توصیه شده: