Импульсный металлодетектор на Arduino

Тема в разделе "Глядите, что я сделал", создана пользователем FoxyLab, 4 янв 2016.

  1. FoxyLab

    FoxyLab Гик

    Случайно смог воспроизвести такое поведение МД, оборвав провод силового ("12 В") питания. Скорее всего, происходит переполнение или что-то подобное с интегратором, буду разбираться. В прежних версиях этого не случалось из-за другого алгоритма обработки. Интересно, что если в этом случае просто отключить выход ОУ от Arduino, то зависания не происходит.
     
  2. FoxyLab

    FoxyLab Гик

    Перерисовал схему FoxyPI v3 в KiCad (кликабельна):
    [​IMG]
     
  3. parovoZZ

    parovoZZ Гуру

    А оптрон для чего? Он же съедает хорошую часть тока.
     
  4. FoxyLab

    FoxyLab Гик

    В похожих МД есть два варианта - либо одна батарея и немного IMHO магии с уровнями и подключением ОУ (например, как в Пирате), либо две батареи и подключение ОУ IMHO без затей (как близкий пример можно представить вот это - https://www.lammertbies.nl/electronics/PI_metal_detector.html, или вот вариант с питаниями +5 В/-12 В и смещением уровней напряжения для управления мосфетом - http://www.silego.com/uploads/Products/product_398/details/AN-1080 GreenPAK4 Pulse Induction metal detector-security wand.pdf, видел еще более трушный пример, где именно две батареи, но сейчас уже врядли найду), но возникает проблема с полярностями (плюс одной является минусом другой), одним из вариантов решения которой является развязка посредством оптрона.
    Выбор второго варианта - просто субъективное предпочтение. И с потреблением тока - тоже верное замечание.
    P.S. Нелишнее замечание - ко всем почитателям Пирата/STM32 etc - о преимуществах Пирата/STM32 etc проинформирован, холивары не люблю и не участвую :)
     
    Последнее редактирование: 17 сен 2019
  5. РоманТ

    РоманТ Нуб

    Дошли руки наконец-таки. Поменял ардуинку. Залил тест. При напряжении питания 16,26В получил на gate 3,56В, на drain 3,3В не нажимая кнопки и без катушки. Что показывает, что полевик приоткрыт. При подключении катушки начинает дико греться. По даташиту у IRF840 напряжение открытия 2-4В. Поставил R9 вместо 1ком, 2.2ком, напряжение стало 1,6В (не знаю насколько это правильно, что именно R9).
    Теперь полевик на тестовой прошивке греться перестал.
    Залил рабочую 3.3. При включении с подключенной катушкой полевик греется. По всей видимости, каким-то образом, при старте нужно жестко указывать уровень на D8. Дальше не стал пробовать, дабы не спалить опять.
    При отключенной катушке происходит та же песня - дисплей гаснет.
    Убрал высокое питание, т.е. оставил только 5В, прошивка загрузилась....
     
  6. parovoZZ

    parovoZZ Гуру

    Так а почему бы не управлять катушкой полумостом?
     
  7. FoxyLab

    FoxyLab Гик

    Спасибо за подробный отчет!
    А на тестовой прошивке кривая сигнала на дисплее после нажатия кнопки отображалась?
     
  8. РоманТ

    РоманТ Нуб

    Да, но не такая как на скрине. Во-первых слева вертикальная черта, во-вторых длиннее верхняя полка и спад идет не до конца экрана. Хотел ещё сфоткать, но забыл(
    При внесении железа в контур график не меняется особо, но у меня бук рядом, телек и куча железа валяется)) так что не проверял нормально
     
  9. FoxyLab

    FoxyLab Гик

    Интересно...
    Например, вот такой полумост без конденсаторов:
    [​IMG]
    Верхний MOSFET в некотором смысле даже мешает.
    Полный мост в этом случае позволил бы получать биполярные импульсы, хотя, конечно, ценой усложнения конструкции.
     
  10. parovoZZ

    parovoZZ Гуру

    Я понял) Я что-то подумал, что здесь резонанс используется, а на самом деле по скорости нарастание тока и на шунте преобразовываем его в напряжение. Так? Тогда я бы это делал на отдельном резистивном шунте, а усиливал на БТ по схеме ОБ - самая широкополосная из возможных (не знаю, какая здесь индуктивность и как быстро растет ток). По крайней мере, ушёл бы от медленного и жручего оптрона и положительного общего.
     
  11. FoxyLab

    FoxyLab Гик

    Мэйнстримом является анализ изменения напряжения на катушке после обрыва цепи (отключения мосфета). Демпфирующий резистор подбирается под нужный режим, обычно чтобы переходный процесс был апериодическим. Хотя есть МД, в которых кроме того анализируется и напряжение на катушке (фактически производная тока) при нарастании тока - может помочь в дискриминации (различать вид металла мишени).
    Индуктивность поисковой катушки обычно сотни микрогенри.
     
  12. FoxyLab

    FoxyLab Гик

    Я поищу модель драйвера для LTspice, собирал ее когда-то (или соберу заново), можно будет поиграться с разными напряжениями питания. Драйвер, конечно, своеобразный, но я пробовал различные интегральные драйвера - как ни странно, это оказался самым стабильным.
     
  13. РоманТ

    РоманТ Нуб

    Рабочая прошивка. Катушка не подключена.
    IMG_20190918_170925.jpg
    [​IMG]
    Рабочая прошивка. Катушка подключена.
    IMG_20190918_171005.jpg
    Рабочая прошивка. Катушка подключена. В контуре металл.
    IMG_20190918_170947.jpg
    Тестовая прошивка. Катушка подключена.
    IMG_20190918_172419.jpg
    Тестовая прошивка. Катушка подключена. Металл в центре контура.
    IMG_20190918_173143.jpg
    Тестовая прошивка. Катушка подключена. Металл лежит на краю катушки. (Не влазит:D)
    IMG_20190918_172355.jpg

    При подаче питания выходы ардуинки находятся в неопределенном состоянии. В процессе загрузки, 1-2 секунды на D8 образуется высокий уровень, отчего открывается полевик и греется. Это не есть хорошо. Нужно или как-то подтянуть этот выход на минус или программно как-то определить его в низкий уровень. Кода актуального не видел, но возможно как-то так
    Код (C++):
    void setup()   {
      Serial.begin(9600);
      pinMode(genPin, OUTPUT);//gen pin -> out
      digitalWrite(genPin,LOW);
    Другой вариант - реализовать задержку подачи высокого напряжения на пару секунд или же использовать еще один пин арудуинки для управлением подачи высокого.
    Самый простой, разделить выключатели питания и на счет два после включения 5В включать высокое)))

    Жду рабочей прошивки с исправлением потухания дисплея.
    [​IMG]
     
  14. FoxyLab

    FoxyLab Гик

    Исправленная прошивка в архиве во вложении (вернулась потерявшаяся строчка
    PORTB &= ~0b00000001; //0) - устранит прогревание MOSFET.
    Там же рядом архив с моделью драйвера для LTspice XVII.
    Есть ли у Вас возможность испытать устройство при пониженном питании силовой части - для локализации причины гашения дисплея? Мое стандартное питание - 10 щелочных 1,5В-батареек. Странно, что лишние 2-3 В так критичны, но похоже, что так.
     

    Вложения:

    Последнее редактирование: 18 сен 2019
  15. РоманТ

    РоманТ Нуб

    Залил, работает. Но при переключении из статик в динамик после калибровки пару раз выпадало в чистый экран.
     
  16. FoxyLab

    FoxyLab Гик

    Я проведу ревизию кода анализа кривой, там много нюансов.
    Но самое странное для меня - это начальная ступенька на графике. Что заставляет АЦП выдавать значение, равное половине диапазона измерений (511)? Такая реакция на отрицательное входное напряжение на этапе нарастания тока в катушке?
     
    Последнее редактирование: 19 сен 2019
  17. FoxyLab

    FoxyLab Гик

    Модифицировал код - должен быть устойчив к начальному выбросу (та самая вертикальная черта, особенность Вашего устройства). Хотел прошить и испытать сегодня - флэшку взял, а мини-USB кабель не взял :)
    Кстати, для статического режима рядом c RX какие числа написаны (отображаемые после завершения балансировки)? Если его сбивает этот выброс с толку (код, анализирующий кривую, видит уровень не равный 511 или 1023, и полагает, что это то, что нужно), то должно быть первое число, близкое к нулю? Хотя на той прошивке может от него и в отказ уйти.
     
  18. FoxyLab

    FoxyLab Гик

    Собрал модель всей силовой части МД для LTspice XVII:
    FoxyPI_v3_tran.asc

    Можно играться с параметрами и смотреть, например, напряжение на поисковой катушке (1), на входе ОУ (2), ток в катушке (3):
    [​IMG]
     
    Последнее редактирование: 19 сен 2019
  19. РоманТ

    РоманТ Нуб

    Zero 851803 плюс-минус
    Rx 0...99
     
  20. FoxyLab

    FoxyLab Гик

    Понятно, начальный выброс ловит.
    Я сегодня-завтра испытаю новую прошивку и выложу ее.