Барометр на Ардуино: подключение датчика давления воды

Принцип действия барометра на BMP280, BMP180, BME280

Барометр ArduinoБарометр — это прибор, который измеряет атмосферное давление. Электронные барометры используются в робототехнике и различных электронных устройствах. Наиболее распространены и доступны датчики давления от BOSH — это BMP085, BMP180, BMP280 и другие. Первые два очень похожи друг на друга, BMP280 — более новый и улучшенный датчик.

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

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

  • Размеры 2 х 2,5 х 0,95 мм.
  • Давление 300-1100 гПа;
  • Температуры от 0С до 65С;
  • Поддержка интерфейсов I2C и SPI;
  • Напряжение питания 1,7 В — 3,6 В;
  • Средний ток 2,7 мкА;
  • 3 режима работы — спящий режим, ПРИНУДИТЕЛЬНЫЙ режим (измерение, считывание значения, переход в спящий режим), НОРМАЛЬНЫЙ режим (переключение датчика в циклический режим — то есть прибор самостоятельно через заданное время выходит из спящего режима, производит измерения, считывает показания, сохраните измеренные значения и вернитесь в спящий режим).

Датчик BMP180 — недорогой и простой в использовании сенсорный датчик, который измеряет атмосферное давление и температуру. Обычно его используют для определения высоты и на метеостанциях. Устройство состоит из пьезорезистивного датчика, датчика температуры, АЦП, энергонезависимой памяти, оперативной памяти и микроконтроллера.

Датчик bmp180

Технические характеристики датчика BMP180:

  • Пределы измеряемого давления — 225-825 мм рт. Изобразительное искусство.
  • Напряжение питания 3,3 — 5В;
  • Ток 0,5 мА;
  • Поддержка интерфейса I2C;
  • Время отклика 4,5 мс;
  • Размеры 15х14мм.

Датчик bme280 содержит 3 устройства: для измерения давления, влажности и температуры. Разработан для низкого потребления тока, высокой надежности и долгосрочной стабильной работы.

Датчик bme280

Технические характеристики датчика Bme280:

  • Габариты 2,5 х 2,5 х 0,93 мм;
  • Металлический корпус LGA на 8 выходов;
  • Напряжение питания 1,7 — 3,6 В;
  • Наличие интерфейсов I2C и SPI;
  • Потребляемый ток в режиме ожидания 0,1 мкА.

Если сравнивать все устройства между собой, датчики очень похожи. По сравнению со своим предшественником, который включает BMP180, новый BMP280 значительно меньше. Его миниатюрный восьмиконтактный корпус требует внимания при установке. Кроме того, устройство поддерживает интерфейсы I2C и SPI, в отличие от своих предшественников, которые поддерживали только I2C. По логике сенсора изменений практически нет, только улучшена температурная стабильность и увеличена разрешающая способность АЦП. Датчик BME280, который измеряет температуру, влажность и давление, также похож на датчик BMP280. Разница между ними заключается в размере корпуса, так как BME280 имеет датчик влажности, который немного увеличивает размер. Количество контактов и их положение на корпусе одинаковы.

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

Самый простой способ проверить ваш RTD — использовать мультиметр в режиме проверки сопротивления. Щупы мультиметра подключаются к ножкам датчика и напрямую считывают сопротивление. Поскольку сопротивление изменяется в широком диапазоне, рекомендуется использовать шкалу в автоматическом режиме.

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

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

Следующий проект основан на датчике анероида BMP180. Включенный экран будет отображать текущее атмосферное давление и температуру окружающей среды. Для изготовления вам потребуются:

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

И, конечно же, кабели для объединения всего названного в одну систему.

Библиотека, управляющая датчиком, взята здесь: https://github.com/adafruit/Adafruit-BMP085-Library

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

Схематическая диаграмма

Окончательное фото устройства:

Фото финального устройства

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

Самодельный щит

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

Arduino щит

D6 E и D4 вместе
D4 D5
RE3 D6
Re2 RE7
GND GND
RE7 Рупий

Скетч

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

Часто используемые датчики

Помимо BMP 280 есть и другие датчики. БМП 180 и БМЕ280 широко используются.

Основные характеристики БМП 180:

  • время отклика устройства 4,5 мс;
  • возможность измерения уровня атмосферного давления в диапазоне от 225 до 825 мм рт;
  • поддержка интерфейса I2C;
  • напряжение питания от 3,3 до 5 В.

Датчик BMP 180 для Arduino

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

