Самый дешёвый металоискатель на 2n2222 и ардуино + SMD

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

А теперь к делу.


Предлагаю вам собрать простейший металоискатель на базе ардуины (или мк АтМега8, АтМега328(Р) )
Вот вид моего пробного устройства. Корпус купил на рынке, трубу тоже (обычная для воды без алюминиевой фольги в середине), катушку мотали давно, потому не помню сколько витков и какой провод(

Самый дешёвый металоискатель на 2n2222 и ардуино + SMD Урок, Technobrother, Канифоль, Радиотехника, Металлоискатель, Arduino, Длиннопост

Вид корпуса устройства сверху:
Светодиод - мигает в такт колебаниям контура катушки
Дырка посередине с кнопкой - ресет ардуины
Дырка справа - пьезопищалка

Самый дешёвый металоискатель на 2n2222 и ардуино + SMD Урок, Technobrother, Канифоль, Радиотехника, Металлоискатель, Arduino, Длиннопост

Кнопка сбоку - при нажатии подает сигнал NULL SW который обнуляет колебания контура с осциллятором и "записывает" эталон. Нажимать нужно максимально далеко от метала.

Самый дешёвый металоискатель на 2n2222 и ардуино + SMD Урок, Technobrother, Канифоль, Радиотехника, Металлоискатель, Arduino, Длиннопост

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

Самый дешёвый металоискатель на 2n2222 и ардуино + SMD Урок, Technobrother, Канифоль, Радиотехника, Металлоискатель, Arduino, Длиннопост

Потроха устройства (выглядит пока не очень эстетично так как собиралось на скорую руку): 
Сверху на фото - разьем RXD и TXD ардуины
Слева на фото - пьезо пищалка
Посередине на фото - Arduino Pro Mini 5v (AtMega 328P) 16mHz
Справа на фото светодиод

Самый дешёвый металоискатель на 2n2222 и ардуино + SMD Урок, Technobrother, Канифоль, Радиотехника, Металлоискатель, Arduino, Длиннопост

Плата осциллятора, я залил термоклеем (силикон) и да, я использовал КТ315, что оказалось не самым лучшим решением. Резисторы смдшные. Синие провода идут на катушку индуктивности

Самый дешёвый металоискатель на 2n2222 и ардуино + SMD Урок, Technobrother, Канифоль, Радиотехника, Металлоискатель, Arduino, Длиннопост

Для простоты замены осциллятора я использовал PLS и BLS

Самый дешёвый металоискатель на 2n2222 и ардуино + SMD Урок, Technobrother, Канифоль, Радиотехника, Металлоискатель, Arduino, Длиннопост

Схема осциллятора
Q1 - транзистор 2n2222 или аналог
5vcc - на плату ардуины 5v
pin5 - на 5 пин ардуины
GND - земля ардуины

Кнопка, Пьезо, светодиод у меня выведены отдельно, поэтому в схематику и плату я их не включал. А просто припаял проводами на плату Ардуины
Кнопка - GND и Pin12
Пьезо и светодиод - GND и Pin13

Самый дешёвый металоискатель на 2n2222 и ардуино + SMD Урок, Technobrother, Канифоль, Радиотехника, Металлоискатель, Arduino, Длиннопост

Разводка платы (Я использую программу DipTrace)
R1,R2,R3 - перемычки

Самый дешёвый металоискатель на 2n2222 и ардуино + SMD Урок, Technobrother, Канифоль, Радиотехника, Металлоискатель, Arduino, Длиннопост

Скачать плату (DipTrace) можно отсюда - https://vk.com/doc319844456_437087066?hash=d6ba3c62262836f11...

Самый дешёвый металоискатель на 2n2222 и ардуино + SMD Урок, Technobrother, Канифоль, Радиотехника, Металлоискатель, Arduino, Длиннопост

Прошивка для ардуины:

// Подсоедините катушку металодетектора (20-200kHz) на pin 5


// Подсоедините пьезо динамик на pin 13 и GND


// Подсоедините кнопку сброса на pin 12 и GND



// ПОМНИТЕ НАЖИМАЙТЕ КНОПКУ СБРОСА ТОЛЬКО ПОСЛЕ ПОДАЧИ ПИТАНИЯ!!



#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=1; //-time between ints


unsigned char tflag=0; //-Measurement ready flag



float SENSITIVITY= 900; //-Guess what (МОЖНО МЕНЯТЬ ДО 1000)



//-Generate interrupt every 1000 oscillations of the search coil


SIGNAL(TIMER1_COMPA_vect)


{


OCR1A+=900; //МОЖНО МЕНЯТЬ ДО 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);


}


}

20
Автор поста оценил этот комментарий
Иллюстрация к комментарию
8
Автор поста оценил этот комментарий

Больше проектов для ардуино. Интересных и разных! 

раскрыть ветку
13
Автор поста оценил этот комментарий

Ура, опять technobrazzers!

7
DELETED
Автор поста оценил этот комментарий

Троллейбус из буханки... 

Такое устройство собирается без ардуины.

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