Меню

Датчик давления bmp280 flprog

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

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

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

Барометр – устройство, измеряющее атмосферное давление. Электронные барометры используются в робототехнике и различных электронных устройствах. Наиболее распространенными и доступными являются датчики давления от фирмы 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 режима работы – режим сна, режим FORCED (проведение измерения, считывание значения, переход в спящий режим), режим NORMAL (перевод датчика в циклическую работу – то есть устройство самостоятельно через установленное время выходит из режима сна, проводит измерения, считывает показания, сохраняет измеренные значения и переходит снова в режим сна).

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

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

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

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

Технические характеристики датчика 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 имеет датчик влажности, который немного увеличивает габариты. Количество контактов и их расположение на корпусе совпадают.

Читайте также:  Светильники для подсветки пола в коридоре с датчиком движения

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

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

Землю с Ардуино нужно соединить с землей на датчике, напряжение – на 3,3 В, SDA – к пину А4, SCL – к А5. Контакты А4 и А5 выбираются с учетом их поддержки интерфейса I2C. Сам датчик работает от напряжения 3,3 В, а Ардуино – от 5 В, поэтому на модуле с датчиком установлен стабилизатор напряжения.

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

Сам модуль датчика давления выглядит следующим образом:

Для соединения с Ардуино нужно подключить выходы следующим образом: соединить землю с Ардуино и на датчике, VCC – на 3,3В, SCL / SCK – к аналоговому контакту А5, SDA / SDI – к А4.

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

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

При подключении по I2C нужно соединить контакты SDA и SCL.

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

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

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

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

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

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

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

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

Читайте также:  Индуктивный датчик ps2 12m55 8n11 k

Возможные ошибки при подключении и устранение их

Наиболее часто встречающаяся ошибка – неправильные данные о давлении и температуре, которые отличаются на несколько порядков от реального значения. Причиной этого чаще всего становится неправильное подключение – например, в библиотеке указано, что нужно подключать по I2C, а датчик подключен по SPI.

Также при использовании “китайских” датчиков можно столкнуться с нестандартными I2C или SPI адресами. В этом случае рекомендуется просканировать все присоединенные устройства с помощью одного из популярных скетчей и выяснить, по какому адресу откликается ваш датчик давления.

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

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

Заключение

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

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

Источник

Барометр BMP180 и BMP280 (датчик атмосферного давления, высотомер) (Trema-модуль v2.0)

Общие сведения:

Trema-модуль датчик давления BMP280 — это цифровой модуль на базе чипа BMP280, подключаемый по шине I2C (адрес 0x77), позволяющий получить текущие значения атмосферного давления и температуры окружающей среды. Еще одним применением данного модуля является определений высоты, которая зависит от давления и рассчитывается по международной барометрической формуле. Точность Trema барометра позволяет фиксировать изменение высоты от 20 см.

Видео:

Спецификация BMP280:

  • Напряжение питания модуля: 3,3 или 5 В постоянного тока (поддерживаются оба уровня).
  • Потребляемый ток: до 2 мА во время измерений (зависит от режима точности).
  • Потребляемый ток: до 0,2 мА в режиме ожидания.
  • Измеряемое давление: от 30’000 до 110’000 Па (разрешение 0,16 Па)
  • Измеряемая температура: от 0 до +65 °C (разрешение 0,01°C)
  • Рабочая частота шины I2C: до 3,4 МГц.
  • Адрес модуля на шине I2C: 0x77.
  • Уровень логической «1» на шине I2C: от 0,7*Vcc до Vcc (где Vcc это напряжение питания модуля)
  • Подготовка к первому запуску после подачи питания: не менее 2 мс.
  • Рабочая температура: -40 … +85 °C
  • Габариты: 30×30 мм.

Все модули линейки «Trema» выполнены в одном формате

Подключение:

Модуль подключается к аппаратной или программной шине I2C Arduino. Логические уровни шины I2C не должны превышать напряжение питания.

Читайте также:  Датчик температуры выносной eberle f 897 001

Модуль удобно подключать 3 способами, в зависимости от ситуации:

Способ — 1 : Используя проводной шлейф и Piranha UNO

Используя провода «Папа — Мама», подключаем напрямую к контроллеру Piranha UNO.

Способ — 2 : Используя Trema Set Shield

Модуль можно подключить к любому из I2C входов Trema Set Shield.

Способ — 3 : Используя проводной шлейф и Shield

Используя 4-х проводной шлейф, к Trema Shield, Trema-Power Shield, Motor Shield, Trema Shield NANO и тд.

При подключении датчика давления BMP280 к другим платам, например, WEMOS D1 mini или WEMOS D1 mini Pro на базе микроконтроллера ESP8266, и т.д. То перед подключением библиотеки iarduino_Pressure_BMP, нужно подключить библиотеку Wire, как это описано в разделе Wiki — расширенные возможности библиотек iarduino для шины I2C.

Питание:

Входное напряжение питания от 3,3 до 5,5 В постоянного тока, подаётся на выводы VIN и GND модуля.

Подробнее о модуле:

Trema-модуль датчик давления построен на базе чипа BMP280 (Bosch Module Pressure), оснащён преобразователем уровней на базе чипа PCA9306 и линейным стабилизатором на базе чипа RT9193. Чип BMP280 оснащён пьезорезистивным датчиком, термодатчиком, АЦП, памятью EEPROM и RAM, а так же микроконтроллером с поддержкой циклического вычисления измерений (при получении запроса, модуль сразу возвращает ответ, не тратя время на вычисления, как это делал чип BMP180). Чип PCA9306 позволяет передавать данные по шине I2C с уровнями от 3,3 до 5,5 В. Чип RT9193, позволяет подключать Trema-модуль к источнику питания от 3,3 до 5,5 В постоянного тока. Основной чип модуля, BMP280, имеет меньшие габариты и лучшие характеристики по сравнению со своими предшественниками BMP185 и BMP085.

Для работы с модулями на базе чипов BMP180 и BMP280, предлагаем воспользоваться разработанной нами библиотекой iarduino_Pressure_BMP, позволяющей получать температуру, давление и высоту.

У нашей библиотеки есть ряд преимуществ: она позволяет заменять датчики BMP180 / BMP280 без изменения скетча и схемы включения; она позволяет выбирать режим точности показаний (значение передискретизации) и единицы измерения выводимого давления (Па или мм.рт.ст.); для расчёта высоты, ей не нужно указывать давление над уровнем моря, а достаточно указать любую начальную высоту в качестве аргумента функции begin([высота]). Если вы указали 0 метров (значение по умолчанию), то подняв модуль на 10 метров — получите результат +10, а опустив на 10 метров — получите результат -10. Если в качестве аргумента функции brgin([высота]) указать высоту над уровнем моря, то все остальные значения высоты будут соответствовать действительной высоте над уровнем моря. Уменьшая точность измерений Вы ускорите процесс получения результата.

Подробнее про установку библиотеки читайте в нашей инструкции..

Примеры:

Вывод значений давления в мм.рт.ст. и в Па:

Описание основных функций библиотеки:

Данная библиотека может использовать как аппаратную, так и программную реализацию шины I2C.
О том как выбрать тип шины I2C рассказано в статье Wiki — расширенные возможности библиотек iarduino для шины I2C.

Источник

Adblock
detector