Пинпоинтер с дискриминацией металлов на arduino nano

Металлоискатели, или металлодетекторы, применяют для бесконтактного поиска металлов и сделанных из них предметов.

Такие устройства используют военные, сотрудники различных служб безопасности, археологи для нахождения металлических артефактов, востребованы они и среди любителей искать предметы старины.

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

Пинпоинтер с дискриминацией металлов на arduino nano

Как устроен металлодетектор

Металлоискатель использует в своей работе метод индуктивного зондирования. Основная рабочая часть прибора – катушка индуктивности.

Наличие металла под зондом детектора меняет индуктивность, которая замеряется логикой контроллера и передается пользователю через интерфейсное устройство в виде сигналов (принцип работы будет подробнее рассмотрен ниже).

Таким устройством обычно служит динамик или наушники, но могут применяться и другие способы оповещения:

  • светодиоды;
  • сообщения на смартфон;
  • вывод визуальных кодов на встроенный экран, и так далее.

Любой металлоискатель состоит из трех основных блоков:

  • катушка (или несколько). Они играют роль обнаруживающих металл передающих или принимающих антенн;
  • блок управления;
  • устройство вывода сигнала.

Пинпоинтер с дискриминацией металлов на arduino nano

Отметим, что речь идет о простом импульсном или индукционном детекторе. Дорогие промышленные и специализированные образцы могут содержать иную аппаратную «начинку».

В блоке управления расположен генератор сигнала и центральная схема — контроллер. Существует множество схем металлоискателей под разные виды плат. Распространена схема устройства «Пират» на базе двух чипов:

  • операционного двухканального усилителя TL072 и его аналога К157УД2 (приемный модуль);
  • чипа NE555 (передающий узел системы).

Пинпоинтер с дискриминацией металлов на arduino nano

Но в последнее время становятся популярны варианты на Arduino. Причина этого — простота, дешевизна, хорошая изученность семейства Ардуино и мощные программные возможности платформы.

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

Проходя через катушку индуктивности, электрический ток генерирует вокруг нее магнитное поле. А колебания значений поля создают уже поле электрическое. По закону Фарадея изменения электрического поля создают разность потенциалов.

Последняя благодаря свойству индуктивности катушки активно препятствует изменениям магнитного поля: свойство не дает нарастать току. Для измерения индуктивности служит системная единица Генри, вычисляемая по формуле:

Где:

  • L — значение индуктивности в Генри;
  • μο — магнитная проницаемость;
  • N — количество витков катушки;
  • A — площадь сечения провода;
  • L — длина намотанного на катушку провода в метрах.

При наличии металла рядом с катушкой индуктивность меняется:

  • немагнитные металлы ее снижают;
  • магнитные, наподобие железа — увеличивают.

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

Поэтому недорогие модели (в том числе DIY) свойство селективности обычно не поддерживают, но встречаются и варианты с ней.

У образцов на Ардуино дискриминация встречается редко, хотя существуют схемы так называемых пинпойнтеров — способных различать металлы на небольших расстояниях детекторов.

Уровень индуктивности зависит от сердечника. Бессердечниковые катушки с небольшим количеством витков имеют сравнительно невысокую итоговую чувствительность.

Пинпоинтер с дискриминацией металлов на arduino nano

Для получения высоких значений нужны варианты на ферритовом сердечнике и с несколькими десятками (а лучше — сотнями) витков.

Пинпоинтер с дискриминацией металлов на arduino nano

Но при создании простого бытового детектора достаточно и катушки первого типа. Ее можно сделать, намотав 30–40 витков на подходящий предмет — например, пустую пластиковую «шайбу» от изоленты.

Пинпоинтер с дискриминацией металлов на arduino nano

Простой металлоискатель на базе Arduino

Для постройки понадобятся:

  • одноплатный компьютер Arduino Nano;
  • зуммер (небольшой динамик-«пищалка»);
  • катушка индуктивности — покупная или намотанная самостоятельно;
  • конденсатор на 10 нФ;
  • резистор на 330 Ом;
  • резистор на 1 кОм;
  • диод типа 1N4148;
  • светодиод;
  • макетная плата;
  • источник питания на 9 В;
  • провода для соединения.

Схема устройства

Готовый металлоискатель на Arduino схематически выглядит так:

Пинпоинтер с дискриминацией металлов на arduino nano

Всеми процессами управляет микрокомпьютер Arduino. О нахождении в поле «зрения» металла сигнализирует дополненный светодиодом зуммер, а катушка с конденсатором служат непосредственно для обнаружения. Импульсный диод в схеме нужен для понижения напряжения, а резистор ограничивает ток на контактах Ардуино.

Все элементы монтируются на макетной плате. Вид в сборе:

Пинпоинтер с дискриминацией металлов на arduino nano

Схема действует следующим образом:

  • на выходе Ардуино мы создаем импульсы прямоугольной формы;
  • они поступают на LR фильтр верхних частот;
  • с каждым переходом уровня на катушке возникнет быстрый остроконечный импульс. Долгота его пропорциональна значению индуктивности нашей катушки.

Измеряя ширину импульса, можно замерить и саму индуктивность. Но важно учесть, что длина импульсов всего около 0.5 микросекунды, и «поймать» их по отдельности с помощью Arduino затруднительно.

Поэтому в систему внедрен конденсатор: он заряжается импульсами до уровня считывания напряжения контроллером через аналоговый контакт A5. На аналогово-цифровом преобразователе из него будет получено цифровое значение.

Когда напряжение считано, конденсатор разряжается подачей низкого напряжения на А5 — так называемый «логический нуль» (перед этим программа переводит контакт из режима «ввода» на «вывод».

Цикл занимает примерно 200 мс. Для большей точности его можно повторить его несколько раз и получить среднее значение, с каковым и работать. Зная приближенное значение индуктивности, плата анализирует его и выдает заданные сигналы на диод и динамик.

Прошивка

Поскольку мы делаем импульсный металлоискатель на Ардуино, мало его собрать — нужно еще залить управляющее ПО. В терминологии Arduino оно называется «скетч» и прошивается в плату при помощи входящей в комплект среды разработки.

Пинпоинтер с дискриминацией металлов на arduino nano

Пример простого скетча для описанной выше схемы:

https://cloud.mail.ru/public/nq3p/HSXDjD6mS

Здесь:

  • инициализируются два контакта контроллера. Первый генерирует идущие на катушку импульсы, второй — читает напряжение с конденсатора;
  • также включаются два контакта — они управляют диодом и звуковым зуммером.

При попадании в область детекции катушки зуммер издает звук, а диод часто мигает.

Прибор может быть собран в любом удобном корпусе, покупном или самодельном. В самом простом случае его можно смонтировать даже на селфи-палке.

Более сложная схема с шестью катушками

Для лучших результатов можно использовать несколько катушек и плату Arduino Nano.

Понадобятся:

  • контроллер Ардуино;
  • 9-вольтовый источник питания;
  • счетверенный компаратор LM339 — 2 шт.;
  • макетная плата Veroboard 50 на 80 мм;
  • резисторы на 1 кОм — 5 шт.;
  • резисторы на 100 Ом — 5 шт.;
  • диод сигнальный IN4148 — 5 шт.;
  • конденсатор на 0.1 мкФ — 5 шт.;
  • конденсатор керамический на 330 пФ — 5 шт.;
  • резистор на 10К — 1 шт.;
  • светодиодная лента с резистором на 150 Ом, под напряжение 3 В — для визуальной индикации.

Проводником здесь служит медный провод сечением 0.26 мм и 25 метров в длину. Также нужны 3 мяча для пинг-понга, лист пластика, 6-мм МДФ 22 на 23 см для основы катушек (два листа), двухкомпонентный эпоксидный клей и экранированный кабель сечением 2–3 мм и длиной 30 см. Под рукоять можно взять пластиковую ручку швабры с гибким шарниром или другую похожую конструкцию.

Подготовка

Сперва создадим на картоне шаблон, нарисовав на нем круг радиусом 40 мм и разделив его на 8 одинаковых сегментов. Должна получиться шестиугольная форма. С ее помощью рисуется контур на листе бумаги. Всего должно получиться пять форм, которые следует скопировать на доску МДФ, как показано на картинке. Получившееся следует вырезать в двух экземплярах.

  • Далее в центре каждого шестиугольника одной из форм фрезой сверлятся отверстия под будущие катушки:
  • И листы скрепляются эпоксидным клеем, в результате чего появляется основа детектора.

Затем на 40-мм цилиндр наматывается 40 витков проволоки. Должно получиться пять таких катушек. Обмотки можно склеить горячим клеем, оставляя в начале и конце по 20 см для соединения с платой.

  1. После этого в каждом узле катушки высверливается 3-мм отверстие для подвода проводов, и намотанные блоки приклеиваются на место.
  2. Важно делать их «заподлицо» с плитой МДФ, чтобы катушки не портились при работе с прибором.

Монтаж

  • Схема будущего металлоискателя:
  • Монтажная плата размечается по созданному ранее макету.

Сперва ставится контроллер Arduino и чип LM339. Затем добавляются конденсаторы и резисторы, с ними же ставится экранированный кабель.

Конденсаторы на 0.1 мкФ можно разместить прямо на МДФ для экономии места и провода, там же ставятся диоды.

  1. Готовый вид смонтированной системы:

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

  • Источник питания в данном случае заключен в контейнер на крышке.
  • Готовый вид конструкции:
Читайте также:  Бутановая кислота взаимодействие с металлами

Программная часть

Полный текст скетча для Ардуино можно найти по ссылке ниже.

https://cloud.mail.ru/public/vqv5/sWF94wcuh

Заключение

Доступность технологий сегодня позволяет собрать металлодетектор своими руками и без существенных затрат. А применение контроллера Ардуино делает процесс еще проще — плата берет на себя все управление логикой, достаточно лишь создать подходящий скетч или воспользоваться одним из уже готовых примеров.

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

Видео по теме

Металлоискатель на ардуино с дискриминацией металлов — ТехПорт

Поиск артефактов под землей — довольно популярное занятие. Для кого-то, это профессия, кто-то просто увлекается археологией. Существуют многочисленные группы кладоискателей: как романтиков, так и прагматичных добывателей ценностей. Всех этих людей объединяет одна страсть: поиск металлических предметов, спрятанных на различной глубине.

Если у вас есть точная карта с указанием места захоронения клада, либо планы проведения боев во время войны, это не гарантирует успех. Можно перелопатить тонны грунта, а искомый предмет будет спокойно лежать в паре метров от места активного поиска.

Для поиска золота, и менее ценных металлов, вам потребуется металлоискатель, который можно сделать своими руками.

Пинпоинтер с дискриминацией металлов на arduino nano

Важная информация: Применение подобных приборов не запрещено Законом. Однако существуют наказания за последствия такого поиска, касающиеся раскопок, а также извлечения обнаруженных предметов.

Не будем вдаваться в тонкости, это тема другой статьи. Проще говоря: если вы нашли золотое кольцо на пляже, либо горсть советских монет в лесу — проблем, связанных с применением электронных средств поиска не будет.

А вот за извлеченные бронзовые ложки возрастом от 100 лет и старше, можно получить реальный срок или крупный штраф.

Тем не менее приборы для поиска металлических предметов в толще земли свободно продаются, а желающие сэкономить могут сделать металлоискатель своими руками в домашних условиях.

Принцип работы устройства

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

Пинпоинтер с дискриминацией металлов на arduino nano

Катушка излучает электромагнитное поле, которое затем анализируется приемником. Если в зоне действия оказывается любой предмет, который проводит электроток, либо имеет ферромагнитные свойства — формат поля искажается.

Точнее сказать, под действием активного поля катушки, объект формирует собственное.

Это событие фиксируется приемником, и генерируется оповещение: перемещается стрелка прибора, звучит тональный сигнал, загораются световые индикаторы.

Зная методику работы, можно рассчитать электрическую схему, и создать мощный металлоискатель своими руками. Сложность конструкции зависит только от наличия элементной базы и вашего желания. Рассмотрим несколько популярных вариантов, как собрать самодельный металлоискатель:

Так называемая «бабочка»

Такое прозвище получено из-за характерной формы площадки, на которой расположены катушки индуктивности.

Пинпоинтер с дискриминацией металлов на arduino nano

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

Генераторы реализуются на микросхемах NE555. На иллюстрации изображена типовая схема такого прибора.

Пинпоинтер с дискриминацией металлов на arduino nano

Катушка для металлоискателя (их две, на схеме: L1 и L2) делается своими руками из провода сечением 0.5–0.7 мм². Идеальный вариант — трансформаторная обмоточная медная жила в лаковой изоляции (извлекается из любого ненужного трансформатора). Характеристики не обязательно выдерживать с ювелирной точностью, при одном условии: катушки должны быть одинаковыми.

Примерные параметры: диаметр 190 мм, в каждой катушке ровно 30 витков. Собранное изделие должно быть монолитным. Для этого витки прихватываются монтажной нитью, и заливаются трансформаторным лаком. Если этого не сделать, вибрация витков будет сбивать схему с настроенного баланса.

Электрическая схема

Есть два варианта изготовления:

  • учитывая малое количество элементов, можно собрать ее на макетной плате, соединив ножки деталей с помощью проводников;
  • для аккуратности и надежности, лучше вытравить плату по предложенному чертежу.

  Подключение электродвигателя стиральной машины ардоПинпоинтер с дискриминацией металлов на arduino nano

Любая пайка «на соплях» может подвести в полевых условиях, и вам будет обидно за потраченное впустую время.

Так же, как и металлоискатель на транзисторах, прибор на NE555 нуждается в точной настройке перед использованием. На схеме видно три переменных резистора:

  • R1 предназначен для настройки частоты генератора и достижения того самого баланса;
  • R2 грубо настраивает чувствительность;
  • с помощью резистора R3 можно выставить чувствительность с точностью до 1 см.

Информация: Подобная схема не может дискриминировать металлы. Искатель лишь дает понять, что объект существует. А по тональности сигнала (исходя из вашего опыта) можно определить приблизительный объем и глубину залегания.

Питание достаточно универсальное: 9–12 вольт. Можно подобрать АКБ от источника бесперебойного питания, или собрать блок питания из аккумуляторов формата ААА. Неплохой вариант — батареи 18650 (их еще используют для вейпа).

Настройка «бабочки»

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

Пинпоинтер с дискриминацией металлов на arduino nano

Фиксируем кольца, и вращаем резистор R1 до появления устойчивого потрескивания с ровными интервалами.

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

Остается подстройка резистором R3, который используется скорее для корректировки падения напряжения в источнике питания.

Механическая часть

Штанга для металлоискателя своими руками делается из легкой пластиковой трубы, либо из дерева. Использование алюминия нежелательно, поскольку он будет мешать работе. Схему и органы управления можно спрятать в герметичный корпус (например, распаечная коробка для проводки).

Пинпоинтер с дискриминацией металлов на arduino nano

Искатель «бабочка» готов к работе.

Пират

Еще одна популярная импульсная модель для начинающих кладоискателей — металлоискатель «Пират» Его также легко сделать своими руками, подробная инструкция в двух вариантах:

  1. На той же микросхеме NE555. Это классический генератор, который начинает работать при появлении металла в зоне действия катушки. Никаких подстроек не требуется, просто в динамике раздастся писк. Пинпоинтер с дискриминацией металлов на arduino nano
  2. Металлоискатель, собранный на транзисторах, работает по такому же принципу. Собственно и схема аналогичная, только NE555 заменена транзисторным генератором на КТ315.Пинпоинтер с дискриминацией металлов на arduino nano

Питание желательно приблизить к 12 вольтам, поскольку качество работы зависит от напряжения. Печатные платы уже опробованы, оба варианта на иллюстрации.

Пинпоинтер с дискриминацией металлов на arduino nano

Катушка (в данном случае одна) изготавливается из той же трансформаторной проволоки 0.5 мм. Оптимальный диаметр 20 мм, количество витков 25. Поскольку мы делаем металлоискатель «Пират» своими руками, внешний дизайн отходит на второй план. Подойдут любы материалы, которые вы готовы были выбросить.

Рукоятку лучше выполнить разъемной, для удобства транспортировки. Помним, что использование металлов недопустимо.

Чувствительность регулируется двумя переменными резисторами в реальном времени, при проведении поиска. Никакая точная подстройка генератора не требуется.

  • А если вам удастся качественно загерметизировать корпус, можно заняться поиском «сокровищ» в пляжной полосе прибоя, и даже на дне водоема.
  • Подводный металлоискатель своими руками сделать сложнее, но он даст неоспоримое преимущество перед конкурентами.

Улучшение характеристик

Глубинный металлоискатель своими руками без дополнительных затрат можно сделать из готового «Пирата». Для этого можно пойти двумя способами:

  1. Увеличение диаметра катушки индуктивности. При этом существенно повышается проницаемость вниз, но снижается чувствительность к небольшим предметам.
  2. Снижение числа витков катушки с одновременной подстройкой схемы. Для этого придется пожертвовать одной катушкой для экспериментов. Снимаем (и отрезаем) виток за витком, пока не увидим, что чувствительность начала снижаться. Запоминаем количество витков при максимальных параметрах, и делаем новую катушку для этой схемы. Затем меняем резистор R7 на переменный, с аналогичными параметрами мощности. Проведя несколько экспериментов с чувствительностью, фиксируем сопротивление, меняем переменник на постоянный резистор.

  Тарировка динамометрического ключа видео

  1. Металлоискатель «Пират» можно собрать на популярном контроллере «Ардуино».
  2. Пользоваться таким прибором удобнее, но дискриминации металлов по-прежнему не будет.
  3. Разобравшись, как сделать металлоискатель своими руками для любительских задач, кратко разберем несколько серьезных моделей.
Читайте также:  Повышение и проверка плотности электролита в аккумуляторе в домашних условиях

По сути, это удешевленный вариант профессионального искателя Clone PI-AVR, только вместо ЖК дисплея применяется линейка светодиодов. Это не так удобно, но по-прежнему позволяет контролировать глубину залегания артефактов.

  • Оптимальный по цене вариант — на микросхеме CD4066 и микроконтроллере ATmega8.
  • Разумеется, под это решение есть и макет печатной платы, только кнопки управления выносятся на отдельную панель.
  • Программирование ATmega8 — это тема отдельной статьи, если вы работали с такими контроллерами, никаких сложностей не возникнет.
  • Мощный металлоискатель Clone PI W, сделанный своими руками, позволяет находить металл не глубине более метра, правда без дискриминации.

Искатель «Шанс»

Похожая схема на контроллере ATmega8 называется «Шанс». Принцип работы аналогичный, только появилась возможность отсеивания (частичной дискриминации) черных металлов.

  1. Также проработан рисунок печатной платы, который можно с успехом заменить классической «макеткой» для Ардуино

«Терминатор 3» своими руками

Если вам нужен самодельный металлоискатель с дискриминацией металлов, обратите внимание на эту модель. Схема достаточно сложная, но ваши труды окупаются найденными монетами, которые могут оказаться золотыми.

Особенность «Терминатора» состоит в разнесении приемной и передающей катушек. Для испускания сигнала изготавливается кольцо 200 мм. Для него укладывается 30 витков провода, затем он разрезается, в итоге мы получаем 2 полу-катушки общей емкостью 60 витков (смотреть схему).

  • Приемная катушка располагается внутри, 48 витков диаметром 100 мм.
  • Настройка производится с помощью осциллографа, после достижения оптимальных результатов по амплитуде, обмотки фиксируются в корпусе с помощью заливки эпоксидной смолой.

Затем производится опытная практическая настройка переключателя дискриминации. Для этого используются реальные объекты из различных металлов, а на переключателе режимов наносится их тип (после проверки).

Радиолюбителями прорабатывается усовершенствованный вариант «Терминатор 4», но практического экземпляра еще нет.

  • Металлоискатель из радиоприемника можно сделать, добавив к нему простой ВЧ передатчик:Поисковая катушка мотается из провода 0.5 мм²: 16 витков 12 см. При попадании в зону действия металлического предмета, приемник, настроенный на СВ/ДВ диапазон, будет менять тональность звука.
  • Самодельный металлоискатель из сотового телефона — это не более, чем миф. Модернизация его электросхемы в домашних условиях не реализуема, а заставить штатный мобильник работать детектором металл технически невозможно.
  • Металлоискатель из магнита, собственно, и делать не нужно. Вы просто подносите мощный неодимовый магнит к месту, где есть металлический предмет, и физически чувствуете силу притяжения. Разумеется, это работает только с металлами, имеющими ферромагнитные свойства (железо, сталь).

Вне зависимости от сложности схемы, изготовление самодельного металлоискателя потребует от вас достаточно времени и сил. Поэтому из любопытства, такие приборы не делают. А вот для профессионального использования — это отличная альтернатива фабричным экземплярам.

Видео по теме

Когда я только начинал работу с Ардуино, я был так воодушевлен, что думал, что могу найти и собрать любую схему МеталлоДетектора из интернета на Ардуино, которую с легкостью найду на просторах большой помойки. В принципе так и оказалось, но схемы были на основе частотомера, что не позволило добиться реально хорошей дальности. Одни детские игрушки и проба пера+ попытки заработать на новичках. Оригинал данного мд является реальной рабочей лошадкой, позволяющей находить крупные предметы на расстоянии 2м (смотрите в гугле книгу Колоколова-Щедрина). Статистики по преображенному мд нет. Надеюсь она появится при поддержке фанатов МД и Ардуино. Схема работала с Ардуино Уно и Ардуино Про Мини.

  Наклейки на счетчики воды противомагнитные

Далее на ссылке выложен процесс рождения данного МД на сайте Паяльник, который длился не один год и подтолкнул автора к изучению программирования дуин. Возможно кому то скетч покажется убогим – с удовольствием приму ваши ИСПРАВЛЕНИЯ.

На данный момент есть скетч позволяет регулировать барьер чуствтельности(вывод 7 дуины +1 к барьеру, вывод 8 -1 к барьеру). . Ардуино про мини 5в, 16МГц, АТмега168 и дисплей использовал вот такие. Рядом для масштаба переходник Мини СД-

Как уже говорил 1602 стоит 86 рублей, ПроМини – 82 рубля. При желании можно вообще взять голую АТмегу168, разработать под нее плату и залить скетч прямо в нее. А так я например устанавливал при помощи разъема мама-папа на плату МД. На фото видно у Ардуино штекер на 6 пинов-через него и заливались скетчи прямо на плате.

Автоноль не использовал.Последние два элемента ТЛ074 остались без дела. Но на схеме и плате они есть. Может появится желание довести их до рабочего состояния чуть позже. Я считаю, что я своего добился. Блок индикации работает чудесно. Все остальное зависит от МД.

цифровая электроника вычислительная техника встраиваемые системы

Металлоискатель – это устройство, используемое для обнаружения присутствия металла в некоторой близости от этого металлоискателя, не касаясь самого металла.

Такие устройства широко используют для поиска металлических предметов в земле, например, мин, кладов с драгоценными металлами, предметы старины и прочие вещи.

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

Таким образом, электронная начинка металлоискателя попросту определяет индуктивность катушки, которая зондирует исследуемую поверхность, и благодаря динамику или другому интерфейсному устройству оповещает пользователя о металлическом объекте поблизости.

Металлоискатели в официальных точках продаж стоят не так дешево, как хотелось бы. Но сегодня благодаря развитию радиолюбительской техники маталлоискатель можно сделать самостоятельно на основе Arduino.

По сути, с помощью Arduino можно создать простой индуктивный измеритель, то есть устройство, которое может использоваться для измерения неизвестной индуктивности катушки. В данном проекте используется обычный резонансный контур, в котором параллельно соединены конденсатор и катушка индуктивности.

Естественная резонансная частота LC-контура изменяется в зависимости от присутствия металла поблизости от катушки. Для получения приемлемого для считывания сигнала с резонансного контура используется компаратор LM339.

Поскольку колебания от LC-контура всегда будут в форме синусоидальной волны, то в этом проекте и используется детектор пересечения нуля на основе компаратора, чтобы преобразовать синусоидальную волну в прямоугольные частотные импульсы, чтобы плата Arduino могла измерять период этих импульсов, и на основе полученных данных о периоде оповещать о присутствии металла вблизи прибора. Благодаря встроенной в Arduino >

  • Схема металлоискателя на основе Arduino представлена ниже.
  • Далее приведен небольшой код (скетч) для Arduino, который позволит сделать простой металлоискатель.

Металлоискатель на Arduino c дискриминацией металлов

В данной статье мы рассмотрим создание металлоискателя (металлодетектора) на основе платы Arduino с возможностью дискриминации металлов.

Данный металлоискатель будет способен обнаруживать мелкие металлические предметы (например, монеты) на глубине до 15 см, а крупные предметы из металла он сможет обнаруживать на глубине до 50 см (и даже более).

Также он будет способен отличать железосодержащие металлы (ferrous) от цветных металлов (nonferrous). Металлоискатель отличается достаточно простой конструкцией и в то же время он обеспечивает приемлемую чувствительность.

Ранее на нашем сайте рассматривался проект простого металлоискателя на Arduino, рекомендуем его прочитать чтобы понять принцип работы металлоискателя (металлодетектора).

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

  1. Плата Arduino Nano (купить на AliExpress).
  2. ЖК дисплей 16х2 (купить на AliExpress).
  3. Операционный усилитель TL081 или 741, также подойдет LT1677 (использован автором проекта) (купить на AliExpress).
  4. Громкоговоритель (Speaker) 0,25 Вт, 8 Ом.
  5. Транзистор общего назначения NPN типа.
  6. Катушка индуктивности – 2 шт.
  7. Потенциометр 10 кОм (купить на AliExpress).
  8. Конденсаторы и резисторы (согласно схеме, представленной далее).
  9. Переключатели.
  10. Батарейка.

Схема проекта

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

Пинпоинтер с дискриминацией металлов на arduino nanoПри обнаружении металла устройство будет издавать звуковой сигнал, а на ЖК дисплее с помощью столбчатой диаграммы (bar graph) будет отображать степень близости металла, а также указываться тип металла – железо (ferrous) или цветной (nonferrous).

Устройство представляет собой индукционно-балансный металлодетектор, работающий на очень низкой частоте (very low frequency, VLF). Металлоискатель содержит передающую и приемную катушки индуктивности. Как и во всех схемах подобных детекторов, для нашего прибора очень важен баланс между катушками.

Читайте также:  Клей для металла: характеристики и особенности, преимущества и критерии выбора, состав и правила применения

Потенциометр в схеме детектора используется для устранения влияния противофазного компонента (out-of-phase component) сигнала – приводит сдвиг по фазе к нулю, а синфазный компонент (in-phase component) обнуляется с помощью соответствующего расположения катушек – по принципу работы IB-детекторов.

Каждая катушка индуктивности изготовляется при помощи намотки 64 витков провода сечением 0,5 мм2 из эмалированной меди на D форму (D shape) диаметром 11 см.

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

После чего обе катушки закрепляются на пластиковое основание. Внешний вид собранных катушек индуктивности для металлоискателя показан на следующем рисунке.

Более подробно процесс их сборки вы можете посмотреть на видео, приведенном в конце статьи. Внешний вид собранной конструкции металлоискателя показан на следующем рисунке.

Для настройки работы проекта нам первым делом необходимо определить резонансную частоту колебательного контура в нашей схеме. Для этого можно использовать известную из курса физики формулу, online калькуляторы, либо же ее можно измерить с помощью осциллографа. Если собрали катушки описанным способом, то резонансная частота нашего контура должна составлять примерно 7.64 кГц. Если вы получили другое значение резонансной частоты, то вам необходимо внести соответствующие изменения в следующую строчку программы:

#define TIMER1_TOP (249) // fine-tune the frequency

#define TIMER1_TOP (249) // fine-tune the frequency

Как вы можете посмотреть на далее представленном видео, результаты работы металлоискателя получились весьма впечатляющими. В отсутствии металла прибор показывает устойчивую работу.

Металлический круг диаметром 15 см обнаруживается на расстоянии более 30 см. Металлические предметы большего размера обнаруживаются на расстояниях, превышающих 40-50 см.

Маленькую монету можно обнаружить на расстоянии 15 см (в воздухе).

Для питания металлоискателя автор проекта использовал два литиевых аккумулятора, которые при последовательном соединении обеспечивают питающее напряжение 7.4 В – это напряжение подается на контакт Vin платы Arduino. Энергопотребление устройства не превышает 20mA, поэтому от таких аккумуляторов оно будет работать достаточно долго.

Для значительного увеличения чувствительности металлоискателя автор проекта предлагает осуществлять управление передающей катушкой с помощью мощного MOSFET транзистора – в дальнейшем он на странице проекта планирует опубликовать результаты подобного эксперимента.

Примечание: рекомендации по практической сборке данного проекта металлоискателя от активного читателя нашего сайта с именем Александр с описанием, фотографиями и видео можно скачать по следующей ссылке.

Исходный код программы (скетча)

// Induction balance metal detector

// We run the CPU at 16MHz and the ADC clock at 1MHz (АЦП работает на 1 МГц). ADC resolution is reduced to 8 bits at this speed. (разрешение АЦП уменьшено до 8 бит)

// Timer 1 is used to divide the system clock by about 256 to produce a 62.5kHz square wave. (Таймер 1 использовается для формирования прямоугольных импульсов с частотой 62,5 кГц)
// This is used to drive timer 0 and also to trigger ADC conversions.
// Timer 0 is used to divide the output of timer 1 by 8, giving a 7.8125kHz signal for driving the transmit coil.
// Таймер 0 делит выход таймера 1 на 8, и, таким образом, формирует сигнал частотой 7.8125kHz для управления передающей катушкой
// This gives us 16 ADC clock cycles for each ADC conversion (it actually takes 13.5 cycles), and we take 8 samples per cycle of the coil drive voltage.
// The ADC implements four phase-sensitive detectors at 45 degree intervals. Using 4 instead of just 2 allows us to cancel the third harmonic of the
// coil frequency.

// Timer 2 will be used to generate a tone for the earpiece or headset. (таймер 2 используется для генерации тона для наушников)

// Other division ratios for timer 1 are possible, from about 235 upwards.

// Wiring:
// Connect digital pin 4 (alias T0) to digital pin 9
// Connect digital pin 5 through resistor to primary coil and tuning capacitor
// Connect output from receive amplifier to analog pin 0. Output of receive amplifier should be biased to about half of the analog reference.
// When using USB power, change analog reference to the 3.3V pin, because there is too much noise on the +5V rail to get good sensitivity.
#include
#include
#define max_ampAverage 200
LiquidCrystal lcd(6, 7, 10, 11, 12, 13);
LcdBarGraph lbg(&lcd, 16, 0, 1);

#define TIMER1_TOP (259) // can adjust this to fine-tune the frequency to get the coil tuned (see above) (это значение используется для точной настройки частоты катушки)

#define USE_3V3_AREF (1) // set to 1 of running on an Arduino with USB power, 0 for an embedded atmega28p with no 3.3V supply available

// Digital pin definitions
// Digital pin 0 not used, however if we are using the serial port for debugging then it's serial input
const int debugTxPin = 1; // transmit pin reserved for debugging (передающий контакт, зарезервированный для целей отладки)
const int encoderButtonPin = 2; // encoder button, also IN0 for waking up from sleep mode
const int earpiecePin = 3; // earpiece, aka OCR2B for tone generation
const int T0InputPin = 4;
const int coilDrivePin = 5;
const int LcdRsPin = 6;
const int LcdEnPin = 7;
const int LcdPowerPin = 8; // LCD power and backlight enable
const int T0OutputPin = 9;
const int lcdD4Pin = 10;
const int lcdD5Pin = 11; // pins 11-13 also used for ICSP
const int LcdD6Pin = 12;
const int LcdD7Pin = 13;

// Analog pin definitions (используемые аналоговые контакты)
const int receiverInputPin = 0;
const int encoderAPin = A1;
const int encoderBpin = A2;
// Analog pins 3-5 not used

// Variables used only by the ISR
int16_t bins[4]; // bins used to accumulate ADC readings, one for each of the 4 phases (используются для хранения значений, считываемых с АЦП)
uint16_t numSamples = 0;
const uint16_t numSamplesToAverage = 1024;

// Variables used by the ISR and outside it
volatile int16_t averages[4]; // when we've accumulated enough readings in the bins, the ISR copies them to here and starts again
volatile uint32_t ticks = 0; // system tick counter for timekeeping
volatile bool sampleReady = false; // indicates that the averages array has been updated

// Variables used only outside the ISR
int16_t calib[4]; // values (set during calibration) that we subtract from the averages (значения, устанавливаемые во время калибровки, в дальнейшем мы их вычитаем из средних значений)

volatile uint8_t lastctr;
volatile uint16_t misses = 0; // this counts how many times the ISR has been executed too late. Should remain at zero if everything is working properly.

const double halfRoot2 = sqrt(0.5);
const double quarterPi = 3.1415927/4.0;
const double radiansToDegrees = 180.0/3.1415927;

// The ADC sample and hold occurs 2 ADC clocks (= 32 system clocks) after the timer 1 overflow flag is set.
// This introduces a slight phase error, which we adjust for in the calculations.
const float phaseAdjust = (45.0 * 32.0)/(float)(TIMER1_TOP + 1);

float threshold = 5.0; // lower = greater sensitivity. 10 is just about usable with a well-balanced coil.
// The user will be able to adjust this via a pot or rotary encoder. (эту границу можно сделать настраиваемой с помощью потенциометра или энкодера)

void setup()
{
lcd.begin(16, 2);// LCD 16X2
pinMode(encoderButtonPin, INPUT_PULLUP);
digitalWrite(T0OutputPin, LOW);
pinMode(T0OutputPin, OUTPUT); // pulse pin from timer 1 used to feed timer 0
digitalWrite(coilDrivePin, LOW);
pinMode(coilDrivePin, OUTPUT); // timer 0 output, square wave to drive transmit coil

cli();
// Stop timer 0 which was set up by the Arduino core
TCCR0B = 0; // stop the timer
TIMSK0 = 0; // disable interrupt
TIFR0 = 0x07; // clear any pending interrupt

// Set up ADC to trigger and read channel 0 on timer 1 overflow
#if USE_3V3_AREF
ADMUX = (1

Понравилась статья? Поделиться с друзьями:
Станок