Датчик металла для ардуино

Обновлено: 03.07.2024

Металлоискатели, или металлодетекторы, применяют для бесконтактного поиска металлов и сделанных из них предметов. Такие устройства используют военные, сотрудники различных служб безопасности, археологи для нахождения металлических артефактов, востребованы они и среди любителей искать предметы старины. Обычно металлодетекторы довольно дороги, но современные технологии и доступные микроконтроллеры позволяют самостоятельно сделать не уступающий фабричным образцам аналог. Далее мы рассмотрим примеры сборки металлоискателя на одноплатном контроллере Ардуино.

Пример металлоискателя

Как устроен металлодетектор

Металлоискатель использует в своей работе метод индуктивного зондирования. Основная рабочая часть прибора – катушка индуктивности. Наличие металла под зондом детектора меняет индуктивность, которая замеряется логикой контроллера и передается пользователю через интерфейсное устройство в виде сигналов (принцип работы будет подробнее рассмотрен ниже). Таким устройством обычно служит динамик или наушники, но могут применяться и другие способы оповещения:

Любой металлоискатель состоит из трех основных блоков:

  • катушка (или несколько). Они играют роль обнаруживающих металл передающих или принимающих антенн;
  • блок управления;
  • устройство вывода сигнала.

Принцип работы и устройства металлоискателя

Отметим, что речь идет о простом импульсном или индукционном детекторе. Дорогие промышленные и специализированные образцы могут содержать иную аппаратную «начинку».

В блоке управления расположен генератор сигнала и центральная схема — контроллер. Существует множество схем металлоискателей под разные виды плат. Распространена схема устройства «Пират» на базе двух чипов:

  • операционного двухканального усилителя TL072 и его аналога К157УД2 (приемный модуль);
  • чипа NE555 (передающий узел системы).

Схема металлоискателя пират

Но в последнее время становятся популярны варианты на Arduino. Причина этого — простота, дешевизна, хорошая изученность семейства Ардуино и мощные программные возможности платформы.

Принцип работы

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

Последняя благодаря свойству индуктивности катушки активно препятствует изменениям магнитного поля: свойство не дает нарастать току. Для измерения индуктивности служит системная единица Генри, вычисляемая по формуле:

Формула индуктивности

  • L — значение индуктивности в Генри;
  • μο — магнитная проницаемость;
  • N — количество витков катушки;
  • A — площадь сечения провода;
  • L — длина намотанного на катушку провода в метрах.

При наличии металла рядом с катушкой индуктивность меняется:

  • немагнитные металлы ее снижают;
  • магнитные, наподобие железа — увеличивают.

На этом свойстве основаны селективные металлоискатели, способные по изменению индуктивности определять тип попавшего в поле действие металла. Реализация такой дискриминации требует высокочувствительной катушки с большим числом витков, соответствующего контроллера и прошивки. Поэтому недорогие модели (в том числе DIY) свойство селективности обычно не поддерживают, но встречаются и варианты с ней. У образцов на Ардуино дискриминация встречается редко, хотя существуют схемы так называемых пинпойнтеров — способных различать металлы на небольших расстояниях детекторов.

Уровень индуктивности зависит от сердечника. Бессердечниковые катушки с небольшим количеством витков имеют сравнительно невысокую итоговую чувствительность.

Катушки без сердечника

Для получения высоких значений нужны варианты на ферритовом сердечнике и с несколькими десятками (а лучше — сотнями) витков.

Катушки с сердечником

Но при создании простого бытового детектора достаточно и катушки первого типа. Ее можно сделать, намотав 30–40 витков на подходящий предмет — например, пустую пластиковую «шайбу» от изоленты.

Простая катушка

Простой металлоискатель на базе Arduino

Для постройки понадобятся:

  • одноплатный компьютер Arduino Nano;
  • зуммер (небольшой динамик-«пищалка»);
  • катушка индуктивности — покупная или намотанная самостоятельно;
  • конденсатор на 10 нФ;
  • резистор на 330 Ом;
  • резистор на 1 кОм;
  • диод типа 1N4148;
  • светодиод;
  • макетная плата;
  • источник питания на 9 В;
  • провода для соединения.

Схема устройства

Готовый металлоискатель на Arduino схематически выглядит так:

