ساخت فلزیاب ساده با آردوینو: تشخیص فلز از نافلز با سیم‌پیچ

“`html

پروژه فلزیاب آردوینو

ساخت فلزیاب ساده با آردوینو: تشخیص فلز از نافلز با سیم‌پیچ

آیا تا به حال رویای ساخت یک فلزیاب شخصی را در سر داشته‌اید؟ در این راهنمای جامع، قدم به قدم با ما همراه شوید تا با استفاده از یک برد آردوینو، چند قطعه الکترونیکی ساده و یک سیم‌پیچ دست‌ساز، یک فلزیاب کاربردی بسازید که قادر به تشخیص فلزات از اشیاء غیرفلزی باشد. این پروژه با سطح مهارت متوسط، برای علاقه‌مندان به الکترونیک و پروژه‌های DIY در خانه ایده‌آل است.
با این فلزیاب خانگی می‌توانید اشیاء فلزی پنهان شده را در حیاط خانه، ساحل یا حتی دیوارهای خانه پیدا کنید و لذت کشف را تجربه نمایید.

الف: انتخاب برد آردوینو

برای این پروژه فلزیاب، پلتفرم آردوینو انتخابی عالی است به دلیل سادگی برنامه‌نویسی، دسترسی آسان به منابع و پشتیبانی گسترده از قطعات. برد اصلی و جایگزین‌ها را در ادامه مشاهده می‌کنید:

برد پیشنهادی: Arduino Uno R3

آردوینو Uno R3 یک انتخاب کلاسیک و بسیار مناسب برای شروع پروژه‌های الکترونیکی است. این برد دارای میکروکنترلر ATmega328P، 14 پین ورودی/خروجی دیجیتال (که 6 تای آن‌ها می‌توانند به عنوان خروجی PWM استفاده شوند) و 6 ورودی آنالوگ است. Uno به دلیل پایداری، سهولت استفاده و جامعه کاربری بزرگ، برای مبتدیان و پروژه‌های با پیچیدگی متوسط ایده‌آل است. وجود پورت USB داخلی، آپلود کد را بسیار آسان می‌کند.

جایگزین‌ها:

  1. Arduino Nano

    آردوینو نانو نسخه‌ای کوچک‌تر و فشرده‌تر از Uno است که از همان میکروکنترلر ATmega328P (یا ATmega168 در برخی مدل‌ها) استفاده می‌کند. ابعاد کوچک آن باعث می‌شود برای پروژه‌هایی که فضای محدود دارند یا نیاز به یک مدار دائمی و ظریف‌تر دارند، گزینه مناسبی باشد. نانو نیز به راحتی روی برد بورد (Breadboard) قابل استفاده است.

  2. Arduino Pro Mini

    آردوینو پرو مینی حتی از نانو هم کوچک‌تر است و برای پروژه‌هایی که نیاز به حداقل اندازه و وزن دارند، ایده‌آل است. این برد فاقد کانکتور USB داخلی است و برای برنامه‌ریزی نیاز به یک مبدل سریال به USB (FTDI Programmer) خارجی دارد. پرو مینی برای پروژه‌هایی که قرار است نهایی شده و در یک محفظه کوچک قرار گیرند، مناسب است و به دلیل عدم وجود پورت USB و رگولاتور ولتاژ بزرگ، مصرف انرژی کمتری دارد.

جدول مقایسه بردها

ویژگی Arduino Uno R3 Arduino Nano Arduino Pro Mini
میکروکنترلر ATmega328P ATmega328P / ATmega168 ATmega328P / ATmega168
پین‌های دیجیتال 14 (6 PWM) 14 (6 PWM) 14 (6 PWM)
پین‌های آنالوگ 6 8 8
حافظه فلش 32KB 32KB / 16KB 32KB / 16KB
فرکانس کلاک 16MHz 16MHz 16MHz
پورت USB بله (مستقیم) بله (Mini-USB) خیر (نیاز به FTDI خارجی)
اندازه حدودی 68.6 x 53.4 میلی‌متر 45 x 18 میلی‌متر 33 x 18 میلی‌متر
قیمت حدودی متوسط کم تا متوسط کم
مناسب برای مبتدیان، آموزش، نمونه‌سازی پروژه‌های فشرده، برد بورد پروژه‌های نهایی و کوچک

استدلال انتخاب

Arduino Uno R3 به عنوان برد اصلی انتخاب شد زیرا ترکیبی ایده‌آل از سهولت استفاده، دسترسی گسترده و پشتیبانی قوی را ارائه می‌دهد که برای یک طراح ارشد که برای مبتدیان پروژه تعریف می‌کند، بسیار مهم است. اندازه مناسب آن کار با برد بورد و سیم‌کشی را برای شروع راحت می‌کند.

Arduino Nano برای پروژه‌هایی که نیاز به حجم کمتری دارند و می‌خواهند فلزیاب را در یک قاب کوچک قرار دهند، یک جایگزین عالی است.

Arduino Pro Mini برای کاربرانی که به دنبال نهایت فشردگی هستند و با استفاده از مبدل FTDI مشکلی ندارند، مناسب است. این برد گزینه‌ای عالی برای نسخه نهایی و جاسازی شده پروژه است.

ب: فهرست کامل قطعات (BOM)

برای ساخت این فلزیاب، به قطعات زیر نیاز دارید. ما یک سیم‌پیچ فلزیاب ساده را به صورت دست‌ساز در نظر گرفته‌ایم.

لیست قطعات لازم:

  • برد آردوینو: 1 عدد (Arduino Uno R3 یا Nano)
  • سیم‌پیچ فلزیاب: 1 عدد (خودتان می‌سازید: حدود 50 تا 100 دور سیم مسی لاکی با قطر 0.2 تا 0.4 میلی‌متر روی یک قالب پلاستیکی یا چوبی دایره‌ای با قطر 10 تا 15 سانتی‌متر)
  • ترانزیستور NPN: 1 عدد (مثلاً BC547، 2N3904 یا مشابه) – برای مدار اسیلاتور
  • خازن سرامیکی: 1 عدد (مثلاً 10nF یا 103) – برای مدار اسیلاتور
  • مقاومت: 2 عدد (1 عدد 10kΩ و 1 عدد 1kΩ) – برای مدار اسیلاتور
  • LED: 1 عدد (هر رنگی) – برای نشانگر تشخیص فلز
  • مقاومت 220Ω: 1 عدد – برای محدود کردن جریان LED
  • برد بورد: 1 عدد (در صورت نمونه‌سازی)
  • سیم‌های جامپر: مجموعه‌ای از سیم‌های نر به نر و نر به ماده
  • منبع تغذیه: باتری 9V و کانکتور آن، یا آداپتور 5V USB (برای آردوینو Uno/Nano)
  • اختیاری: مولتی‌متر، هویه و سیم لحیم (برای نسخه نهایی)

سه سطح قیمت

قیمت‌ها تقریبی بوده و بسته به فروشنده و کیفیت قطعات متفاوت خواهند بود.

سطح قیمت ویژگی‌ها قیمت حدودی (به تومان)
اقتصادی (کمترین هزینه) برد آردوینو کپی/غیر اصلی، قطعات الکترونیکی عمومی و ارزان، سیم‌پیچ دست‌ساز با دقت متوسط. 200,000 – 400,000
متوسط (کیفیت استاندارد) برد آردوینو اصلی یا کپی با کیفیت بالا، قطعات الکترونیکی با کیفیت استاندارد و برندهای شناخته شده، سیم‌پیچ دست‌ساز با دقت بالا یا نیمه‌آماده. 400,000 – 800,000
پیشرفته (بالاترین کیفیت) برد آردوینو اصلی و معتبر، قطعات الکترونیکی با دقت بالا و تلرانس کم، سیم‌پیچ صنعتی و تخصصی (در صورت امکان تهیه) یا بهینه‌سازی شده. 800,000 – 1,500,000+
نکته مهم: بخش عمده‌ای از کارایی فلزیاب به کیفیت و دقت ساخت سیم‌پیچ بستگی دارد. حتی با قطعات ارزان، اگر سیم‌پیچ به درستی ساخته شود، نتیجه قابل قبولی خواهید گرفت.

ج: سیم‌بندی دقیق و نقشه پین‌ها

مدار فلزیاب ما بر اساس یک اسیلاتور LC ساده (مدار تانک سلف-خازن) با استفاده از یک ترانزیستور و سیم‌پیچ فلزیاب شما خواهد بود. آردوینو فرکانس این اسیلاتور را اندازه گرفته و تغییرات آن را برای تشخیص فلزات تحلیل می‌کند.

مدار اسیلاتور ساده (به عنوان مثال، اسیلاتور Colpitts یا Hartley با یک ترانزیستور NPN)

در اینجا یک شماتیک ساده برای اسیلاتور LC با ترانزیستور BC547 ارائه می‌شود که سیگنال خروجی آن به آردوینو متصل می‌گردد.

قطعات مدار اسیلاتور:

  • سیم‌پیچ فلزیاب (L1)
  • ترانزیستور NPN (Q1، مثلاً BC547)
  • خازن 10nF (C1)
  • مقاومت 10kΩ (R1)
  • مقاومت 1kΩ (R2)

نحوه اتصال (توضیح شماتیک مفهومی):

  1. کلکتور (C) ترانزیستور Q1: به یک سر سیم‌پیچ L1 و سپس از طریق مقاومت R1 به 5V آردوینو.
  2. امیتر (E) ترانزیستور Q1: به زمین (GND) آردوینو.
  3. بیس (B) ترانزیستور Q1: از طریق مقاومت R2 به سر دیگر سیم‌پیچ L1 وصل می‌شود.
  4. خازن C1: موازی با سیم‌پیچ L1 متصل می‌شود (بین دو سر سیم‌پیچ).
  5. خروجی سیگنال: از بیس ترانزیستور Q1 (یا کلکتور با یک خازن کوپلینگ) به پین دیجیتال آردوینو (مثلاً D2) وصل می‌شود.
  6. LED: آند LED (پایه بلندتر) از طریق مقاومت 220Ω به پین D13 آردوینو و کاتد (پایه کوتاه‌تر) به زمین (GND) آردوینو متصل می‌شود.
توجه: ساخت یک اسیلاتور LC پایدار نیاز به کمی تجربه دارد. این توضیحات یک شماتیک مفهومی است. برای یک مدار دقیق، پیشنهاد می‌شود از مدارهای اسیلاتور استاندارد مانند Colpitts یا Hartley با مقادیر دقیق قطعات استفاده کنید یا از منابع معتبر شماتیک کامل یک فلزیاب ساده با ترانزیستور را بیابید.

جدول پین‌مپ (Pin Map) برای Arduino Uno

پین آردوینو قطعه متصل توضیح عملکرد
GND زمین اسیلاتور، کاتد LED زمین مشترک برای تمامی مدار (بسیار مهم)
5V تغذیه اسیلاتور تغذیه 5 ولت برای مدار اسیلاتور
D2 (Interrupt 0) خروجی سیگنال اسیلاتور ورودی فرکانس/پالس از مدار اسیلاتور برای شمارش
D13 آند LED (از طریق مقاومت 220Ω) خروجی دیجیتال برای روشن/خاموش کردن LED نشانگر فلز

توضیح زمین (GND) و ولتاژ (VCC)

زمین (GND): تمام قطعات الکترونیکی در مدار (آردوینو، اسیلاتور، LED) باید دارای یک نقطه زمین مشترک باشند. این امر برای پایداری و عملکرد صحیح مدار ضروری است. اتصال زمین آردوینو به زمین مدار اسیلاتور و کاتد LED باعث می‌شود تا ولتاژ مرجع یکسانی داشته باشند.

ولتاژ (VCC/5V): آردوینو Uno یک خروجی 5 ولت تنظیم‌شده (Regulated) را ارائه می‌دهد که می‌توانید برای تغذیه مدار اسیلاتور خود از آن استفاده کنید. این 5 ولت، انرژی لازم برای فعال کردن ترانزیستور و ایجاد نوسانات در سیم‌پیچ را فراهم می‌کند. اطمینان حاصل کنید که مصرف جریان مدار اسیلاتور از حداکثر جریان قابل تأمین توسط پین 5V آردوینو (معمولاً حدود 500 میلی‌آمپر در حالت تغذیه USB و 800 میلی‌آمپر از جک پاور) فراتر نرود.

اخطار: سیم‌کشی اشتباه، به خصوص در اتصالات تغذیه و زمین، می‌تواند به قطعات شما (از جمله آردوینو) آسیب برساند. قبل از روشن کردن مدار، اتصالات را چندین بار بررسی کنید.

د: کد کامل (MVP و پیشرفته)

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

کتابخانه مورد نیاز

برای اندازه‌گیری فرکانس دقیق، از کتابخانه FreqCount استفاده می‌کنیم.

  • نام دقیق کتابخانه: FreqCount.h
  • نصب: از طریق Arduino IDE به مسیر Sketch > Include Library > Manage Libraries بروید و “FreqCount” را جستجو و نصب کنید.

1. کد حداقل قابل اجرا (MVP)

این کد پایه فرکانس را در یک دوره زمانی مشخص می‌خواند، یک مقدار پایه را کالیبره می‌کند و در صورت تغییر قابل توجه فرکانس، LED را روشن می‌کند.


#include <FreqCount.h>

const int LED_PIN = 13; // پین LED نشانگر فلز
const int SENSOR_PIN = 2; // پین ورودی فرکانس از اسیلاتور (Interrupt 0)

long baseFrequency = 0; // فرکانس پایه (کالیبره شده)
int calibrationSamples = 100; // تعداد نمونه برای کالیبراسیون
int threshold = 100; // آستانه تغییر فرکانس برای تشخیص (قابل تنظیم)

void setup() {
Serial.begin(9600);
pinMode(LED_PIN, OUTPUT);
digitalWrite(LED_PIN, LOW); // خاموش کردن LED در ابتدا

// شروع شمارش فرکانس روی پین SENSOR_PIN
FreqCount.begin(1000); // اندازه گیری فرکانس هر 1000 میلی‌ثانیه (1 ثانیه)

Serial.println("--- فلزیاب آردوینو - MVP ---");
Serial.println("در حال کالیبراسیون... لطفا فلزی نزدیک سیم‌پیچ نباشد.");

// کالیبراسیون اولیه
for (int i = 0; i threshold) {
// فلز تشخیص داده شد
digitalWrite(LED_PIN, HIGH); // روشن کردن LED
Serial.println("--- فلز تشخیص داده شد! ---");
} else {
// فلز تشخیص داده نشد
digitalWrite(LED_PIN, LOW); // خاموش کردن LED
}
}
}

2. کد پیشرفته (با کالیبراسیون بهتر و نمایش سریال)

این نسخه قابلیت کالیبراسیون پویا را اضافه می‌کند و اطلاعات بیشتری را از طریق سریال مانیتور نمایش می‌دهد.


#include <FreqCount.h>

const int LED_PIN = 13; // پین LED نشانگر فلز
const int SENSOR_PIN = 2; // پین ورودی فرکانس از اسیلاتور (Interrupt 0)
const int CALIBRATE_BUTTON_PIN = 4; // پین برای دکمه کالیبراسیون (اختیاری)

long baseFrequency = 0; // فرکانس پایه (کالیبره شده)
int calibrationSamples = 200; // تعداد نمونه برای کالیبراسیون دقیق‌تر
float detectionSensitivity = 0.005; // حساسیت تشخیص (مثلاً 0.5% تغییر)
long currentFrequency = 0;

void calibrate() {
Serial.println("در حال کالیبراسیون جدید... لطفا فلزی نزدیک سیم‌پیچ نباشد.");
baseFrequency = 0;
long tempSum = 0;
int count = 0;

for (int i = 0; i 0) {
baseFrequency = tempSum / count;
} else {
Serial.println("خطا در کالیبراسیون: هیچ داده فرکانسی دریافت نشد.");
// در صورت خطا، از آخرین فرکانس پایه استفاده کنید یا یک مقدار پیش فرض
baseFrequency = (baseFrequency == 0) ? 100000 : baseFrequency; // مقدار پیش‌فرض اگر هنوز کالیبره نشده
}
Serial.println("کالیبراسیون انجام شد.");
Serial.print("فرکانس پایه جدید: ");
Serial.println(baseFrequency);
}

void setup() {
Serial.begin(9600);
pinMode(LED_PIN, OUTPUT);
digitalWrite(LED_PIN, LOW);
pinMode(CALIBRATE_BUTTON_PIN, INPUT_PULLUP); // استفاده از پول‌آپ داخلی برای دکمه

FreqCount.begin(500); // اندازه گیری فرکانس هر 500 میلی‌ثانیه (0.5 ثانیه)

Serial.println("--- فلزیاب آردوینو - پیشرفته ---");
calibrate(); // کالیبراسیون اولیه در شروع
}

void loop() {
// بررسی دکمه کالیبراسیون
if (digitalRead(CALIBRATE_BUTTON_PIN) == LOW) { // اگر دکمه فشرده شد
delay(50); // Debounce
if (digitalRead(CALIBRATE_BUTTON_PIN) == LOW) {
calibrate();
while(digitalRead(CALIBRATE_BUTTON_PIN) == LOW); // منتظر رها شدن دکمه
delay(200); // تاخیر بعد از کالیبراسیون
}
}

if (FreqCount.available()) {
currentFrequency = FreqCount.read();

// محاسبه آستانه تشخیص بر اساس درصد تغییر از فرکانس پایه
long threshold = (long)(baseFrequency * detectionSensitivity);

long frequencyDeviation = abs(currentFrequency - baseFrequency);

Serial.print("فرکانس فعلی: ");
Serial.print(currentFrequency);
Serial.print("Hz | پایه: ");
Serial.print(baseFrequency);
Serial.print("Hz | انحراف: ");
Serial.print(frequencyDeviation);
Serial.print("Hz | آستانه: ");
Serial.println(threshold);

if (frequencyDeviation > threshold && baseFrequency != 0) {
digitalWrite(LED_PIN, HIGH);
Serial.println("--- فلز تشخیص داده شد! ---");
} else {
digitalWrite(LED_PIN, LOW);
}
}
}

نکات پیکربندی

  • کالیبراسیون: مهمترین مرحله در راه‌اندازی فلزیاب، کالیبراسیون صحیح است. در هنگام کالیبراسیون، مطمئن شوید که هیچ جسم فلزی نزدیک سیم‌پیچ نباشد.
  • آستانه (Threshold) و حساسیت (Sensitivity):

    • در کد MVP، متغیر threshold را می‌توانید برای تغییر حساسیت تنظیم کنید. مقدار کمتر به معنای حساسیت بیشتر است.
    • در کد پیشرفته، متغیر detectionSensitivity (یک مقدار اعشاری بین 0 تا 1) برای تنظیم حساسیت بر اساس درصد تغییر فرکانس استفاده می‌شود. مثلاً 0.005 به معنای تشخیص تغییرات 0.5 درصدی است.
  • پین ورودی فرکانس: کتابخانه FreqCount معمولاً از پین‌های وقفه (Interrupt) برای شمارش فرکانس استفاده می‌کند. در آردوینو Uno و Nano، پین 2 (Interrupt 0) و پین 3 (Interrupt 1) هستند. مطمئن شوید که اسیلاتور را به یکی از این پین‌ها متصل کرده‌اید.
  • سیم‌پیچ: تعداد دورها و قطر سیم‌پیچ بر فرکانس پایه و حساسیت تأثیر می‌گذارد. با مقادیر مختلف آزمایش کنید تا به بهترین عملکرد برسید.

ه: راهنمای نصب IDE و آپلود کد

برای برنامه‌ریزی برد آردوینو خود، نیاز به محیط توسعه یکپارچه آردوینو (Arduino IDE) دارید. مراحل زیر را دنبال کنید:

1. دانلود و نصب Arduino IDE

  1. به وب‌سایت رسمی آردوینو مراجعه کنید: arduino.cc/en/software
  2. نسخه مناسب برای سیستم‌عامل خود (ویندوز، macOS، لینوکس) را دانلود و نصب کنید.
  3. پس از نصب، برنامه Arduino IDE را اجرا کنید.

2. نصب درایورها (در صورت نیاز)

اگر از بردهای کپی آردوینو (به خصوص بردهایی که از تراشه CH340G برای ارتباط سریال استفاده می‌کنند) استفاده می‌کنید، ممکن است نیاز به نصب درایور CH340G داشته باشید. این درایور را می‌توانید با جستجو در اینترنت (مثلاً “CH340G driver”) پیدا و نصب کنید.

3. اتصال برد آردوینو

برد آردوینو خود را با کابل USB به کامپیوتر متصل کنید. چراغ LED پاور روی برد باید روشن شود.

4. انتخاب برد و پورت

  1. در Arduino IDE، به منوی “Tools” بروید.
  2. از زیرمنوی “Board”، برد خود را انتخاب کنید (مثلاً “Arduino Uno” یا “Arduino Nano”).
  3. از زیرمنوی “Port”، پورت سریالی که آردوینو به آن متصل شده است را انتخاب کنید (معمولاً با COMx در ویندوز یا /dev/tty.usbserial-xxx در macOS/لینوکس مشخص می‌شود). اگر چند پورت دارید، با قطع و وصل کردن آردوینو می‌توانید پورت صحیح را شناسایی کنید.

5. نصب کتابخانه FreqCount

  1. در Arduino IDE، به مسیر “Sketch” > “Include Library” > “Manage Libraries…” بروید.
  2. در کادر جستجو، عبارت “FreqCount” را تایپ کنید.
  3. کتابخانه “FreqCount by Paul Stoffregen” را پیدا کرده و روی دکمه “Install” کلیک کنید.

6. آپلود کد

  1. کد فلزیاب (نسخه MVP یا پیشرفته) را در Arduino IDE کپی و جای‌گذاری کنید.
  2. برای اطمینان از صحت کد، روی دکمه “Verify” (علامت تیک) در نوار ابزار کلیک کنید. اگر خطایی وجود نداشته باشد، پیام “Done compiling” را مشاهده خواهید کرد.
  3. برای آپلود کد بر روی برد آردوینو، روی دکمه “Upload” (علامت فلش به سمت راست) کلیک کنید.
  4. پس از اتمام آپلود، پیام “Done uploading” را مشاهده خواهید کرد و برد شما آماده کار است.
تبریک می‌گوییم! کد شما با موفقیت روی برد آردوینو آپلود شد. اکنون می‌توانید فلزیاب خود را آزمایش کنید.

و: چک‌لیست عیب‌یابی و تست مرحله‌ای

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

چک‌لیست عیب‌یابی

  • بررسی اتصالات: آیا تمام سیم‌ها به پین‌های صحیح متصل هستند؟ آیا اتصالات محکم هستند و قطع نشده‌اند؟
  • بررسی منبع تغذیه: آیا آردوینو روشن است (LED پاور روی برد روشن است)؟ آیا ولتاژ 5 ولت به مدار اسیلاتور می‌رسد؟
  • بررسی LED: آیا LED به درستی (آند به پین دیجیتال از طریق مقاومت، کاتد به زمین) متصل شده و سالم است؟
  • بررسی سیم‌پیچ: آیا سیم‌پیچ به درستی پیچیده شده و قطع نشده است؟
  • بررسی ترانزیستور: آیا ترانزیستور به درستی (بیس، کلکتور، امیتر) در مدار قرار گرفته است؟
  • بررسی کد: آیا کد با موفقیت کامپایل و آپلود شده است؟ آیا کتابخانه FreqCount نصب شده است؟
  • بررسی پورت سریال: آیا سریال مانیتور را باز کرده‌اید و داده‌ای نمایش داده می‌شود؟

خطاهای رایج و راه‌حل‌ها

  1. “Board at COMx not found” یا “A problem occurred while uploading.”

    علت: درایور برد آردوینو نصب نشده، پورت اشتباهی انتخاب شده یا کابل USB مشکل دارد.

    راه‌حل: درایور CH340G را نصب کنید (برای بردهای کپی). مطمئن شوید پورت COM/USB صحیح را در منوی “Tools > Port” انتخاب کرده‌اید. کابل USB را تعویض کنید.

  2. LED همیشه روشن یا همیشه خاموش است.

    علت: آستانه تشخیص (threshold یا detectionSensitivity) به درستی تنظیم نشده است؛ یا مدار اسیلاتور کار نمی‌کند؛ یا کالیبراسیون اشتباه انجام شده است.

    راه‌حل: مقدار threshold/detectionSensitivity را در کد تنظیم کنید (مثلاً آن را بیشتر یا کمتر کنید). مطمئن شوید که مدار اسیلاتور سیگنال فرکانس را به پین D2 آردوینو می‌فرستد. کالیبراسیون را مجدداً انجام دهید و مطمئن شوید که هنگام کالیبره کردن، فلزی نزدیک سیم‌پیچ نیست.

  3. در سریال مانیتور هیچ داده‌ای نمایش داده نمی‌شود یا فرکانس ثابت است.

    علت: ارتباط سریال برقرار نیست؛ یا مدار اسیلاتور به درستی کار نمی‌کند و سیگنالی تولید نمی‌کند؛ یا پین ورودی فرکانس به درستی متصل نشده است.

    راه‌حل: مطمئن شوید که Baud Rate سریال مانیتور روی 9600 تنظیم شده باشد. اتصالات مدار اسیلاتور را بررسی کنید. از یک مولتی‌متر برای بررسی ولتاژ در نقاط مختلف مدار اسیلاتور استفاده کنید تا مطمئن شوید برق به آن می‌رسد.

  4. فلزیاب فلز را تشخیص نمی‌دهد یا به چیزهای غیرفلزی واکنش نشان می‌دهد.

    علت: سیم‌پیچ به درستی ساخته نشده یا مدار اسیلاتور ناپایدار است؛ یا کالیبراسیون نادرست انجام شده است.

    راه‌حل: سیم‌پیچ را از نظر اتصالات و تعداد دورها بررسی کنید. مدار اسیلاتور را بازبینی کنید و در صورت لزوم قطعات را تعویض کنید. کالیبراسیون را چندین بار در محیط‌های مختلف تکرار کنید.

تست مرحله‌ای

برای تشخیص دقیق‌تر مشکل، مراحل زیر را دنبال کنید:

  1. تست آردوینو: یک کد ساده “Blink” را روی آردوینو آپلود کنید تا مطمئن شوید برد و محیط توسعه به درستی کار می‌کنند و LED داخلی پین 13 چشمک می‌زند.
  2. تست مدار اسیلاتور (خارج از آردوینو): اگر امکانش را دارید، خروجی اسیلاتور را با یک اسیلوسکوپ یا فرکانس‌متر مستقل بررسی کنید تا مطمئن شوید سیگنالی با فرکانس مشخص تولید می‌کند.
  3. تست ورودی فرکانس: کد فلزیاب را آپلود کنید. سریال مانیتور را باز کنید. باید مقادیری برای “فرکانس فعلی” مشاهده کنید. با نزدیک کردن دست به سیم‌پیچ (حتی بدون فلز)، ببینید آیا فرکانس کمی تغییر می‌کند. این نشان می‌دهد که ورودی فرکانس کار می‌کند.
  4. تست کالیبراسیون: دکمه کالیبراسیون را فشار دهید (یا آردوینو را ریست کنید) و مطمئن شوید که پیام “کالیبراسیون انجام شد” را می‌بینید و فرکانس پایه معقولی (مثلاً دهها یا صدها کیلوهرتز) نمایش داده می‌شود.
  5. تست تشخیص: یک جسم فلزی (مثل سکه یا آچار) را به آرامی به سیم‌پیچ نزدیک کنید. ببینید آیا LED روشن می‌شود و انحراف فرکانس در سریال مانیتور افزایش می‌یابد. سپس یک جسم غیرفلزی (مثل چوب یا پلاستیک) را نزدیک کنید و مشاهده کنید که آیا واکنشی نشان می‌دهد یا خیر.

ز: توان و ایمنی

هنگام کار با مدارهای الکترونیکی، رعایت نکات ایمنی و توجه به مصرف توان ضروری است.

مصرف توان (مصرف انرژی)

  • آردوینو Uno: حدود 40 تا 50 میلی‌آمپر در حالت بیکاری.
  • مدار اسیلاتور: بسته به ترانزیستور و مقاومت‌های استفاده شده، معمولاً کمتر از 20 تا 30 میلی‌آمپر.
  • LED: هر LED حدود 5 تا 20 میلی‌آمپر (بسته به مقاومت محدودکننده جریان).
  • کل سیستم: به طور کلی، مصرف جریان این فلزیاب ساده زیر 100 میلی‌آمپر خواهد بود. این مقدار برای تغذیه از پورت USB کامپیوتر یا یک باتری 9 ولت کوچک کاملاً مناسب است.

تغذیه

  • تغذیه از USB: می‌توانید آردوینو را مستقیماً از پورت USB کامپیوتر یا یک شارژر USB (آداپتور 5V) تغذیه کنید.
  • تغذیه از جک پاور: برای استفاده مستقل، می‌توانید از آداپتور دیواری با ولتاژ 7 تا 12 ولت (مثلاً 9 ولت) و حداقل جریان 500 میلی‌آمپر یا یک باتری 9 ولت (که از طریق کانکتور باتری به جک پاور وصل می‌شود) استفاده کنید. رگولاتور ولتاژ روی برد آردوینو، ولتاژ ورودی را به 5 ولت لازم برای میکروکنترلر و قطعات دیگر تبدیل می‌کند.
  • باتری: برای قابلیت حمل، باتری 9 ولت گزینه خوبی است، اما به یاد داشته باشید که عمر باتری بسته به نوع باتری و میزان استفاده محدود است.

ایمنی (ESD)

تخلیه الکترواستاتیک (ESD – Electrostatic Discharge) می‌تواند به قطعات الکترونیکی حساس آسیب برساند. برای محافظت از برد آردوینو و سایر قطعات:

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

ح: پیشنهاد ارتقا و جایگزین‌ها

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

پیشنهادهای ارتقا

  1. نمایشگر گرافیکی (OLED/LCD)

    به جای فقط یک LED، می‌توانید یک نمایشگر کوچک OLED (مثلاً 0.96 اینچی) یا LCD (مثلاً 16×2) به آردوینو متصل کنید. این نمایشگر می‌تواند فرکانس فعلی، فرکانس پایه، میزان انحراف، و حتی یک نوار پیشرفت برای نمایش قدرت سیگنال فلز را نشان دهد. این کار تجربه کاربری را به شدت بهبود می‌بخشد.

  2. بازخورد صوتی (Buzzer/Speaker)

    اضافه کردن یک بازر (Buzzer) یا بلندگوی کوچک می‌تواند هشدار صوتی تشخیص فلز را فراهم کند. می‌توانید فرکانس یا مدت زمان بوق را بر اساس شدت سیگنال (میزان نزدیکی فلز) تغییر دهید.

  3. تنظیم حساسیت با پتانسیومتر

    یک پتانسیومتر (مقاومت متغیر) را به یکی از پین‌های آنالوگ آردوینو متصل کنید. با چرخاندن آن، می‌توانید آستانه تشخیص (threshold یا detectionSensitivity) را به صورت پویا و بدون نیاز به آپلود مجدد کد تنظیم کنید.

  4. طراحی بهتر سیم‌پیچ

    با آزمایش با سیم‌پیچ‌های مختلف (تعداد دورها، قطر سیم، شکل هندسی و اندازه کلی سیم‌پیچ) می‌توانید عمق تشخیص و منطقه پوشش فلزیاب را بهبود بخشید. سیم‌پیچ‌های بزرگ‌تر معمولاً عمق بیشتری دارند اما حساسیت کمتری به فلزات کوچک‌تر.

  5. بهبود الگوریتم تشخیص

    می‌توانید الگوریتم کد را برای فیلتر کردن نویز، میانگین‌گیری از قرائت‌ها در زمان طولانی‌تر، یا حتی استفاده از فیلترهای دیجیتال (مانند فیلتر میانگین متحرک) برای پایداری بیشتر و کاهش خطاهای کاذب ارتقا دهید.

جایگزین‌ها و توسعه‌های آینده

  1. استفاده از ESP32 یا ESP8266

    اگر به دنبال افزودن قابلیت‌های بی‌سیم (Wi-Fi یا بلوتوث) به فلزیاب خود هستید، می‌توانید از بردهایی مانند ESP32 یا ESP8266 استفاده کنید. این بردها علاوه بر قابلیت‌های آردوینو، دارای ماژول بی‌سیم داخلی هستند که امکان ارسال داده‌ها به تلفن همراه یا رایانه را فراهم می‌کند. (این جایگزین برای پروژه‌های پیشرفته‌تر و خارج از خانواده آردوینو کلاسیک است.)

  2. یکپارچه‌سازی با ماژول‌های تشخیص فلز تخصصی

    می‌توانید به جای ساخت مدار اسیلاتور از ابتدا، از ماژول‌های تشخیص فلز آماده که در بازار موجود هستند (مانند ماژول‌های IK3BFE یا سایر ماژول‌های مبتنی بر ICهای خاص)، استفاده کنید و تنها خروجی دیجیتال یا آنالوگ آن‌ها را به آردوینو متصل کنید. این کار پیچیدگی ساخت مدار آنالوگ را کاهش می‌دهد.

  3. ساخت یک قاب مقاوم

    برای استفاده عملی و طولانی‌مدت، ساخت یک قاب مقاوم و ضد آب برای فلزیاب شما ضروری است. می‌توانید از پرینتر سه‌بعدی یا جعبه‌های پلاستیکی استاندارد برای ساخت یک محفظه مناسب استفاده کنید.

“`

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

به بالا بروید