CraftDuino v2.0
  • - это CraftDuino - наш вариант полностью Arduino-совместимой платы.
  • CraftDuino - настоящий конструктор, для очень быстрого прототипирования и реализации идей.
  • Любая возможность автоматизировать что-то с лёгкостью реализуется с CraftDuino!
Просто добавьте CraftDuino!

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

Металлоискатель на Arduino
Датский инженер Dzl, вместе со своим сыном собрали себе металлоискатель на базе контроллера Arduino.

Схема:
Схема металлоискателя на Arduino

Частота работы генератора на транзисторе 2n222 зависит от индуктивности поисковой катушки и в отсутствии металла равна ~160кГц (это при авторских параметрах схемы — ёмкость конденсаторов у катушки по 22н и катуша диаметром 15см в 30 витков).
При приближении металлических предметов(особенно железа), индуктивность катушки меняется, меняется и частота генератора, за которой на pin 5 следит программа на Arduino.
Начальное нажатие NULL SW (pin 12) записывает эталонную частоту(начальная калибровка в отсутствии металла вблизи катушки).
При изменении частоты, пьезоизлучатель (pin 13) издаёт «щелчки», которые тем чаще, чем ближе металл.

Скетч:
// Arduino based metal detector
// (C)Dzl july 2013
// http://dzlsevilgeniuslair.blogspot.dk/

// Connect search coil oscillator (20-200kHz) to pin 5
// Connect piezo between pin 13 and GND
// Connect NULL button between pin 12 anf GND

// REMEMBER TO PRESS NULL BUTTON AFTER POWER UP!!


#define SET(x,y) (x |=(1<<y))		        //-Bit set/clear macros
#define CLR(x,y) (x &= (~(1<<y)))       	// |
#define CHK(x,y) (x & (1<<y))           	// |
#define TOG(x,y) (x^=(1<<y))            	//-+

unsigned long t0=0;         //-Last time
int t=0;                    //-time between ints
unsigned char tflag=0;      //-Measurement ready flag

float SENSITIVITY= 1000.0;  //-Guess what

//-Generate interrupt every 1000 oscillations of the search coil
SIGNAL(TIMER1_COMPA_vect)
{
  OCR1A+=1000;
  t=micros()-t0;
  t0+=t;
  tflag=1;
}

void setup()
{
  pinMode(13,OUTPUT);    //-piezo pin
  digitalWrite(12,HIGH); //-NULL SW. pull up
  //-Set up counter1 to count at pin 5
  TCCR1A=0;
  TCCR1B=0x07;
  SET(TIMSK1,OCF1A);
}
//-Float ABS
float absf(float f)
{
  if(f<0.0)
    return -f;
  else
    return f;
}

int   v0=0;  //-NULL value
float f=0;   //-Measurement value
unsigned int FTW=0;    //-Click generator rate
unsigned int PCW=0;    //-Click generator phase
unsigned long timer=0; //-Click timer
void loop()
{
  if(tflag)
  {
    if(digitalRead(12)==LOW)  //-Check NULL SW.
      v0=t;                   //-Sample new null value
    f=f*0.9+absf(t-v0)*0.1;   //-Running average over 10 samples
    tflag=0;                  //-Reset flag

    float clf=f*SENSITIVITY;  //-Convert measurement to click frequency
    if(clf>10000)            
      clf=10000;
    FTW=clf;
  }
  
  //-Click generator
  if(millis()>timer)
  {
    timer+=10;
    PCW+=FTW;
    if(PCW&0x8000)
    {
      digitalWrite(13,HIGH);
      PCW&=0x7fff; 
    }
    else
      digitalWrite(13,LOW);
  }
}


Ссылки
Diy Arduino based metal detector.

Arduino
Arduino, термины, начало работы
КМБ для начинающих ардуинщиков
Состав стартера (точка входа для начинающих ардуинщиков)
  • 0
  • 27 июля 2013, 11:52
  • admin

Комментарии (28)

RSS свернуть / развернуть
+
0
Интересный проект, сегодня заеду куплю транзистор этот и попробую собрать
avatar

iwizard7

  • 29 июля 2013, 06:30