Всеми процессами управляет микрокомпьютер Arduino. О нахождении в поле «зрения» металла сигнализирует дополненный светодиодом зуммер, а катушка с конденсатором служат непосредственно для обнаружения. Импульсный диод в схеме нужен для понижения напряжения, а резистор ограничивает ток на контактах Ардуино.

Все элементы монтируются на макетной плате. Вид в сборе:

Детектор в сборе на плате

Схема действует следующим образом:

  • на выходе Ардуино мы создаем импульсы прямоугольной формы;
  • они поступают на LR фильтр верхних частот;
  • с каждым переходом уровня на катушке возникнет быстрый остроконечный импульс. Долгота его пропорциональна значению индуктивности нашей катушки.

Измеряя ширину импульса, можно замерить и саму индуктивность. Но важно учесть, что длина импульсов всего около 0.5 микросекунды, и «поймать» их по отдельности с помощью Arduino затруднительно. Поэтому в систему внедрен конденсатор: он заряжается импульсами до уровня считывания напряжения контроллером через аналоговый контакт A5. На аналогово-цифровом преобразователе из него будет получено цифровое значение. Когда напряжение считано, конденсатор разряжается подачей низкого напряжения на А5 — так называемый «логический нуль» (перед этим программа переводит контакт из режима «ввода» на «вывод».

Цикл занимает примерно 200 мс. Для большей точности его можно повторить его несколько раз и получить среднее значение, с каковым и работать. Зная приближенное значение индуктивности, плата анализирует его и выдает заданные сигналы на диод и динамик.

Прошивка

Поскольку мы делаем импульсный металлоискатель на Ардуино, мало его собрать — нужно еще залить управляющее ПО. В терминологии Arduino оно называется «скетч» и прошивается в плату при помощи входящей в комплект среды разработки.

Пример окна среды разработки

Пример простого скетча для описанной выше схемы:

  • инициализируются два контакта контроллера. Первый генерирует идущие на катушку импульсы, второй — читает напряжение с конденсатора;
  • также включаются два контакта — они управляют диодом и звуковым зуммером.

При попадании в область детекции катушки зуммер издает звук, а диод часто мигает.

Прибор может быть собран в любом удобном корпусе, покупном или самодельном. В самом простом случае его можно смонтировать даже на селфи-палке.

Металлодетектор на селфи палке

Более сложная схема с шестью катушками

Для лучших результатов можно использовать несколько катушек и плату Arduino Nano.

  • контроллер Ардуино;
  • 9-вольтовый источник питания;
  • счетверенный компаратор LM339 — 2 шт.;
  • макетная плата Veroboard 50 на 80 мм;
  • резисторы на 1 кОм — 5 шт.;
  • резисторы на 100 Ом — 5 шт.;
  • диод сигнальный IN4148 — 5 шт.;
  • конденсатор на 0.1 мкФ — 5 шт.;
  • конденсатор керамический на 330 пФ — 5 шт.;
  • резистор на 10К — 1 шт.;
  • светодиодная лента с резистором на 150 Ом, под напряжение 3 В — для визуальной индикации.

Проводником здесь служит медный провод сечением 0.26 мм и 25 метров в длину. Также нужны 3 мяча для пинг-понга, лист пластика, 6-мм МДФ 22 на 23 см для основы катушек (два листа), двухкомпонентный эпоксидный клей и экранированный кабель сечением 2–3 мм и длиной 30 см. Под рукоять можно взять пластиковую ручку швабры с гибким шарниром или другую похожую конструкцию.

Металлодетектор 5 катушек в корпусе

Подготовка

Сперва создадим на картоне шаблон, нарисовав на нем круг радиусом 40 мм и разделив его на 8 одинаковых сегментов. Должна получиться шестиугольная форма. С ее помощью рисуется контур на листе бумаги. Всего должно получиться пять форм, которые следует скопировать на доску МДФ, как показано на картинке. Получившееся следует вырезать в двух экземплярах.

Шаблон

Далее в центре каждого шестиугольника одной из форм фрезой сверлятся отверстия под будущие катушки:

Лист с отверстиями под катушки

И листы скрепляются эпоксидным клеем, в результате чего появляется основа детектора.

Затем на 40-мм цилиндр наматывается 40 витков проволоки. Должно получиться пять таких катушек. Обмотки можно склеить горячим клеем, оставляя в начале и конце по 20 см для соединения с платой.

Катушки

После этого в каждом узле катушки высверливается 3-мм отверстие для подвода проводов, и намотанные блоки приклеиваются на место.

Катушки в гнездах

Заготовка с выведенными проводами

Важно делать их «заподлицо» с плитой МДФ, чтобы катушки не портились при работе с прибором.

Монтаж

Схема будущего металлоискателя:

Схема детектора

Монтажная плата размечается по созданному ранее макету.

Монтажная плата

Сперва ставится контроллер Arduino и чип LM339. Затем добавляются конденсаторы и резисторы, с ними же ставится экранированный кабель.

Сборка элементов на плате

Конденсаторы на 0.1 мкФ можно разместить прямо на МДФ для экономии места и провода, там же ставятся диоды.

Установка на мдф

Готовый вид смонтированной системы:

Собранная система

Когда система собрана, ее остается разместить в корпус. Для верхней и нижней части по шаблону вырезаются пластиковые листы, из пластика же делаются боковины. В крышке сверлятся отверстия для диодов — здесь пригодятся пластиковые шарики, которые разрезаются на половинки и ставятся под отверстиями для рассеивания света. Допустимо обойтись без них — рассеивание нужно лишь для красоты.

Источник питания в данном случае заключен в контейнер на крышке.

Готовый вид конструкции:

Металлодетектор в корпусе

Программная часть

Полный текст скетча для Ардуино можно найти по ссылке ниже.

Заключение

Доступность технологий сегодня позволяет собрать металлодетектор своими руками и без существенных затрат. А применение контроллера Ардуино делает процесс еще проще — плата берет на себя все управление логикой, достаточно лишь создать подходящий скетч или воспользоваться одним из уже готовых примеров.

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

Подключение тензодатчика к плате Ардуино

Каждый человек, так или иначе, старается облегчить свой быт и труд. Для чего во все времена использовались различные вспомогательные механизмы или прирученные животные. В наше время, функции управления первыми, и некоторые возможности вторых возлагаются на компьютеры. Существуют и миниатюрные их варианты, предназначенные в первую очередь, для управления различными устройствами. Причем речь идет не только о бесконечном и однообразном повторении установленных изначально действий, но и об участии в процессе определенной логики. Которая, в свою очередь, опирается на текущее состояние различных внешних факторов. Мы говорим о микроконтроллерах — ограниченных ресурсами компьютерах, возможностей которых тем не менее достаточно для получения информации с чувствительных устройств — датчиков, обработки ее и передачи определенных команд конечным исполнителям.

Тензодатчик

В разрезе темы статьи речь пойдет о популярной платформе Arduino, аналого-цифровом преобразователе HX711 и подключаемых к нему тензодатчиках.

Зачем все это необходимо

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

такие весы тоже сделаны на основе Arduino

Пригодится аппарат и пасечникам — объединив весы с передатчиком Bluetooth или GSM-модемом можно контролировать «налет» веса пчел в различные периоды года. Достаточно знать чистую массу улья. Все что выше, как раз и будет воск, пчелы и мед.

Принцип работы тензодатчика

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

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

Принцип работы тензодатчика

Сенсоры настоящего типа присутствуют на рынке в полу- и мостовом варианте исполнения. Главное отличие, что первые можно применять раздельно на одной линии. А если конкретно — включение 4 полу мостовых датчиков в конструкцию единых весов дадут большую точность, чем двух полноформатных.

С виду — тензодатчик Ардуино выглядит как своеобразный алюминиевый брусок, с крепежными отверстиями. На его гранях видно размещенные там тонкопленочные резисторы, на которые собственно и помещается платформа с грузом. Количество выходов — 3 в случае полу мостовых и 4 у полных. Две линии используются для питания, остальные с целью передачи аналоговой информации на исполняющее устройство.

Для удобства монтажа преимущественно используют 4-х проводную схему подключения как более современную. При выборе тензодатчиков важно обращать внимание на метрологические характеристики. Для высокоточного весового оборудования используют класс точности не ниже C3. Чтобы быть уверенным в качестве продукции рекомендуем выбирать тензометрические датчики с гарантией. Для надёжной работы мы советуем купить тензодатчик Sierra.

мостовой датчик

На одной из граней обычно указан максимально допустимый вес нагрузки.

Характеристики оборудования, его настройка, примечания

Здесь начать стоит непосредственно с преобразователя аналогового сигнала в цифровой, а конкретно с платы-посредника между Arduino и тензодатчиками — HX711:

  • Частота обработки входящих сигналов: от 10 до 80 раз в секунду.
  • Питание: 2.5–5.5 В при 10 мА.
  • Минимальное напряжение на входе: ~40мВ
  • Количество каналов: 2
  • Усиление по входящей линии A: 64, 128
  • Усиление по входящей линии B: 32
  • Разрядность исходящего канала: 24 бита.
  • Ширина на длину платы: 21×34 мм

Основное назначение устройства в конвертации объема поступающего тока в бинарный формат. Причем чувствительность аппарата непосредственно зависит от установленного режима усиления линии:

Коэффициент Пиковый ток
32 ± 80 мА
64 ± 40 мА
238 ± 20 мА

В тех случаях, когда на вход АЦП поступает ток меньше нижней границы диапазона, на его выходе будет выдано 800000h, а если больше верхней — 7FFFFFh.

HX711

К сожалению, есть у преобразователя HX711 определенные проблемы. К примеру, точность его работы сильно зависит от температуры окружающей среды. Дополнительно, даже в нормальном режиме, происходит изменение определяемых аналоговых значений. То есть, результирующие коды все время «бегают» в определенных, достаточно сильных пределах:

таблица Excel демонстрирующая изменение определяемых сигналов на вводе HX711

Один из немногих дельных советов для таких случаев, выясненный при помощи интернет, — использовать для питания ровно 5 В в отношении датчиков и самого АЦП, а также снизить частоту определения до 10 Гц. Кроме того, пользователи названой платы применяют линейные фильтры на вводе и рекомендуют делать больший упор в конструкциях на канал B — он менее шумный. Также хорошим стабилизатором показаний будет опрос 10 значений и вывода среднего. Вариантом можно применить сборки на основе АЦП HX710A. Названый конвертер дополнительно оснащен сенсором температуры, корректирующим выходные данные.

К Ардуино преобразователь соединяется четырьмя контактами, два из которых питание, а остальные применяются в деле передачи данных:

Arduino HX711
5V VCC
GND GND
DT Цифровой вывод
SCK Цифровой вывод

Закончив с конвертером аналога в цифру для Ардуино, перейдем к характеристикам, которыми обладают сами тензодатчики:

  • Критичная измеряемая масса: 50 кг.
  • Размеры: 9×34×34 мм.

На выходе полу мостового тензодатчика три провода, которыми он подключается к HX711. Классически они имеют следующее цветовое разделение:

Контакт Цвет
А+ Белый
E- Черный
E+ Красный

  • Предельный вес: 1–20 кг.
  • Габариты: 14×14×80.5 мм.

У мостового детектора четыре исходящих контакта, имеющих следующую цветовую дифференциацию:

Контакт Цвет
А+ Белый
E- Черный
E+ Красный
A- Зеленый

На обоих видах резистивных детекторов присутствуют отверстия под крепежные болты M4/5.

схема

Схемы соединения и скетчи

Сами тензодатчики подключаются по схеме в зависимости от их типа — полу-, или мостового, а также общего количества чувствительных элементов. На плате HX711 размещены два аналоговых входа, соответственно к АЦП можно присоединить или четыре половинчатых детектора или два полных.

Соединение с единичным датчиком полумоста

Соединение с четырьмя полумостовыми тензодатчиками

схема 3

По причине того, что в цепях с участием HX711 важным фактором служит только физическое соединение чувствительных элементов, никакого отличия от предыдущего скетча по получению показаний — нет.

Соединение с одним мостовым тензодатчиком

схема 4

Опять же, и для представленной схемы скетч изменений не требует. Есть только у некоторых специалистов замечание, по вычислению и установке CF — переменной поправки:

void setCF() HX711ctl.set_scale(); // - //
HX711ctl.tare(); // Очистка показаний датчика
const WOS = 200; // вес платформы
float CFM[10],CF=0,CR=0.035274;
for (int j=0;j < 10; j++)CFM[j] = HX711ctl.get_units(1) / (WOS / CR);
CF += CFM[j];
>
CF=CF/10;
HX711ctl.set_scale(CF);
>

Библиотека HX711.h

Проект электронных весов с управлением и экраном

От простых схем, перейдем к более сложной и функциональной. Готовому решению по конструкции электронных весов с кнопками управления и жидкокристаллическим экраном. Понадобится:

Наименование Количество
Arduino UNO 1
Экран 0.96 Oled Display с интерфейсом I2C 1
Резисторы 10кОм 4
Тактовые кнопки 4
Плата HX711 1

Подключение тензодатчиков к HX711 выполняется по одной из схем, описанных ранее, для остального применяют следующие соединения:

Подключение тензодатчиков

Как подключить датчик давления к Ардуино

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

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

один из наборов Arduino с дополнительными модулями

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

Собственно, чувствительные элементы платформы и будут рассмотрены в теле статьи, а конкретно один из них — датчик давления Ардуино.

Что измеряет сенсор

Давление на плоскость

Давление — некая физическая величина численно равная перпендикулярно направленной силе действующей на единицу площади поверхности. Сам датчик можно представить своеобразными очень чувствительными весами. Последнее замечание сделано по причине того, что и вода, и газы тоже имеют свою массу, которая влияет на поверхность под ними. На практике, за счет указанного фактора, можно определить глубину погружения (чем ниже, тем больше вес слоя воды) или высоту подъема в атмосферу (чем выше — тем меньше плотность, а значит и слабее воздействие). Кроме того, в отношении давления воздуха не стоит забывать о погодных колебаниях. Резкое падение названой характеристики атмосферы — к дождю или буре.

Опять же, насчет газов и частично жидкостей. Их можно сжимать. Но, уплотненные вещества будут стремиться вернуться в первоначальное состояние. И чем сильнее компрессия, тем мощнее будет конечное давление газа или жидкости внутри сосуда их содержащего.

датчик давления Ардуино

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

Устройство

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

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

Выработанное аналоговое напряжение идет в модуль АЦП преобразования, где его сила перекодируется в числовой вид и через интерфейсы датчика I2C и SPI отправляется на микроконтроллер. Библиотека функций, ориентированных на работу с конкретным сенсором, переводит полученные величины в понятный человеком вид, на основе единиц измерений давления в стандарте Си — Паскалях.

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

Представленные на рынке модели

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

Наименование Питание (V) Точность Разрешение
(hPa)
Диапазон (hPa) Рабочая температура
(°C)
Интерфейсы Примечание
SPI I2C UEXT
Атмосферные
MOD-BMP085 1.8–3.6 0.03 hPa 0.01 300–1100 (от 500 м ниже уровня моря до 9 км. высоты –40..+85 + + Измерение температуры
GY-BMP280 3.3 0.12 hPa 0.0016 300–1100 –40..+85 + + Измерение температуры до +65, с точностью 0.01
MD-PS002 5V ±0.2% –100–+150 –40..+125 + Только не агрессивные среды
Жидкостные
MS5803-02BA 1.8–3.6 20 см жидкости 30–1100
(10–2000)
–40..+85 + +
MS5803-07BA 1.8–3.6 0–7 мбар
(70 м погружения)
–20..+85 + +
Open-Smart 5V G1/4 0-1.2 MPa Hydraulic Pressure Sensor for Non-Corrosive Water 5 1.5 % 1–2.4 мбар (max 3) 0..+85 Собственный коннектор, соединяемый к I2C через резистор, датчик оснащен термометром

Атмосферные датчики

Жидкостные датчики

Конечно, в приведенном списке числятся далеко не все существующие модели. В нем указаны только те, которые обладают определенной популярностью и затребованы пользователями.

Схемы подключения датчика давления жидкости

Среди множества схем, демонстрирующих работу Arduino с датчиком давления жидкости, была выбрана наиболее простая, использующая минимум радиодеталей. С ее помощью можно проводить измерение глубины погружения или уровня заполнения сосуда водой. Итак, понадобится:

Элемент Наименование/характеристики Количество
Микроконтроллер Arduino Nano/Uno или любой клон 1
Экран Display 2×16 ST7032 1
Датчик MS5803 1
Резистор 10 кОм 2
Конденсатор 0.1 мкФ 1
Кнопка Любая, без фиксации нажатия 1

Принципиальная схема

Принципиальная схема

Кнопка нужна для выбора режима отображения — однократное нажатие переключает вывод абсолютных и относительных данных, с сохранением состояния на последующих опросах датчика.

Скетч

Схемы подключения датчика давления воздуха

Следующая конструкция построена на сенсоре-анероиде BMP180. Экран, в нее входящий, будет отображать текущее давление атмосферного воздуха и температуру окружающей среды. Для изготовления понадобятся:

Элемент Наименование/характеристика Количество
Микроконтроллер Arduino UNO/Nano 1
Датчик BMP180 1
Экран HD447080LCD-1602 1
Резистор 100 Ом 1
Регулируемый резистор До 10 кОм 1

Ну и конечно провода для связки всего названого в единую систему.

Фотография итогового устройства:

Фотография итогового устройства

Плата-шилд самодельная, для желающих повторить, она вблизи:

Плата-шилд самодельная

Датчик питается от 3.3V, соответственно и подключаются его контакты получения энергии (VCC и GND) к плате Arduino. Для передачи данных используются входы A5 (SCL) и A4(SDA). Дисплей с микроконтроллером соединяется согласно следующей таблицы:

Arduino Экран
D6 E и D4 вместе
D4 D5
D3 D6
D2 D7
GND GND
D7 RS

Использование стороннего аналогового датчика давления

Редко, но все же случаются ситуации, когда по каким-либо причинам использовать в схеме специализированный сенсор, рассчитанный на работу конкретно с Ардуино, не получается. Скажем, его невозможно найти сразу в близлежащих магазинах электроники, а ждать посылку долго. Выходом могут стать датчики давления, применяемые в автомобильной электронике. Их тоже можно связать непосредственно с микроконтроллером.

автомобильный датчик давления

Примером послужит WABCO 4410400130 — сенсор указанного плана, используемый на большегрузных фурах. Единственное, требующее внимания в представленной схеме — питание у элемента раздельно с Arduino. В последнем, просто нет требуемых для запуска датчика +24 В. В связи с чем и приходится использовать дополнительный блок энергообеспечения, с правильными и достаточными характеристиками питания — 8–32 V постоянного тока, при минимуме 400 mА мощности.

Что касается соединения сенсора напрямую к плате микроконтроллера — в нем на выходе не более 5 В. И чем больше давление, тем меньший ток будет поступать на аналоговые контакты логического устройства. Вот только, на всякий случай, рекомендуется проверить изначальный выход мультиметром, с целью контроля варианта «пробития» сенсора, с возникновением обстоятельств беспрепятственного связывания OUT с минусом или плюсом питающей детектор линии.

WABCO 4410400130

Теперь, что касается данных получаемых на выходе скетча. Нужно провести их градацию с использованием классического манометра, оценив какие цифры идут от сенсора при разном давлении и ввести соответствующую формулу в тело программы.

И в окончании, технические характеристики WABCO 4410400130, для сравнения с похожими датчиками Arduino:

  • Тип: пьезоэлемент
  • Питание: 8–32 V
  • Рабочая температура: −40..+80 °С
  • Диапазон измерения: от 0 до 10 bar
  • Точность: 0.2–0.3 %
  • Предельное давление разрушения: 16 bar

Резюмируя

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

Металлоискатель на Arduino c дискриминацией металлов

В данной статье мы рассмотрим создание металлоискателя (металлодетектора) на основе платы Arduino с возможностью дискриминации металлов. Данный металлоискатель будет способен обнаруживать мелкие металлические предметы (например, монеты) на глубине до 15 см, а крупные предметы из металла он сможет обнаруживать на глубине до 50 см (и даже более). Также он будет способен отличать железосодержащие металлы (ferrous) от цветных металлов (nonferrous). Металлоискатель отличается достаточно простой конструкцией и в то же время он обеспечивает приемлемую чувствительность.

Внешний вид проекта металлоискателя на Arduino c дискриминацией металлов

Ранее на нашем сайте рассматривался проект простого металлоискателя на Arduino, рекомендуем его прочитать чтобы понять принцип работы металлоискателя (металлодетектора).

Необходимые компоненты

  1. Плата Arduino Nano (купить на AliExpress).
  2. ЖК дисплей 16х2 (купить на AliExpress).
  3. Операционный усилитель TL081 или 741, также подойдет LT1677 (использован автором проекта) (купить на AliExpress).
  4. Громкоговоритель (Speaker) 0,25 Вт, 8 Ом.
  5. Транзистор общего назначения NPN типа.
  6. Катушка индуктивности – 2 шт.
  7. Потенциометр 10 кОм (купить на AliExpress).
  8. Конденсаторы и резисторы (согласно схеме, представленной далее).
  9. Переключатели.
  10. Батарейка.

Схема проекта

Схема металлоискателя на Arduino c дискриминацией металлов представлена на следующем рисунке.

Схема металлоискателя на Arduino c дискриминацией металлов

При обнаружении металла устройство будет издавать звуковой сигнал, а на ЖК дисплее с помощью столбчатой диаграммы (bar graph) будет отображать степень близости металла, а также указываться тип металла – железо (ferrous) или цветной (nonferrous).

Устройство представляет собой индукционно-балансный металлодетектор, работающий на очень низкой частоте (very low frequency, VLF). Металлоискатель содержит передающую и приемную катушки индуктивности. Как и во всех схемах подобных детекторов, для нашего прибора очень важен баланс между катушками. Потенциометр в схеме детектора используется для устранения влияния противофазного компонента (out-of-phase component) сигнала – приводит сдвиг по фазе к нулю, а синфазный компонент (in-phase component) обнуляется с помощью соответствующего расположения катушек – по принципу работы IB-детекторов.

Каждая катушка индуктивности изготовляется при помощи намотки 64 витков провода сечением 0,5 мм2 из эмалированной меди на D форму (D shape) диаметром 11 см. После этого конструкция катушки обматывается лентой и экранируется алюминиевой фольгой, после чего к ней к ней прикрепляется луженая медная проволока – необходимо оставить небольшой пропуск в фольге чтобы ее прикрепить. После чего обе катушки закрепляются на пластиковое основание. Внешний вид собранных катушек индуктивности для металлоискателя показан на следующем рисунке.

Внешний вид собранных катушек индуктивности для металлоискателя

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

Внешний вид собранной конструкции металлоискателя

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

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

Металлоискатель (Metal Detector) используется для обнаружения различных металлов. Может использоваться как службами безопасности, так и обычными любителями – обычно их используют археологи для поиска металлических предметов старины (значки, монеты, медали и т.д.). Конечно, металлоискатель можно сконструировать и без использования микроконтроллера, но в данном проекте мы рассмотрим проект металлоискателя на основе использования платы Arduino. В нашем проекте катушка индуктивности и конденсатор будут использоваться для обнаружения металла, а плата Arduino Nano будет управлять всеми процессами в схеме.

Внешний вид металлоискателя на Arduino

Также на нашем сайте вы можете посмотреть более сложный проект металлоискателя на Arduino с дискриминацией металлов.

  1. Плата Arduino Nano (подойдет и любая другая модель) (купить на AliExpress).
  2. Катушка индуктивности.
  3. Конденсатор 10 нФ (купить на AliExpress).
  4. Зуммер (Buzzer) (купить на AliExpress).
  5. Резистор 1 кОм (купить на AliExpress).
  6. Резистор 330 Ом (купить на AliExpress).
  7. Светодиод (купить на AliExpress).
  8. Диод 1N4148 (купить на AliExpress).
  9. Макетная или перфорированная плата.
  10. Соединительные провода.
  11. Батарейка 9 В.

Принцип работы проекта

Как известно, при прохождении электрического тока через катушку он формирует (генерирует) магнитное поле вокруг нее. Изменение магнитного поля приводит к формированию электрического поля. Поэтому в соответствии с законом Фарадея из-за изменения электрического поля в катушке появляется разность потенциалов, которая препятствует изменению магнитного поля – это происходит благодаря наличию у катушки свойству индуктивности, которое стремится препятствовать нарастанию тока. Индуктивность измеряется в генри и для катушки она может быть рассчитана по формуле:

L = (μο * N 2 * A) / l,

где L - индуктивность в генри,
μο – магнитная проницаемость, для воздуха она равна 4π*10 -7 ,
N – число витков,
A – площадь сечения проводника (πr 2 ) в м 2 ,
l - длина проводника катушки в метрах.

Когда рядом с катушкой появляется металл он изменяет ее индуктивность. Величина изменения индуктивности зависит от типа металла. Индуктивность уменьшают немагнитные металлы и увеличивают ферромагнитные материалы такие как железо.

Индуктивность катушки в значительно степени зависит от ее сердечника. На следующем рисунке показаны катушки без сердечника, обычно они имеют невысокие значения индуктивности.

Внешний вид катушек без сердечника

Обычно такие катушки используются когда нужна индуктивность в несколько мкГн. Для достижения больших значений индуктивности используются катушки с ферритовым сердечником (показанные на рисунке ниже), с помощью которых можно получить достаточно большие значения индуктивности.

Внешний вид катушек с ферритовым сердечником

Соответственно, когда рядом с катушкой без сердечника оказывается кусок металла он начинает действовать как сердечник для катушки, значительно увеличивая ее значение индуктивности. Поэтому если катушка включена в LC контур, то при этом (появлении металла рядом с катушкой) увеличивается общее реактивное сопротивление (импеданс) данного контура.

Поэтому в нашем металлоискателе на основе Arduino мы будем использовать определение индуктивности катушки для обнаружения металлов. Катушка включена в контур, изменение импеданса которого мы и будем обнаруживать. В нашем проекте мы использовали катушку из 20 витков, намотанных на пустую оболочку от изоленты (скотча) как показано на следующем рисунке.

Самодельная катушка индуктивности для нашего металлоискателя на Arduino

Работа схемы

Схема металлоискателя на основе платы Arduino Nano представлена на следующем рисунке.

Схема металлоискателя на основе платы Arduino Nano

Плата Arduino используется для управления всеми процессами в схеме. Светодиод и зуммер используются как индикаторы обнаружения металла. Катушка и конденсатор используются для обнаружения металла. Импульсный диод используется для уменьшения напряжения. Резистор используется для ограничения тока на контакте платы Arduino.

Собранная часть металлоискателя на макетной плате

Работа схемы достаточно проста. На выходе контакта платы Arduino мы формируем прямоугольную волну (импульсы), которая подается на LR фильтр верхних частот. В связи с этим при каждом переходе уровня катушка будет генерировать короткий остроконечный импульс, длительность которого будет пропорциональна величине индуктивности катушки. Поэтому измеряя ширину этих остроконечных импульсов можно определить индуктивность катушки. К сожалению, с помощью платы Arduino это сделать достаточно сложно поскольку импульсы очень короткие – около 0,5 микросекунды.

Вид нашего металлоискателя в сборе

Вместо этого мы будем использовать конденсатор, который будет заряжаться этими импульсами. Необходимо всего лишь несколько импульсов чтобы зарядить конденсатор до такого уровня, чтобы напряжение на нем можно было считать с помощью аналогового контакта A5 платы Arduino. Это аналоговое значение напряжения плата Arduino преобразует в цифровое с помощью аналого-цифрового преобразования (АЦП), доступном на данном контакте. После считывания напряжения мы быстро разряжаем конденсатор подавая на контакт A5 напряжение низкого уровня (логический "0") – перед этим его нужно перевести из режима ввода данных в режим вывода данных. Весь этот процесс занимает около 200 микросекунд. Для достижения большей точности результатов мы можем производить подобную операцию несколько раз и затем использовать среднее значение полученных результатов. Таким образом мы получаем приближенное значение индуктивности катушки. После анализа этого результата мы выдаем соответствующие управляющие сигналы на светодиод и зуммер.

Исходный код программы

В программе мы инициализировали два контакта платы Arduino – один для генерации прямоугольных импульсов, подаваемых на катушку, а второй – для считывания напряжения с конденсатора. Дополнительно к этому мы инициализировали еще 2 контакта для управления зуммером и светодиодом. Подробно работа нашего металлоискателя показана на видео, приведенном в конце статьи. При обнаружении металла зуммер издает звуковой сигнал, а светодиод начинает мигать с высокой частотой.

Читайте также: