Металлодетектор на Ардуино
- 1
- 2
- 3
- 4
- 5
- следующая ›
- последняя »
- Войдите на сайт для отправки комментариев
Пт, 29/04/2011 - 02:55
Здравствуйте.
Господа, кто-нибудь может подсказать, как на основе Ардуино собрать металлодетектор?
Здесь есть схема похожего детектора, но у меня на руках есть Ардуино, есть IDE, мне кажется, что гораздо проще использовать Ардуино, чем паять схему на 2313, паять программатор (либо колхозить программатор на Ардуине), углубляться в детали программирования микроконтроллеров и т.д.
Помогите пожалуйста, кто может.
Купить индукционный датчик или намотать самому (луч купить путевый ) прицепить его к аналоговому входу ардуино или непосредственно или если нужна т очность через опер усилитель купить маленький экранчек где ардуино будет выводить шкалу прицепить его или по 4 битной или по 8 битной схеме к ардуино ну и купить капсуль звуковой наверно что бы писщало и прицепить его на шим ногу
А какой датчик посоветуете? И насколько эффективен будет такой детектор?
Некорректно как-то было выложить прошивку для контроллера в HEX формате, её ни прочесть, ни подкорректировать под свои нужды нельзя... одним словом или юзай то что кто-то написал, или пиши своё заново с нуля. Если есть у кого-то нормальный исходный код - закиньте плиз на форум линк, буду благодарен.
Я бы сделал проще (для начала) Примерно так:
Принцип работы: измерение изменения индуктивности катушки.
Алгоритм:
Резистор нужно подбирать по индуктивности катушки.
Забыл пищалку нарисовать. Но это и необязательно.
Здравствуйте.
Господа, кто-нибудь может подсказать, как на основе Ардуино собрать металлодетектор?
Здесь есть схема похожего детектора, но у меня на руках есть Ардуино, есть IDE, мне кажется, что гораздо проще использовать Ардуино, чем паять схему на 2313, паять программатор (либо колхозить программатор на Ардуине), углубляться в детали программирования микроконтроллеров и т.д.
Тому кто придумал маркитнговый ход "для ардуины не нужно разбиратся в програмировании" - нужно в голову гвоздь вклепать. А арудину разве вам програмить не нужно будет?
Вы можете пойти двумя путями - изобретать свою схему (начало положил AlexFisher). Или взять вот эту вашу в качестве основы. Действительно - можно заюзать ардуину для прототипа. Но для "конечного результата" она будет избыточна. Можно на ней отладить скетч, а потом залить его в тиньку. Погуглите, есть версия аруины IDE и для тинек. Не на оф сайте, а энтузиастами сделаный форк. Именно для случаев когда ради одного пина целую ардуину жаба давит жертвовать.
Если возмете их схему "за базу". То блок 3 и 6 - это фактически ваша ардуина. Блок 5 - можно "пожертвовать" и выводить данные не писком, а в Serial или LCD какой-нибудь.
Но... как я понял весь смысл в том как потом обрабатывать сигнал в микроконтролле. То есть то самое "программирование". Так что либо варианта три:
>либо колхозить программатор на Ардуине
Гм... а для чего же тогда ардуина нужна как не для "колхозить"? Тем более что для этого нужно 4-ре щелчка мышкой сделать и 6-ть проводков
В ардуине есть смысл, разобраться в алгоритме, можно и не разбираться а свой написать, сложного нет ничего. Зато это быстрое прототипирование, этим всё сказано. А заливать себе в контроллер неизвестно кем созданный HEX, с неизвестным алгоритмом, вот это воистину БРЕД.
В ардуине есть смысл, разобраться в алгоритме, можно и не разбираться а свой написать, сложного нет ничего.
Я небыл бы так уверен. То есть я не хочу сказать что "не нужно" свой писать, но то что алгоритм "тривиален" - совсем не факт. И даже тривиальный алгоритм трудно написать если нет специальных знаний из предметной области.
А заливать себе в контроллер неизвестно кем созданный HEX, с неизвестным алгоритмом, вот это воистину БРЕД.
Воистину. Еще вирусы какие-нибудь занесет и пин кредитски сворует.
Я небыл бы так уверен. То есть я не хочу сказать что "не нужно" свой писать, но то что алгоритм "тривиален" - совсем не факт. И даже тривиальный алгоритм трудно написать если нет специальных знаний из предметной области.
Знания несомненно нужны
Воистину. Еще вирусы какие-нибудь занесет и пин кредитски сворует.
А это больше на параною похоже.
Сысла заливать закрытый HEX как не было так и нет, я уже почти написал всё что нужно для девайса сам, причём смогу код расширить так как мне нужно, добавить функционала и т.д. Интересно как вы собираетесь взяв HEX расширить возможности готового устройства?
А это больше на параною похоже.
Это больше похоже на сарказм.
К тому же если у вас параноя это еще не значит что за вами никто не следит :)
Сысла заливать закрытый HEX как не было так и нет, я уже почти написал всё что нужно для девайса сам, причём смогу код расширить так как мне нужно, добавить функционала и т.д.
Никто не спорит что "знать как устроено" лучше чем "не знать". Но это же не значит что это единственный путь. У кого-то может и не хватит знаний что-бы осилить создание прошивки самому.
Но даже и в этом варианте "залить закрытый HEX" имеет вполне осязаемый плюс. Использовать его в качестве "референстной прошивки". Вот собрали вы схему, залили ЗАВЕДОМО рабочий HEX. Убедились что железо работает правильно. И уже на проверенном железе начинаете делать свою прошивку. Имя возможность сравнить лучше или хуже она рабоатет по сравнению с чьим-то "черным ящиком".
Интересно как вы собираетесь взяв HEX расширить возможности готового устройства?
Удовлетворю ваше любопыство - никак. Я вообще не собираюсь собирать металодетектор. Его хотел собрать OneHalf.
Но даже если бы и собирался - ситуация когда у меня нет планов "расширять", а хочу просто "собрать и пользоватся" - вполне реальная. Или просто нет знаний что-бы написать самому. В этих раскладах "просто работающий HEX" - меня вполне устроит.
Но, естественно, наличие исходников позволило-бы чувствовать себя гораздо комфортней. Поэтому если вы поделитесь "уже почти написал всё что нужно для девайса сам" думаю топикстартер и его последователи будут вам благодарны.
Могу поделиться когда закончу, мне не жалко
>>купить индукционный датчик или намотать самому (луч купить путевый ) прицепить его к аналоговому входу ардуино или непосредственно или если нужна т очность через опер усилитель купить маленький экранчек где ардуино будет выводить шкалу прицепить его или по 4 битной или по 8 битной схеме к ардуино ну и купить капсуль звуковой наверно что бы писщало и прицепить его на шим ногу <<
Вы не совсем понимаете смысл работы металлдетектора. Все не так просто. В данном случае нужно посылать определенный сигнал на катушку , а уже потом читать отклик (если он есть). Здесь никак не обойтись без высоковольтного преобразователя (на катушку нужно подавать не менее 400в) и т.д.
Год назад я задавал аналогичный вопрос , пытался экспериментировать , но безрезультатно (занимался этим без особого фанатизма).
Вы не совсем понимаете смысл работы металлдетектора. Все не так просто. В данном случае нужно посылать определенный сигнал на катушку , а уже потом читать отклик (если он есть). Здесь никак не обойтись без высоковольтного преобразователя (на катушку нужно подавать не менее 400в) и т.д.
Ну... есть разные принципы. Радиолокационный незачем применять в простом устройстве. Обычно (в простых конструкциях) оценивают изменение индуктивности контура при приближении к металлическому предмету по изменению частоты или прямым измерением (я вариант схемы предлагал именно для прямого измерения). Изменение частоты обычно измеряют по биениям с образцовой частотой (на слух).
А что, больше тема никому не интересна? Ничем не закончилась?
А что, больше тема никому не интересна? Ничем не закончилась?
В первый раз, что-ли? Чем более "комплексный девайс" человек начинает делать тем меньша шансов что в итоге доведет.
Особенно чайники, которые начинают "с мега комбайта" и первым постом на форуме идет список железа на две страницы которые они купили/собираются купить (или просят посоветовать).
Металлодетектор на принципе частотометра (FM) http://cxem.net/metal/Part6/6-12.php обладает двумя большими минусам - влияние земли (минерализации) вызывает ложные срабатывания. На морском пляже будут сплошные глюки. Маленькая чувствительность.
Как игрушку - использовать можно, но не более.
Для создания рабочего прототипа предлагаю использовать Импульсный металлодетектор (PI) http://www.masterkit.ru/info/magshow.php?num=94 В этой статье подробно описан алгоритм функционирования микроконтроллера и работа схемы.
Преимущество аналоговой части этой схемы - в большинстве случаев не требует настройки и работает сразу, очень простая катушка - 28 витков, провод 0.4-0.7 пэв, общее сопротивление 1.8 Ом +\- 10%
От ARDUINO нам потребуется 3 пина (Q0/Q1/Q2/) для управления аналоговой частью, 1 пин - АЦП, для измерения полезного сигнала от цели на конденсаторе С12, 1 пин - ШИМ, для генерации звука.
Остальные выводы можно задействовать для вывода информации на LCD и кнопки.
В первый раз, что-ли? Чем более "комплексный девайс" человек начинает делать тем меньша шансов что в итоге доведет.
Особенно чайники, которые начинают "с мега комбайта" и первым постом на форуме идет список железа на две страницы которые они купили/собираются купить (или просят посоветовать).
Я так понимаю - это кирпич в мой огород?
Так это не по адресу! Мне не комбайН нужен был, а задача стояла как можно проще обзавестись детектором из железяк, которые у меня есть на руках.
В итоге даже не начал. Просто потому что обзавёлся фирменным по-дешевке.
Схема предложенная AlexFisher это абсолютно бездарная схема...
Катушка для металлодетектора имеет индуктивность не более 50 мкГн. А это значит что для данной цепи тау будет менне 1мкс. Значит у вас тактов микропроцессора не хватит чтобы выполнить программу, не то что АЦПировать....Данный метод работал бы если у вас однокристалка работала на частотах - ГГц, хотя ацпировать на таких частотах в принципе не возможно......так что это пока тупиковая ветвь....
Уважаемые изучайте математику, теорию регулирования и т.д нефиг людям советовать что не знаете....
Схема эта взята из примера по измерению емкости и индуктивности. Емкость в микрофарадах таким образом мерять можно, а вот индуктивность в мигрогенри - нет....схема и пример там не рабочий, при любой индуктивности будет одно число....таймер не будет успевать считать.....
Индуктивность катушек в вашем случае можно мерить только двумя способами:
1. собрать генератор на LC и мерять его частоту - есть минус. долгое измерение частоты, низкое время реакции. Для вашего случая подойдет (кстати, вторая схема от sevzirfo работает именно по такому принципу и является рабочей ).
2. Сделать LC контур и с генератора подовать высокую частоту. Мерять в этом случае добротность контура и реактивное сопротивление катушки. Отсюда легко вычислить L. Но, в вашем случае не столько важна индуктивность, как ее изменнение при внесение металличекого тела в катушку. Если изменение индуктивности начинается от 3-5% это хорошо - можно сделать такое простое решение. Если изменение это доли процента, то вы несможите вычлинить результат измерения от статистической погрешности.
3. Вариант с электромагнитными датчиками для Вас не покатит. т.к все они работают до 6см, и как правило выдают логические 1 и 0 (степень приблежения, размер не покажут). т.к расчитаны на установки для автоматизацит процессов.
Вот я вам все по полкам разложил, если надо могу все математические выкладки сделать.
PS: Вы правильно сделали что купили фирменный. т.к змерение L не тривальная задача для микроконтроллеров. А детекция размеров и типов обнаруженных металлов (измерение приращений) это ноу хау многох фирм которые делают металл детекторы. и сколхозить собственными силами полный аналог не возможно, можно сделать только полурабочую радиолюбительскую поделку верещащую на любой кусок металла.
В первый раз, что-ли? Чем более "комплексный девайс" человек начинает делать тем меньша шансов что в итоге доведет.
Особенно чайники, которые начинают "с мега комбайта" и первым постом на форуме идет список железа на две страницы которые они купили/собираются купить (или просят посоветовать).
Я так понимаю - это кирпич в мой огород?
Да нет, вообщем-то. Просто наблюдение. Даже не персонализированное. Кто начинает с "помигать диодом", "научится писать/читать serial" и т.п. - тот в итоге делает и какие-то полезные девайсы. А кто хочет проскочить "скучные азы" и сделать сразу относительно сложный девайс поверив маркетингу "не нужно знать программирование для ардуины" - шансы что-то сделать не велики (хотя нет правил из исключений).
Так это не по адресу! Мне не комбайН нужен был, а задача стояла как можно проще обзавестись детектором из железяк, которые у меня есть на руках.
Если до этого контроллеры не программили то это именно комбайН. А про то что возможно возможно у вас задача "получить как можно проще что-бы пользоваться" - если заметите я рассматривал как вполне возможную.
В итоге даже не начал. Просто потому что обзавёлся фирменным по-дешевке.
Что и требовалось доказать :) В данном случае тенденция подтвердилась :)
Это ни в коем случае не означает что я хочу сказать про вас что-то плохое. Вы решили свою поставленную задачу - и это главное. "Простучали" возможные пути решения, увидели что "проще купить чем разбиратся" (почти наверняка так дешевле). Абсолютно нормальный и логичный подход. Кидать камни в огород за то что "изменили ардуине" - никто не будет ;)
Кидать камни в огород за то что "изменили ардуине" - никто не будет ;)
:) Хочу изменить ардуине с STM32F3discovery (уже в ящике лежит), но пока не могу - некогда :(
Соглашусь, что arduino фигня редкостная. Но эта фигня имеет кучу поклоников по всему миру, а как следствие - кучу полезных библиотек. Снимающих массу рутиных задач....
STM32F3discovery - не лучший и не хучший вариант, так попробывать.
Я так же пробывал комплект АВР Батерфляй - ну ничего, но не цепляет..... для меня более важны устройства ввода вывода, и каналы передачи данных чем магетометометры и компасы.
Наткнулся случайно на металлоискатель:
http://magelab.ru/index.php/retsepty/4-ippulsnyj-metallodetektor-na-arduino-izobretaem-velosiped
В основе схема из 15 сообщения. Решил повторить.
Катушку намотал диаметром 19см. Провода взял из витой пары, было несколько кусков. Распутывать не стал (муторно) так
по 2 провода в паре и мотал. В итоге 28 витков.
Печатная плата.
Взял за основу плату от "Tracker-Pi", перерисовал под ардуино про мини. Получилось вот так:
Как работает не очень понравилось. Хотя автор написал, что был удивлён чувствительностью.
Возможно я что-то неправильно настроил, или накосячил где с деталями, но не суть. Собирал интереса ради.
Вышло 17 см на десятирублёвую монету (та что на фото с катушкой) это дома "по воздуху"
По деталям: полевой транзистор IRF610 (такой был в наличии), конденсаторы вместо 470Пф поставил на 510Пф (думаю не критично), резисторы на катушке по 330 Ом.
Скетч:
001
#include <LiquidCrystal.h>
002
003
//(c) Tsaryk Aliaksei - rst10h - 2014
004
005
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
006
#define FASTADC 1
007
008
// defines for setting and clearing register bits
009
#ifndef cbi
010
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
011
#endif
012
#ifndef sbi
013
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
014
#endif
015
016
//для пищалки
017
//#define R3_PIN A0
018
#define SPEAKER_PIN 11
019
#define T2_WGM 0b010
020
#define T2_COMA 0b01
021
#define T2_CS 0b111
022
023
// параметры подстройки
024
int
pMID=0;
025
int
pMAX=0;
026
int
pMIN=0;
027
int
Sensv = 0;
//(0 - макс чувствительность, минимум - около сотни наверное.)
028
int
LastData[] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
029
int
SetupData[200];
030
void
delayms(
int
ms) {
031
for
(
int
i=0;i<ms;i++) delayMicroseconds(1000);
032
}
033
void
setup
() {
034
//set port/pin mode
035
//DDRD = 0xFF;//all outputs
036
//DDRC = 0x0F;//all inputs
037
//DDRD = 0xFF;//all outputs
038
//DDRC = B11111110;
039
//TIMER INTERRUPT SETUP
040
041
DDRD = DDRD | B00001110;
042
PORTD = B00001110;
043
044
//PORTD = 0;
045
046
lcd.begin(16,2);
047
lcd.setCursor(0,0);
048
lcd.print(
"START "
);
049
050
#if FASTADC
051
// set prescale to 16
052
sbi(ADCSRA,ADPS2) ;
053
cbi(ADCSRA,ADPS1) ;
054
cbi(ADCSRA,ADPS0) ;
055
#endif
056
057
//для динамика
058
059
TCCR2A = (T2_COMA << 6) | (T2_WGM & 0b011);
060
TCCR2B = ((T2_WGM & 0b100) << 1) | T2_CS;
061
OCR2A = 18;
062
// pinMode(R3_PIN, INPUT);
063
// pinMode(SPEAKER_PIN, INPUT);
064
// pinMode(SPEAKER_PIN, OUTPUT);
065
noInterrupts();
066
beep(100);
067
delayms(100);
068
beep(100);
069
delayms(100);
070
beep(100);
071
delayms(1000);
072
//посылаем пару сотен импульсов в холостую просто так
073
//
074
lcd.clear();
075
lcd.setCursor(0,0);
076
lcd.print(
"SETUP... "
);
077
//while (1)
078
for
(
int
i=0;i<200;i++) {
079
int
t = SendPulse();
080
delayMicroseconds(6500);
081
}
082
//посылаем 200 импульсов для настройки
083
for
(
int
i=0;i<200;i++) {
084
int
t = SendPulse();
085
SetupData[i]=t;
086
delayMicroseconds(6500);
087
}
088
int
tmin=1024;
089
int
tmax=0;
090
unsigned
long
tnak=0;
091
for
(
int
i=0;i<200;i++) {
092
tnak=tnak+SetupData[i];
093
if
(SetupData[i]>tmax) tmax = SetupData[i];
094
if
(SetupData[i]<tmin) tmin = SetupData[i];
095
}
096
pMID = tnak/200;
097
pMIN = tmin;
098
pMAX = tmax;
099
lcd.clear();
100
lcd.setCursor(0,1);
101
lcd.print(pMIN);
102
lcd.setCursor(5,1);
103
lcd.print(pMID);
104
lcd.setCursor(10,1);
105
lcd.print(pMAX);
106
/* //for test
107
for (int i=0;i<200;i++){
108
lcd.setCursor(0,0);
109
lcd.print(SetupData[i]);
110
delayms(1000);
111
lcd.setCursor(0,0);
112
lcd.print(" ");
113
}*/
114
beep(500);
115
}
116
//Функция опроса кнопок модуля дисплея 1602 с кнопками.
117
//кнопки подключены к аналоговому порту (0) ардуино, если их подключаете как то иначе - функцию необходимо переделать
118
int
getKey() {
119
int
value = analogRead(0);
120
if
(value>1000)
return
0;
//ничего не нажато
121
if
(value>580)
return
1;
//SELECT //Автонастройка.
122
if
(value>380)
return
2;
//ЛЕВО
123
if
(value>200)
return
3;
//ВНИЗ //Уменьшить порог (увеличивается чувствительность)
124
if
(value>80)
return
4;
//ВВЕРХ //Увеличить порог (снижается чувствительность)
125
if
(value<50)
return
5;
//ВПРАВО
126
}
127
128
129
void
beepOn() {
130
pinMode(SPEAKER_PIN, OUTPUT);
131
}
132
void
beepOff() {
133
pinMode(SPEAKER_PIN, INPUT);
134
}
135
136
void
beep(
int
msec) {
137
beepOn();
138
delayms(msec);
139
beepOff();
140
}
141
142
int
lmax = 10;
143
int
mmax = 80;
144
int
mmaxDefault = 80;
145
int
lmaxDefault = 10;
146
int
LL=lmax;
//Длина звук. сигнала, циклов
147
int
MM=mmax;
//Длина тишины, циклов.
148
149
int
vo = 0;
150
int
vi = 0;
151
int
vod = 0;
152
int
vid = 0;
153
unsigned
long
v1 = 0;
154
int
SendPulse() {
155
//--------------------------
156
//Начало импульса
157
//Мощный ключ открыт, усилитель выключен.
158
PORTD = B00000010;
159
//-------------------------
160
//Ожидаем 100мкс:
161
delayMicroseconds(100);
162
//Закрываем ключ:
163
PORTD = B00001010;
164
//Открываем Q1:
165
delayMicroseconds(12);
//Защитный интервал
166
PORTD = B00001110;
167
delayMicroseconds(7);
168
PORTD = B00001100;
169
delayMicroseconds(100);
170
PORTD = B00001110;
171
int
r = analogRead(1);
172
return
r;
173
}
174
int
tControl = 0;
//может изменяться от 0 до 15
175
int
maxControl = 10;
//кол-во измерений для расчета - чем больше количество измерений, тем меньше влияние шума.
176
//При тестировании в доме я выставлял 12-15 измерений для получения стабильной работы.
177
//В поле достаточно двух
178
179
int
getMidControl() {
180
int
gm = 0;
181
for
(
int
i=0;i<maxControl;i++) {
182
gm = gm+LastData[i];
183
}
184
int
res = gm/maxControl;
185
return
res;
186
}
187
188
char
Str2[11] = {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
'\0'
};
189
int
V;
190
void
(* resetFunc) (
void
) = 0;
//сброс
191
int
setupcount = 150;
192
void
loop
() {
193
int
k =0;
194
//tone(SPEAKER_PIN,400);
195
noInterrupts();
196
//lcd.setCursor(0,0);
197
//lcd.print(t);
198
199
//Бит 3 = 1, J3
200
//Бит 2 = 1 J4
201
//Бит 1 = 1, J9
202
PORTD = B00001110;
203
delayms(2000);
204
int
ssl=0;
205
lcd.clear();
206
lcd.setCursor(0,0);
207
lcd.print(
" "
);
208
lcd.setCursor(12,1);
209
lcd.print(
" "
);
210
lcd.setCursor(12,1);
211
lcd.print(Sensv);
212
int
a = 0;
213
int
val;
214
LL=9;
215
while
(1) {
216
k = getKey();
217
if
(tControl>=maxControl) tControl=0;
218
int
t = SendPulse();
219
LastData[tControl] = t;
220
int
s = getMidControl();
221
tControl++;
222
//для тестирования
223
//pMID = 781;
224
//s = 520;
225
//==================
226
//==================================
227
// ОЗВУЧКА ЦЕЛИ V
228
//==================================
229
if
(LL<lmax && LL>0) LL--;
230
if
(LL==0 && MM>0) MM--;
231
if
(MM==0) {
232
LL = lmax;
233
MM = mmax;
234
}
235
if
(setupcount>0) {
236
if
(s<=pMID) pMID = pMID-1;
237
setupcount--;
238
}
239
int
signal=(pMID-Sensv)-s;
//для средних значений
240
//int signal=(pMIN-Sensv)-s; //для минимальных
241
if
(signal>0 && LL==lmax) {
242
beepOn();
243
//if (signal<50) slevel = 2-
244
int
slevel = 200-signal;
//цифра влияет на чувствительность пищалки. 400- редко пикает, затем часто до писка. 50 - быстро, затем писк.
245
if
(slevel<5) slevel = 5;
246
mmax = slevel/5;
247
MM = mmax;
248
LL--;
249
}
250
if
(signal<0 && LL==lmax) {
251
mmax = mmaxDefault;
252
MM = mmax;
253
}
254
int
ssk = signal;
255
signal = signal/5;
256
if
(signal<0) signal = 0;
257
for
(
int
i=0;i<10;i++) {
258
if
(i<signal) Str2[i] = 0xff;
259
else
Str2[i] =
' '
;
260
}
261
if
(LL==0) beepOff();
262
//==================================
263
//==================================
264
//if (a==0) val = s;
265
lcd.setCursor(0,1);
266
lcd.print(Str2);
267
a++;
268
if
(k==4) {
269
Sensv++;
270
lcd.setCursor(12,1);
271
lcd.print(
" "
);
272
lcd.setCursor(12,1);
273
lcd.print(Sensv);
274
beep(100);
275
delayms(100);
276
}
277
if
(k==3) {
278
Sensv--;
279
lcd.setCursor(12,1);
280
lcd.print(
" "
);
281
lcd.setCursor(12,1);
282
lcd.print(Sensv);
283
beep(100);
284
delayms(100);
285
}
286
if
(k==1) {
287
288
pMID = t;
289
Sensv = 0;
290
setupcount = 150;
291
lcd.setCursor(12,1);
292
lcd.print(
" "
);
293
lcd.setCursor(12,1);
294
lcd.print(Sensv);
295
beep(200);
296
delayms(500);
297
298
//resetFunc();
299
};
300
delayMicroseconds(1000);
301
302
lcd.setCursor(0,0);
303
lcd.print(vi);
304
lcd.print(
'.'
);
305
lcd.print(vid);
306
lcd.print(
"V "
);
307
lcd.print(ssl);
308
lcd.print(
' '
);
309
if
(a>200) {
310
a = 0;
311
//1 раз за 200 циклов измеряем напряжение аккумулятора и выводим на экран
312
V = analogRead(4);
313
//V = V-73; //калибровка во вольтметру
314
unsigned
long
vt = V*125l;
315
vt = vt/64l-140;
316
vi = vt/100;
317
vid = vt/10%10;
318
ssl = ssk/10;
319
//vi = v1*4;
320
}
321
//lcd.print(vid);
322
323
//lcd.print(vi);
324
}
325
}
Может дело как раз в том, что пара "витая". Я так понимаю, это как-то уменьшает наводки, т.е чувствительность.
Возможно вы правы. Найду проволоку и попробую намотать обычную катушку.
Может дело как раз в том, что пара "витая". Я так понимаю, это как-то уменьшает наводки, т.е чувствительность.
Витая пара уменьшает внешние наводки ( синфазую помеху) только тогда
когда один и тот-же ток идёт по одному её проводу и возвращается по другому.
В одном проводе помеха прибавляется к сигналу, а в другом вычитается из него.
Сумма помехи равно нулю.
Симметричная линия называется.
Тогда получается, что смысла мотать другую катушку одним проводом,
с таким же диаметром и с таким же количеством витков нет. Будет работать так же.
А вот и мой проект импульсного металлодетектора на Arduino foxyPI v2, причем используется не капризный АЦП Arduino, а встроенный компаратор.

Видео испытаний - https://youtu.be/ikJbqUCbyvw
Подробное описание (будет дополняться) - http://acdc.foxylab.com/node/47
Схема:
Для снижения влияния помех производится усреднение анализируемой длительности RX-импульса катушки по алгоритму "скользящего среднего".
Реализована как автоматическая, так и ручная балансировка.
Тональность звукового сигнала изменяется при приближении катушки к мишени (также сделана и графическая индикация для различных градаций длительности RX-импульса).
Для настройки длительности TX-импульсов, интервалов между ними, времени задержки и ширины окна "скользящего среднего" используется меню, при этом реализовано сохранение настроек в EEPROM.
Возможно, окажется полезным. Иллюстрация к вопросу о влиянии напряжения пробоя MOSFET-а на скорость затухания тока в катушке (зависимость получена на модели МД в LTspice):

dt - интервал времени, за который ток уменьшается в e^2 раз
Ubrk - напряжение лавинного пробоя транзистора
интересный проект
а что за vr1? линейный стабилизатор? на какое напряжение если на него 3В подается
DEL
интересный проект
а что за vr1? линейный стабилизатор? на какое напряжение если на него 3В подается
МД уже почти построен (мой второй проект, поэтому получился аккуратнее, чем первый - "Пират").
Нет, это импульсный преобразователь, маленькая платка, работает, начиная с 1 В - на выходе 5 В (вот она на ebay http://www.ebay.com/itm/DC-DC-Boost-Converter-Step-Up-Module-1-5V-to-5V-500mA-Power-Module-New-F5-/291549001381?hash=item43e1acb6a5:g:SxEAAOSwzrxUs-SZ)
может значок поменять. выглядит как линейный стабилизатор, а он только понижать может, поэтому и смутило
значок поменять
это верно
А не логичней ли питать и контроллер от 12в батареи через dc/dc в 5В?
Там "земли" разные - "минус" одной батареи - это "плюс" другой. Иначе необходимо убирать постоянную составляющую анализируемого сигнала. Помех опять же меньше (цепи передатчика и приемника изолированы), надежность выше, так как потребление от трехвольтовой батареи небольшое и до 1 В ей долго разряжаться. А если 12-вольтовая просядет (в разумных пределах), то это только на "чуйку" повлияет.
...............минус" одной батареи - это "плюс" другой........
А сделать минус 3 из того что есть( из +12) ?
+12
GND
-3
Так они так и включены :-) Почти +3 В -3В = + 12 В -12 В
Еще можно p-канальный мосфет поставить, но проблематично найти его на 400 - 500 Вольт за малую денежку. Но и это не решит всех проблем. Всё из-за того, что интересующее нас напряжение на катушке направлено против полярности питания - поэтому или так, или еше делают преобразователь, чтобы ОУ двуполярным напряжением питать, чтобы он отрицательный сигнал усиливал. Но мне с двумя батареями интереснее.
А ток-то какой нужен?
http://www.ebay.com/sch/i.html?_from=R40&_sacat=0&_nkw=mosfet+600v&rt=nc&LH_BIN=1
2 шт 10 А 600 В
http://www.ebay.com/itm/2PCS-FQPF12N60C-FQPF-12N60C-12N60-600V-N-Channel-MOSFET-New-TO-220F-/400985292435?hash=item5d5c95fe93:g:SuwAAOSwF1dUS2Dq
5 штук 7 А 800 В
http://www.ebay.com/itm/5pcs-HFP7N80-7N80-FQP7N80-SeniHow-7A-800V-N-Chan...
Эти я знаю, конечно. Но нужен P-CHANNEL.
Текущее состояние проекта:

Эти я знаю, конечно. Но нужен P-CHANNEL.
IRF740 N -канал
Эти я знаю, конечно. Но нужен P-CHANNEL.
IRF740 N -канал
Для модификации схемы P-канальный нужен.
Извиняюсь понял о чем речь.
А разводка печатки есть ?
Нет, "old school", суровый навесной монтаж ;-)
Для одного экземпляра нет смысла делать печатную плату, да и надежность повыше, как ни странно.
И возможность модификации опять же, в разумных пределах.
Всё вышесказанное сугубо субъективно, переубеждать меня бесполезно ;-)
следующий можно красиво на печатной плате с корпусом подходящим. в чип и дипе видел много хороших корпусов
Корпус там ответственный, эта коробушка IP55, хотя я и изъял из нее уплотнитель для игрищ котов.
коробку я знаю, но такому устройству хочется что то вроде этого
http://www.chipdip.ru/product/g1188g/
ручку целиковую из водопроводной белой пластиковой тубы. согнуть в нужных мес помощью горячего воздуха чтобы получилась эргономичная конструкция. как гнуть инфы достаточно
ну это мне так кажется
Красивая коробка.
А насчет штанги - я специально сделал укороченный вариант - в свете изменений в законодательстве РБ стала весьма недружественной страной к ЛПП.
А так можно сеточку на катушку, блоки сбросить - и ни разу это не штанга, это научный "струмент" - сачок, а сам я "энтомолоджист и следую на Суматру для ловли бабочек" )))))))))))))
все это хорошо, есть идея получше. у нас в городе один взял погонять у знакомого, прошелся по местным пляжам. за день нашли цепок на 70 штук деревянных( предложили в самом первом ломбарде). я к чему- берете а аренду на пару суток, шаримся по пляжам, и покупаем хороший аппарат( паяльник не пригодился)
Так МД - он для морального удовольствия, а не для материального.