BME280 имеет следующие особенности:

  • в режиме ожидания ток потребления 0,1 мкА;
  • уровень напряжения в диапазоне от 1,7 до 3,6 В;
  • устройство размещено в металлическом корпусе с восемью выходами;
  • датчик поддерживает несколько интерфейсов, включая SPI и I2C.

Дачик bme280 для Arduino

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

Варианты подключения к Arduino

Подключение датчика BMP180 к Arduino. Для подключения понадобится сам датчик BMP180, плата Arduino UNO и соединительные кабели. Схема подключения представлена ​​на рисунке ниже.

Земля с Arduino должна быть заземлена на датчик, напряжение — на 3,3 В, SDA — на вывод A4, SCL — на A5. Контакты A4 и A5 выбраны на основе их поддержки интерфейса I2C. Сам датчик работает от напряжения 3.3V, а Arduino — от 5V, затем на модуль с датчиком устанавливается стабилизатор напряжения.

Подключение BMP 280 к Arduino. Распиновка и вид платы сверху показаны на рисунке.

Датчики давления Arduino bmp280, bmp180, bme280

Сам модуль датчика давления выглядит так:

Для подключения к Arduino необходимо подключить выходы следующим образом: заземление подключите к Arduino и на датчике, VCC — к 3.3V, SCL / SCK — к аналоговому выводу A5, SDA / SDI — к A4.

Подключение датчика BME280. Распиновка BME280 такая же, как и у BMP280.

Датчики давления Arduino bmp280, bmp180, bme280

Поскольку датчик может работать по I2C и SPI, подключение может быть выполнено двумя способами.

При подключении по I2C необходимо подключить выводы SDA и SCL.

Датчики давления Arduino bmp280, bmp180, bme280

При подключении через SPI нужно подключить SCL от модуля и SCK (13-й вывод на Arduino), SDO от модуля к выводу 12 Arduino, SDA — к выводу 11, CSB (CS) — к любому цифровому выводу, в этом случае, к выводу 10 на Arduino… В обоих случаях напряжение подключается к 3,3 В на Arduino.

Датчики давления Arduino bmp280, bmp180, bme280

Электронный барометр

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

Электронный измеритель давления воздуха для лабораторий

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

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

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

Экран Arduino для датчиков атмосферного давления

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

Как подключить модуль ВМР 280 к датчику давления Arduino

Для подключения модуля к Arduino воспользуйтесь интерфейсом. Это может быть SPI или I2C. Выбор конкретного зависит от проекта, над которым вы работаете, и его характеристик, а также возможностей самого микроконтроллера. Аппаратный интерфейс датчика Arduino расположен на двух контактах: A4 и A5. Поэтому в этом режиме для подключения используется 4 провода. 2 необходимы для питания модуля, еще 2 используются в качестве шины данных. Когда интерфейс SPI работает, вам нужно будет использовать еще 2 провода.

Подключение BMP280 к Arduino

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

Измерение высоты точки

Другой вариант использования датчика давления Arduino — измерение высоты точки или объекта над уровнем моря. Тогда как средний показатель давления непосредственно на уровне моря составляет 1013 гПа. При увеличении высоты на 1 метр это значение увеличивается на 0,11 гПа. Следовательно, если вы вычтете 1013 из показателя, полученного в результате измерения, а затем разделите результат на 0,11, вы получите число, равное высоте.

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

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

Имя Мощность (В) Погрешность Разрешение(гПа) Диапазон (гПа) Рабочая температура(° C) Интерфейсы ПримечаниеSPII2CUEXT