+
0
Уточнение параметров катушки. ...Wire is just plain 0,12mm2 plastic coated wire… диаметр провода ~0.4мм
avatar

Deemega

  • 2 августа 2013, 05:23
+
0
катушку нужно мотать именно проводом 0.4 30 витков? собрал, намотал 15 витков проводом 1.4мм, нивкакую не работает
avatar

iwizard7

  • 4 августа 2013, 06:51
+
0
Да, мотать по рецепту 30 витков D0.4мм. У меня есть только 0.33мм из размагничивающей рамки кинескопа. Но и он работает при тех же количествах витков. Транзистор взял BC107B в металлостеклянном корпусе.
avatar

Deemega

  • 6 августа 2013, 12:32
+
0
Паять схему прямо на концах катушки. Ардуина наверху, а к ней длинные провода от частотной схемы. Кондёры(керамику) лучше брать с компьютерных девайсов. Ноги всех компонентов как можно короче и ближе друг к другу
avatar

Deemega

  • 6 августа 2013, 13:39
+
0
Спасибо, сегодня-завтра попробую, подскажите на какой глубине он видит допустим монету?
avatar

iwizard7

  • 7 августа 2013, 05:39
+
0
Распространенные аналоги 2n2222 — КТ3117А(Б),BC107B,BC109
avatar

Deemega

  • 2 августа 2013, 05:27
+
0
Сделал вот такую печатку на смд, транзистор bc107b, катушка 30 витков провода 0.33, все работает. Помогите пожалуйста теперь разобраться с настройкой, а то что то чувствительность не радует.
avatar

Alexryabkov

  • 7 августа 2013, 14:26
+
0
float SENSITIVITY= 1000.0; //-Guess what
Чувствительность или фильтр или девиация. Уменьшите значение SENSITIVITY
avatar

Deemega

  • 7 августа 2013, 18:19
+
0
Собрал. в целом работает. Делаю сброс, светодиод мигает, подношу металл мигает быстрее. Удаляю — медленнее.
Однако спустя, некоторое время, начинает мигать бешено не зависимо от наличия металла, приходится делать снова сброс. Что это, что то переполняется?
avatar

rgsv

  • 9 августа 2013, 09:38
+
0
А может частота генератора гуляет? частоту на 5пин проверяли? напишите простенький скеч — делитель на 100-1000 входной частоты и послушайте через пьезо.
avatar

Deemega

  • 9 августа 2013, 16:01
+
0
имхо, эта схема — затея для идеи. интереснее взять опорную частоту от ардуины, а измеряющую часть построить по принципу фазосдвигающей и улавливать биения опорной и сдвинутой. то же самое делает скеч в данном случае, но ему по барабану частота внешнего генератора. вот и кнопка появилась.
avatar

Deemega

  • 9 августа 2013, 16:14
+
0
Не подскажите какого диаметра мотать кольцо?
avatar

aspo

  • 9 августа 2013, 21:29
+
0
катушка должна быть плоская, начальный диаметр 15см, я мотал одной жилой от витухи
avatar

iwizard7

  • 11 августа 2013, 08:06
+
0
Народ поскажите к какому пину цеплять 5 аналогоговый или 5 цифровой? и еще такой момент, собрал схему, не работает, все перепроверил раз на 50, транзистор как написано 2n2222 номиналы деталей тоже все как в схеме, катушка по рецепту, когда подаешь питание на ардуину тишина, если делаешь сброс на ардуине происходит три щелчка через пьезу и тишина, схема на работает, транзистор целый, измерял через мультиметр, резюки тоже, кондюки измерить не могу, не мериит у меня их мультиметр, может быть что изза них схема может не рааботать?
avatar

iwizard7

  • 11 августа 2013, 08:13
+
0
У меня такая же история. Точно так же 3 щелчка и тишина…
avatar

DenisUfa

  • 4 сентября 2014, 11:30
+
0
Всё сделал как здесь написано, но к сожалению не работает. Использую Arduino Leonardo. Выдаёт однотонное пищяние. С стандартным значением SENSITIVITY пищит как не нормальный. Все детали как написано брал только транзистор биполярный 2N2222A. Может проблема заключаться в нём? И ещё не могу понять принцип работы программы. Она отсчитывает промежуток времени между двумя импульсами и сравнивает его? Прав ли я? И на последок какой порт использовать аналоговый или цыфровой?
avatar

aspo

  • 20 августа 2013, 17:13
+
0
Цифровой.
avatar

DenisUfa

  • 4 сентября 2014, 11:32
+
0
Кто бы ещё написал по шагам, как схема работает. Я вижу что это Генератор Колпитца, но не понимаю как он работает.
avatar

rgsv

  • 2 сентября 2013, 14:51
+
0
Я повторил — работает, только 22 нанофарада я заменил на 2 параллельно по 10, и сопротивление 1,2КОм составил из последовательно подключенных 1КОм и 220Ом. Ну и транзистор у меня был только bc337. Кроме пьезопищалки, параллельно на 13 пин повесил светодиод белый через 220Ом.
Всё это добро я разместил на шилде для Uno.
Катушку пока серьезную не мотал, лишь проверочную — диаметром жилы 0,3мм, кольцо 10 см, 15 витков. Больше кабеля не было.
Парогенератор Ego-Tank и канцелярский металлический нож засекает за 10 см, а вот на боковые кусачки и мелкие узкогубцы очень слабо реагирует.
Монеты 10 и 5 рублей «чует» за 5 см от катушки.
В планах прикрутить дисплей 16 на 2 и прошивку доработать.
avatar

jishi

  • 14 февраля 2014, 09:01
+
0
Собрал на 2n2222a, не работает и все(
avatar

DenisUfa

  • 4 сентября 2014, 11:28
+
0
Ребят подскажите как на Arduino nano 3.0 назначить 5 pin? Вообще где обозначен 5 pin в скетче?
avatar

DenisUfa

  • 4 сентября 2014, 18:04
+
0
а кто-нибуть считал какая индуктивности у катушки сего девайса — зная индуктивность можно пересчитать на любой размер и провод, у меня получаются разные цифры или 90 или 380 милиГенри, в зависимости от чего считать от емкости кондеров или от параметров катушки.
На симуляторе очень сильно частота бегает в зависимости от того какой транзюк, при 2n2222 и катушке 90 осцилограф выдает что то очень близкое к заявленным 160 килогерцам, но при этом катушка должны быть на 15 витков указанного провода, если я правильно перевел что она намотана в плоскости толщиной в одну жилу.
avatar

deathbel

  • 1 октября 2014, 22:11
+
0
Наматывать нужно вокруг диаметра 15 см 30 витков? То есть можно использовать пятилитровую бутылку? Второй вариант — это обмотка вокруг предмета меньшего диаметра, типа лампы из ИКЕИ. Тогда вопрос — какой должен быть диаметр, сколько витков? И нужно получается наматывать в горизонтальной плоскости?
avatar

wmakc

  • 11 марта 2015, 10:52
+
0
Помогите, пожалуйста. Собрал все по схеме, но без светодиода. После включения ардуино уно в сеть из пьезоизлучателя доносится короткий звук и все. Пропобовал сбрасывать все то же самое. Конденсаторы керамические на 12в, транзистор 2n2222 на 3в, пьезоизлучатель на 12в. Это первый мой проект, понимаю пока мало.
avatar

Novikovi

  • 28 июля 2016, 11:38
+
0
А светодиод надо подключать параллельно с пьезоизлучателем?
avatar

Novikovi

  • 28 июля 2016, 11:56
+
0
Надо вписывать какие то значение в скетч?
avatar

Novikovi

  • 28 июля 2016, 14:40
+
0
Собрали по схеме, добавили двух цветовой светодиод (немного изменили программный код)
Снял осциллограмму и вот самое интересно:
при поднесении металлического диска частот почему-то увеличивается, хотя по формуле Томсона она должна уменьшаться… Как объяснить это явление?
ссылка на видео https://www.youtube.com/watch?v=wzDUtW9iKmA
или вот здесь www.fizikaotfizika.ru/forum/6-19-1
помогите разобраться с чем связан прирост частоты
С уважением
avatar

Jurius

  • 22 марта 2017, 15:18

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.