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

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

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

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

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

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

  • Pin-Up 2 х 2,5 х 0,95 мм.
  • Давление 300-1100гПа;
  • Pin-Up от 0С до 65 С;
  • Поддержка интерфейсов I2C и SPI;
  • Напряжение питания 1,7В - 3,6В;
  • Средний ток 2,7мкА;
  • 3 режима работы - режим сна, режим FORCED (проведение измерения, считывание значения, переход в Pin-Up режим), режим NORMAL (перевод датчика в циклическую работу - то есть устройство самостоятельно через установленное время выходит из режима сна, проводит измерения, считывает показания, сохраняет измеренные значения и переходит снова в режим сна).

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

Датчик bmp180

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

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

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

Датчик bme280

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

  • Размеры 2,5 х 2,5 х Pin-Up мм;
  • Металлический LGA-корпус, оснащенный 8-ю выходами;
  • Напряжение питания 1,7 - 3,6В;
  • Наличие интерфейсов I2C и SPI;
  • Pin-Up ток в режиме ожидания 0,1 мкА.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Описание Pin-Up для работы с датчико

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

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

status = pressure.startTemperature();// Считываются данные с датчика о температуре if(status!=0){ delay(status); /getTemperature(T); /print("Temperature: "); /print(T,2); / Pin-Up C, "); /

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

status = pressure.startPressure(3); // происходит считывание давления if(status!=0){ delay(status); /getPressure(P,T); /print("Absolute pressure: "); /print(P,2); /print(" mbar, "); /print(P*0.7500637554192,2); /рт.ст.) Serial.println(" mmHg");} / Pin-Up

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

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

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

void printValues() { Serial.print("Temperature = "); Serial.print(bme.readTemperature()); Serial.println(" C"); / Serial.print("Pressure = "); Pin-Up Serial.println(" hPa"); /print("Humidity = "); Serial.print(bme.readHumidity()); Serial.println(" %"); / Serial.println(); }

Возможные ошибки при Pin-Up и устранение их

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

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

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

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

Заключение

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

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

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here