Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Сборка чувствительного металлодетектора на Arduino Nano — Руководство DIY

Компоненты и материалы

Необходимые инструменты

Программное обеспечение

О проекте

Это модифицированная версия известного российского импульсно-индукционного металлодетектора «ПИРАТ», реализованная с использованием Arduino Nano, что значительно упрощает сборку и настройку устройства.

Детектор способен обнаруживать монету на расстоянии до 15 см и более крупные металлические объекты — на 40 см и дальше. Для такого простого устройства это отличный результат.

Принцип работы импульсно-индукционного (PI) детектора

PI-детекторы используют одну катушку как для передачи, так и для приёма. Устройство посылает мощные короткие импульсы тока через катушку. Каждый импульс создаёт кратковременное магнитное поле. Когда импульс заканчивается, поле меняет полярность и резко схватывается, порождая острый электрический пик. Этот пик длится несколько микросекунд и вызывает в катушке отражённый импульс тока длительностью около 30 мкс. Затем процесс повторяется.

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

Основные узлы устройства

Сборка чувствительного металлодетектора на Arduino Nano — Руководство DIY

Ранее я представлял похожий детектор, использующий смартфон в качестве индикатора и требующий частой калибровки. Данная версия — автономное устройство с само калибровкой при сбросе Arduino. Питание обеспечивается двумя литий-ионными батареями, соединёнными последовательно. Управление стало проще благодаря световой и звуковой индикации: при приближении к металлу частота и интенсивность мигания светодиодов увеличиваются.

Поисковая катушка имеет диаметр 20 см и содержит 25 витков изолированной медной проволоки сечением 0,3–0,5 мм².

Программный код

// PI metal detector for arduino version_18_min (C) alex --- 1967 2015
int ss0 = 0; int ss1 = 0; int ss2 = 0;
long c0 = 0; long c1 = 0; long c2 = 0;
byte i = 0;
int sss0 = 0; int sss1 = 0; int sss2 = 0;
int s0 = 0; int s1 = 0; int s2 = 0;

void setup() {
  DDRB = 0xFF; // порт B — все выходы
  DDRD = 0xFF; // порт D — все выходы
  for (i = 0; i < 255; i++) { // калибровка
    PORTB = B11111111; // открываем ключ
    delayMicroseconds(200);
    PORTB = 0; // прерываем ток в катушке
    delayMicroseconds(20);
    s0 = analogRead(A0);
    s1 = analogRead(A0);
    s2 = analogRead(A0);
    c0 += s0; c1 += s1; c2 += s2;
    delay(3);
  }
  c0 = c0 / 255 - 5;
  c1 = c1 / 255 - 5;
  c2 = c2 / 255 - 5;
}

void loop() {
  PORTB = B11111111;
  delayMicroseconds(200);
  PORTB = 0;
  delayMicroseconds(20);
  s0 = analogRead(A0);
  s1 = analogRead(A0);
  s2 = analogRead(A0);
  ss0 = s0 - c0;
  if (ss0 < 0) sss0 = 1;
  ss0 /= 16;
  PORTD = ss0; // вывод на индикатор (светодиоды)
  delay(1);
  ss1 = s1 - c1;
  if (ss1 < 0) sss1 = 1;
  ss1 /= 16;
  PORTD = ss1;
  delay(1);
  ss2 = s2 - c2;
  if (ss2 < 0) sss2 = 1;
  ss2 /= 16;
  PORTD = ss2;
  delay(1);
  if (sss0 + sss1 + sss2 > 2) {
    // зажигаем все светодиоды при обнаружении
    for (int p = 0; p <= 7; p++) digitalWrite(p, HIGH);
    delay(1);
    sss0 = sss1 = sss2 = 0;
  }
}

Схема подключения

Сборка чувствительного металлодетектора на Arduino Nano — Руководство DIY

Производственный процесс

  1. Слово-часы (Word Clock) на Arduino — DIY-часы с текстовой индикацией времени
  2. Создание осциллографа на Arduino Nano с дисплеем Nokia 5110 (20 кГц): простое DIY-руководство
  3. DIY детектор землетрясений на ADXL335 с усилением ОУ OP07
  4. Умный вольтметр на Arduino и смартфоне — простое DIY-проект
  5. Детектор аудиочастот на Arduino: измеряем пик громкости с высокочувствительным модулем
  6. Сборка DIY VR-скейтборда на Arduino, Google Cardboard и Bluetooth
  7. Простой калькулятор на Arduino UNO — базовый проект для начинающих
  8. Сборка точного измерительного колеса на Arduino Nano и вращательном энкодере
  9. Простой секундомер на Arduino с кнопкой и EEPROM
  10. DIY Arduino Radionics EMR Treatment Device — радионическое устройство