Датчик атмосферного давления
Описание
Цифровой датчик на базе микросхемы BMP280 предназначен для измерения величины атмосферного давления, а также температуры в диапазоне от -40°C по +85°C с погрешностью всего 0,01°C. Кроме того, датчик может быть использован в качестве высотомера для определения высот от -500 до 9000 метров над уровнем моря.
Датчик BMP280 является усовершенствованной версией чипа BMP180, который выполнен в более компактном корпусе, обладает низким энергопотреблением и различными режимам работы. Датчик имеет заводскую калибровку и не требует дополнительных настроек перед началом работы.
Датчик поддерживает три режима работы:
- Normal - в данном режиме датчик просыпается с определенной периодичностью, передает измерения и снова засыпает;
- Sleep - режим сна;
- Forced - режим работы, при котором датчик пробуждается подачей внешнего управляющего сигнала, передает измерения и автоматически переходит в режим сна.
Плата с датчиком исполнена в двух вариантах: на 3,3 и 5 В (Так как рабочим напряжением микросхемы BMP280 является 3,3 В, то для его корректной работы с контроллерами Arduino от 5 В, мы предусмотрели на плате датчика преобразователи напряжения).
Обратите внимание! Выводы платы датчика на 3,3 В не толерантные к 5В! Если Вы выбрали версию 3,3 В, используйте контроллеры (например, Arduino Due), напряжение выводов SDA и SCL которых не превышает 3,3 В!
Технические характеристики
- Напряжение питания: 5 В или 3,3 В (в зависимости от версии платы)
- Потребляемый ток в режиме измерений: 2,7 мкА
- Диапазон измеряемого давления от 300 гПа до 1100 гПа
- Погрешность измеряемого давления: ±0,12 гПа
- Диапазон измеряемой температуры: от -40 °C до +85 °C
- Погрешность измеряемой температуры: ±0,01˚С
- Максимальная частота работы интерфейса I2C: 3,4 МГц
Физические размеры
- Габаритные размеры Д х Ш х В: 30 х 20 х 7 мм
Подключение
Датчик подключается посредством шины I2C, что при большом количестве устройств и использовании расширителя I2C позволит сэкономить ценные выводы контроллера. Для удобного подключения к Arduino можно также воспользоваться Sensor Shield, на котором выведен отдельный разъем I2C. Для подключения модуля используйте 4-х проводной шлейф «мама-мама» (в комплект не входит). Варианты подключения датчика можно посмотреть ниже в разделе Примеры.
Файлы для загрузки
Примеры работы с датчиком
Пример 1. Работа с датчиком 5В
Описание: В примере показано как измерить температуру, влажность и давление с использованием датчика 5В. Что нужно:
Что нужно | Сколько |
---|---|
Контроллер Smart Uno | 1 |
Sensor shield | 1 |
Шлейф "мама-мама" х4 | 1 |
Датчик атмосферного давления 5В | 1 |
Схема подключения:
Скетч для загрузки:
В данном скетче данные о результатах измерений выводятся по мере их готовности (от датчика). Поэтому, они будут выводиться не в строгом порядке. Например, сначала температура, потом высота, потом снова температура, потом давление и так далее. Здесь демонстрируется получение данных раздельно, ведь для Вашего проекта не обязательно нужны будут все параметры. Более удобное получение данных о всех трёх показателях, смотрите в примере №2.
#include <BMP280_DEV.h> // подключение библиотеки float temperature; // переменная для хранения температуры float pressure; // переменная для хранения давления float altitude; // переменная для хранения высоты BMP280_DEV bmp280; // создание объекта для работы с датчиком (адрес 0х76) void setup() { Serial.begin(9600); // инициализация сериал-соединения bmp280.begin(); // инициализация датчика, датчик переходит в режим SLEEP_MODE bmp280.setTimeStandby(TIME_STANDBY_2000MS); // установка регулярности опроса датчика в 2 с bmp280.startNormalConversion(); // начало опроса датчика в режиме NORMAL_MODE } void loop() { //измерения температуры if (bmp280.getTemperature(temperature)) { // если выполнены измерения температуры Serial.println(); // вывод данных Serial.print("Temperature: "); Serial.print(temperature); Serial.println("*C"); } //измерения давления if (bmp280.getPressure(pressure)) { // если выполнены измерения давления Serial.println(); // вывод данных Serial.print("Pressure: "); Serial.print(pressure); Serial.println(" hPa"); } //измерения высоты if (bmp280.getAltitude(altitude)) { // если выполнены измерения высоты Serial.println(); // вывод данных Serial.print("Altitude: "); Serial.print(altitude); Serial.println(" m"); } }
Пример 2. Работа с датчиком 3.3В
Описание: В примере показано как измерить температуру, влажность и давление с использованием датчика 5В. Что нужно:
Что нужно | Сколько |
---|---|
Контроллер Arduino Due | 1 |
Провода "папа-мама" х4 | 4 |
Датчик атмосферного давления 3.3В | 1 |
Схема подключения:
Скетч для загрузки:
#include <BMP280_DEV.h> // подключение библиотеки float temperature; // переменная для хранения температуры float pressure; // переменная для хранения давления float altitude; // переменная для хранения высоты BMP280_DEV bmp280; // создание объекта для работы с датчиком (адрес 0х76) void setup() { Serial.begin(9600); // инициализация сериал-соединения bmp280.begin(); // инициализация датчика, датчик переходит в режим SLEEP_MODE bmp280.setTimeStandby(TIME_STANDBY_2000MS); // установка регулярности опроса датчика в 2 с bmp280.startNormalConversion(); // начало опроса датчика в режиме NORMAL_MODE } void loop() { if (bmp280.getMeasurements(temperature, pressure, altitude)) { // если выполнены измерения //измерения температуры Serial.println(); // вывод данных Serial.print("Temperature: "); Serial.print(temperature); Serial.println("*C"); //измерения давления Serial.println(); // вывод данных Serial.print("Pressure: "); Serial.print(pressure); Serial.println(" hPa"); //измерения высоты Serial.println(); // вывод данных Serial.print("Altitude: "); Serial.print(altitude); Serial.println(" m"); } }