Атмосферный
MOD-BMP085 1,8–3,6 0,03 гПа 0,01 300-1100 (от 500 м ниже уровня моря до 9 км –40 .. + 85 + + Измерение температуры
GY-BMP280 3.3 0,12 гПа 0,0016 300-1100 –40 .. + 85 + + Измерение температуры до +65, с точностью до 0,01
MD-PS002 ± 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 МПа для неагрессивной воды 5 1,5 % 1-2,4 мбар (макс 3) 0 .. + 85 Фирменный разъем подключен к I2C через резистор, датчик снабжен термометром

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

Датчики жидкости

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

Устройство

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

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

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

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

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

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

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

Библиотека для работы с датчиком давления берется здесь: https://github.com/millerlp/MS5803_05

С экраном здесь: https://yadi.sk/d/KKJwJ1VtDx9PCw

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

Схематическая диаграмма

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

Как измерять силу/давление с помощью резистивного датчика давления

Как упоминалось выше, сопротивление RTD изменяется в зависимости от приложенного давления. Когда нет внешней нагрузки, датчик представляет собой бесконечный резистор (обрыв цепи). По мере увеличения давления сопротивление уменьшается. На графике ниже показаны приблизительные значения сопротивления датчика в зависимости от приложенной силы (обратите внимание, что сила не измеряется в граммах. Эти значения соответствуют N * 100!).

Резистивный датчик давления - изменение сопротивления в зависимости от силы

Вы заметили, что отношения не линейны? То есть при измерении небольшой силы значения очень быстро уходят от бесконечности до 100 кОм.

Описание библиотеки для работы с датчиком. Пример скетча

Для работы с сенсором BMP180 существуют различные библиотеки, упрощающие работу. К ним относятся SFE_BMP180, Adafruit_BMP085. Эти же библиотеки подходят для работы с сенсором BMP080. Датчик bmp280 использует аналогичную библиотеку Adafruit_BMP280.

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

Значит, вам нужно получить информацию об атмосферном давлении.

После загрузки эскиза данные о температуре и атмосферном давлении появятся в окне мониторинга двери.

Датчик BME280 также показывает давление и температуру, кроме того, он может считывать показания влажности, которая по умолчанию отключена. При необходимости можно настроить датчик и начать считывание показаний влажности. Диапазон измерения от 0 до 100%. Библиотека, необходимая для работы с датчиком, называется Adafruit_BME280.

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

Принцип и порядок использования библиотеки

После установки выбранной библиотеки к ней подключается Adafruit_BMP280.h и другое устройство, предоставляющее доступ к интерфейсам. Итак, процесс выглядит так:

  • Экземпляр Adafruit_BMP280 создан. Необходимо получить полный доступ к различным функциям и возможностям датчика, измеряющего атмосферное давление. Это может быть реализовано по-разному, в зависимости от типа подключения (шина I2C, аппаратный или программный SPI).
  • Используя объект bmp, вы можете начать работу с параметрами и возможностями библиотеки. Однако сначала инициализируется модуль. Лучше всего это сделать с помощью функции setup (), которая используется перед основным циклом.
  • Когда отображается информация об ошибке, соединение проверяется на правильность. Кроме того, рекомендуется проверить соответствие используемого интерфейса. В случае успешной инициализации происходит переход на микросхему BMP280. Для этого в библиотеке есть функция setSampling (…). С его помощью пользователь сможет установить необходимые параметры, в том числе (время активности датчика, параметры измерения показателей атмосферного давления, степень фильтрации, температуру воздуха).

Библиотечная ссылка на Adafruit_BMP280.h Источник Facesq.ru

Функция setSampling (…) имеет несколько параметров. Первый контролирует режим работы устройства, коих четыре:

  • MODE_NORMAL — циклический выход из спящего режима через определенное время, установленное пользователем. После этого производятся показания, которые остаются в памяти, а само устройство возвращается в спящий режим.
  • MODE_SLEEP — режим, в котором устройство находится в спящем режиме с минимальным энергопотреблением.
  • MODE_FORCED — после установки этого режима прибор начнет измерения, после получения команды об этом от Arduino с последующим переходом в спящий режим.
  • MODE_SOFT_RESET_CODE — установка этого режима восстановит все заводские настройки.

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

Варианты использования ВМР 280

Модуль можно использовать по-разному. Чаще всего его используют для определения высоты во время полета или глубины, например, при спуске в шахту. Однако его основным назначением остается получение данных с метеостанции. Имея определенные знания и навыки, с его помощью можно создать домашнюю метеостанцию ​​с последующим отображением полученных данных на ЖК-дисплее мобильного телефона.

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

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

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

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

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

WABCO 4410400130

Пример скетча для получения информации от аналогового датчика:

Теперь что касается данных, полученных при выходе из скетча. Проводить их градацию необходимо с помощью классического манометра, оценивая, какие числа поступают с датчика при разных давлениях, и вводить соответствующую формулу в теле программы.И, наконец, технические характеристики WABCO 4410400130, для сравнения с аналогичными датчиками Arduino:

  • Тип: пьезоэлемент
  • Электропитание: 8–32 В
  • Рабочая температура: −40 .. + 80 ° С
  • Диапазон измерения: от 0 до 10 бар
  • Точность: 0,2-0,3 %
  • Максимальное давление разрыва: 16 бар
Оцените статью
Блог про Arduino
Adblock
detector