Металлоискатель на Arduino


Металлоискатель (Metal Detector) используется для обнаружения различных металлов. Может использоваться как службами безопасности, так и обычными любителями – обычно их используют археологи для поиска металлических предметов старины (значки, монеты, медали и т.д.). Конечно, металлоискатель можно сконструировать и без использования микроконтроллера, но в данном проекте мы рассмотрим проект металлоискателя на основе использования платы Arduino. В нашем проекте катушка индуктивности и конденсатор будут использоваться для обнаружения металла, а плата Arduino Nano будет управлять всеми процессами в схеме.

Внешний вид металлоискателя на Arduino

Также на нашем сайте вы можете посмотреть более сложный проект металлоискателя на Arduino с дискриминацией металлов.

Необходимые компоненты

  1. Плата Arduino Nano (подойдет и любая другая модель) (купить на AliExpress).
  2. Катушка индуктивности.
  3. Конденсатор 10 нФ (купить на AliExpress).
  4. Зуммер (Buzzer) (купить на AliExpress).
  5. Резистор 1 кОм (купить на AliExpress).
  6. Резистор 330 Ом (купить на AliExpress).
  7. Светодиод (купить на AliExpress).
  8. Диод 1N4148 (купить на AliExpress).
  9. Макетная или перфорированная плата.
  10. Соединительные провода.
  11. Батарейка 9 В.

Принцип работы проекта

Как известно, при прохождении электрического тока через катушку он формирует (генерирует) магнитное поле вокруг нее. Изменение магнитного поля приводит к формированию электрического поля. Поэтому в соответствии с законом Фарадея из-за изменения электрического поля в катушке появляется разность потенциалов, которая препятствует изменению магнитного поля – это происходит благодаря наличию у катушки свойству индуктивности, которое стремится препятствовать нарастанию тока. Индуктивность измеряется в генри и для катушки она может быть рассчитана по формуле:

L = (μο * N2 * A) / l,

где L - индуктивность в генри,
μο – магнитная проницаемость, для воздуха она равна 4π*10-7,
N – число витков,
A – площадь сечения проводника (πr2) в м2,
l - длина проводника катушки в метрах.

Когда рядом с катушкой появляется металл он изменяет ее индуктивность. Величина изменения индуктивности зависит от типа металла. Индуктивность уменьшают немагнитные металлы и увеличивают ферромагнитные материалы такие как железо.

Индуктивность катушки в значительно степени зависит от ее сердечника. На следующем рисунке показаны катушки без сердечника, обычно они имеют невысокие значения индуктивности.

Внешний вид катушек без сердечника

Обычно такие катушки используются когда нужна индуктивность в несколько мкГн. Для достижения больших значений индуктивности используются катушки с ферритовым сердечником (показанные на рисунке ниже), с помощью которых можно получить достаточно большие значения индуктивности.

Внешний вид катушек с ферритовым сердечником

Соответственно, когда рядом с катушкой без сердечника оказывается кусок металла он начинает действовать как сердечник для катушки, значительно увеличивая ее значение индуктивности. Поэтому если катушка включена в LC контур, то при этом (появлении металла рядом с катушкой) увеличивается общее реактивное сопротивление (импеданс) данного контура.

Поэтому в нашем металлоискателе на основе Arduino мы будем использовать определение индуктивности катушки для обнаружения металлов. Катушка включена в контур, изменение импеданса которого мы и будем обнаруживать. В нашем проекте мы использовали катушку из 20 витков, намотанных на пустую оболочку от изоленты (скотча) как показано на следующем рисунке.

Самодельная катушка индуктивности для нашего металлоискателя на Arduino

Работа схемы

Схема металлоискателя на основе платы Arduino Nano представлена на следующем рисунке.

Схема металлоискателя на основе платы Arduino NanoПлата Arduino используется для управления всеми процессами в схеме. Светодиод и зуммер используются как индикаторы обнаружения металла. Катушка и конденсатор используются для обнаружения металла. Импульсный диод используется для уменьшения напряжения. Резистор используется для ограничения тока на контакте платы Arduino.

Собранная часть металлоискателя на макетной плате

Работа схемы достаточно проста. На выходе контакта платы Arduino мы формируем прямоугольную волну (импульсы), которая подается на LR фильтр верхних частот. В связи с этим при каждом переходе уровня катушка будет генерировать короткий остроконечный импульс, длительность которого будет пропорциональна величине индуктивности катушки. Поэтому измеряя ширину этих остроконечных импульсов можно определить индуктивность катушки. К сожалению, с помощью платы Arduino это сделать достаточно сложно поскольку импульсы очень короткие – около 0,5 микросекунды.

Вид нашего металлоискателя в сборе

Вместо этого мы будем использовать конденсатор, который будет заряжаться этими импульсами. Необходимо всего лишь несколько импульсов чтобы зарядить конденсатор до такого уровня, чтобы напряжение на нем можно было считать с помощью аналогового контакта A5 платы Arduino. Это аналоговое значение напряжения плата Arduino преобразует в цифровое с помощью аналого-цифрового преобразования (АЦП), доступном на данном контакте. После считывания напряжения мы быстро разряжаем конденсатор подавая на контакт A5 напряжение низкого уровня (логический "0") – перед этим его нужно перевести из режима ввода данных в режим вывода данных. Весь этот процесс занимает около 200 микросекунд. Для достижения большей точности результатов мы можем производить подобную операцию несколько раз и затем использовать среднее значение полученных результатов. Таким образом мы получаем приближенное значение индуктивности катушки. После анализа этого результата мы выдаем соответствующие управляющие сигналы на светодиод и зуммер.

Исходный код программы

В программе мы инициализировали два контакта платы Arduino – один для генерации прямоугольных импульсов, подаваемых на катушку, а второй – для считывания напряжения с конденсатора. Дополнительно к этому мы инициализировали еще 2 контакта для управления зуммером и светодиодом. Подробно работа нашего металлоискателя показана на видео, приведенном в конце статьи. При обнаружении металла зуммер издает звуковой сигнал, а светодиод начинает мигать с высокой частотой.

Видео, демонстрирующее работу металлоискателя

(Проголосуй первым!)
Загрузка...
7 359 просмотров

Комментарии

Металлоискатель на Arduino — 7 комментариев

  1. Индуктивность однослойной катушки:
    L=(0,01*диаметр катушки*количество витков^2)/((длина намотки/диаметр катушки)+0,44)
    ---
    Многослойная катушка:
    L=(0,08*диаметр катушки^2 * колич.витков^2) / (3*диаметр катушки(см)+9*длина намотки (см)+10*толщина намотки(см)

  2. Чувствительность действительно низкая, пассатижи определяет только при расстоянии примерно 1-2см.. Мелкие предметы вообще не видит... Интересно было бы узнать как можно (если можно) поднять чувствительность

  3. Очень низкая чувствительность. Реагирует только если засунуть телефон в катушку. На монетки, ключи и все такое ему пофиг. Катушка 180мм диаметр и около 100 витков

    • У статьи уже более 3500 просмотров и пока больше никто не жаловался на плохую чувствительность данного металлоискателя. И если посмотреть отзывы на youtube на данный проект (у него сейчас более 64 тыс. просмотров) и отзывы на данный проект на англоязычном источнике, то там тоже никто не жаловался на плохую чувствительность устройства. Может быть при сборке проекта вы допустили какую-нибудь неточность?

    • Добрый вечер. К сожалению, не подскажу. Авторы этой статьи - талантливые индийские инженеры, я всего лишь перевел их статью. Ссылку на оригинал статьи можно найти в описании представленного видео работы металлоискателя на youtube

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *