на главную
Карта сайта
English version
Вы читаете:

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

Измерительная техника
5 лет назад

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


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

Конструкция на фото.

Конструкция металлоискателя

Рис. 1. Конструкция металлоискателя

 

Конструкция металлоискателя

Рис. 2. Конструкция металлоискателя

 

Конструкция металлоискателя

Рис. 3. Конструкция металлоискателя

 

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

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

 

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

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

 

Важно, что экран из фольги электрически не замкнут. Феррит из старого радиоприёмника вставлен для пробы. Он изменил индуктивность катушки, но не сильно и сосредоточил на себе магнитное поле. Для мягких грунтов, куда его можно воткнуть может и на пользу, и катушку защищает от деформации.

Катушка металлоискателя

Рис. 6. Катушка металлоискателя

 

Разработано две схемы: сначала с питанием от Power Bank, затем переделал на питание  от аккумулятора 10 В (3х3,6 В).  Первый много кушал: Iпит=140 мА. Убрал преобразователь 5v>14v, Iпит=35 мА. Работают  одинаково, привожу обе схемы. Схемы находится здесь.  

В основу данного металлоискателя положена схема на основе частотомера из книги "Щедрин А.И. Новые металлоискатели для поиска кладов и реликвий (3-е изд.)". Схема несколько изменена и расширена. В Интернете внятной разработки металлоискателя на Arduino не нашёл, мой последний вариант здесь.

Введёны дополнительная катушка на феррите с индуктивностью примерно равной индуктивности основной катушки,  коммутатор сигналов на 590КН2 (4066 наверно будет не хуже), который поочерёдно подключает рабочую или опорную катушки к генератору на NE555, формирователь отрицательного напряжения для 590КН2 (хотя 590КН2 может работать и на однополярном питании, -U на общий, но снизу сигнал подрезает), цепи фильтрации питания. Обработка и индикация сигналов выполнены на Arduino Nano. К нему предусмотрено подключение индикатора LCD 1601, на котором индицируются абсолютные значения измерения временных интервалов, что и использовалось в процессе разработки и настройки. Питание подаётся на Arduino, пин VIN, и через фильтры на NE555, 590КН2. 

Кнопки: Кн1 – запоминает текущее измерение, Кн2 – увеличивает запомненное значение на 1, Кн2 – уменьшает запомненное значение. 

Светодиоды: СД-0  - засвечивается, если измерения от опорной и рабочей  катушек близки друг другу, СД-2  - засвечивается, если измерение от рабочей катушки больше, чем от опорной на 10 имп., СД+1  - засвечивается, если измерение от рабочей катушки меньше, чем от опорной на 10 имп., СД+2  - засвечивается, если измерение от рабочей катушки меньше, чем от опорной на 50 имп., СД+3  - засвечивается, если измерение от рабочей катушки меньше, чем от опорной на 150 имп.. 

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

Основная катушка намотана на коробке от CD-дисков, как показано на фото, 200 витков провода диаметр 0,4. Опорная катушка намотана на ферритовом кольце магнитной проницаемости около 1000, 110 витков тем же проводом. Затем нужно подключить осциллограф к  NE555/3,  включить  металлоискатель и отматывая витки с кольца добиться одинаковой длительности импульса на основной и опорной катушках. Синусоиды на входе NE555/2,6 тоже должны быть блики по частоте.

Причины установки опорной катушки с коммутатором – большой разброс в измерении интервала времени формируемого от генератора. По задумке ожидалось, что уход измерений от истинного значения будет одинаковым на опорной катушке и измерительной и будет компенсирован вычитанием одного из другого. Практика показала положительный результат, хотя и не то, что ожидалось, уровень шумов измерения уменьшился, но остался довольно высоким, что и сказывается на параметрах. Сам Arduino с моей программой даёт погрешность +/-10 импульсов на 30000 измерительных импульсов в 1 мкс, которые формирует Arduino, если на вход 2, который работает по прерыванию, подавать стабильные импульсы от генератора. Также сказываются паразитные ёмкости и наводки, что вызывает изменение (дрожание) измеряемого интервала. Чтобы получить больший полезный сигнал от катушки вызванный металлом в поле катушки, нужно увеличивать интервал измерения, так как в нём полезные сигналы складываются, но к сожалению складываются и шумы. Проведены измерения с различными длительностями интервалов сформированных изменением частоты генератора (ёмкость С2), так и величиной насчёта в Arduino. При малых длительностях – нечувствительность к металлам, при больших –“плавание” измерений и выход за диапазон числа. Выбрана более менее удовлетворительная длительность в 1000 периодов по 55 мкс каждый, итого 110 мс на обе катушки, что даёт возможность в течении 1-2 сек заметить изменение мигания светодиодов. Далее цифровые фильтры в программе отбрасывают крайности и сглаживают насчитанные значения, чем значительно улучшают реальную чувствительность.

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

По прерыванию:

- Принимает импульсы от генератора. 

- Заданное число раз заполняет период этих импульсов импульсами в 1мкс и запоминает насчитанные значения.

- Вычисляет разность значений рабочей и опорной катушек.

- Меняет катушки.

Далее через каждый 3-й проход цикла loop (чтобы успеть к следующей индикации провести изм.):

- Прогоняем полученную разность через два фильтра: медианный и усредняющий. Медианный отбрасывает крайние значения, усредняющий сглаживает оставшиеся. Скеч фильтров взят с сайта:  https://alexgyver.ru/arduino-algorithms/ "ПОЛЕЗНЫЕ АЛГОРИТМЫ ДЛЯ ARDUINO". 

- Опрашиваем кнопки. Кн1 запоминает текущие значения измерения. Кн2 увеличивает запомненные значения на 1. Кн3 уменьшает запомненные значения на 1.

- Засвечивает светодиоды в зависимости от разности запомненных и насчитанных значений. Если измеренные значения меньше запомненных, засвечивается CD-2 (синий), если больше, то остальные с разными величинами отличия запомненной и измеренной. Вместе с засвечиванием светодиодов формируется звук на А4.

- Выдаёт на индикатор LCD1601 насчитанные значения, если разрешено. Когда всё отлажено, 1601 отключен, чтобы не тратить драгоценное время и не шуметь.

Инструкция по эксплуатации из моего небольшого опыта.

Замер производится так. 

1)Нажимается кнопка Кн1 ~ 1 сек.

2)В течении примерно 3 сек наблюдаются и запоминаются состояние кнопок. Кнопками Кн2, Кн3 добиваются чтобы не было  свечения, или было бы медленное мигание CD-0 (зеленого).

3)Металлоискатель переставляется в другое место. В течении 3-5 сек производится наблюдение. По изменению состояния кнопок оценивается наличие металла. Засвечиванию CD-0, если до этого ничего не светилось, или по переходу от мигания одного светодиода к миганию другого, чаще всего от CD-0 к миганию CD+1. (Мигание вызвано шумами и наводками.) Если зафиксировано изменение состояния, производится более тщательное исследование участка. 

Засвечивание CD+2, CD+3 говорит о близости больших масс и площадей металла. 

Поиск надо производить медленно, прибор реагирует на слабый сигнал (клад глубоко закопан) через 1-2 сек, сильный сигнал – почти моментально. 

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

Измерения в квартире дали такой результат обнаружения:

Монета 5 р – 3 см

Фольгированный текстолит двухслойный 38х38 мм – 8,5 см

Ноутбук, алюминиевая батарея отопления - 35 см

Измерение проводилось от выступающего из катушки на 2 см конца феррита до металла по методу улавливания изменения свечения светодиодов описанному выше.

 

P.S. Есть некотрые “странности”. 

Монета прислонённая ребром к ферриту светится синим светодиодом. прислонённая плоскостью – красным. То есть в металле в переменном магнитном поле идут несколько процессов, которые гасят друг друга.

Автор: RadioRadar