Эта страница только для чтения. Вы можете посмотреть исходный текст, но не можете его изменить. Сообщите администратору, если считаете, что это неправильно. ====== Датчик атмосферного давления ====== ===== Описание ===== Цифровой датчик на базе микросхемы BMP280 предназначен для измерения величины атмосферного давления, а также температуры в диапазоне от -40°C по +85°C с погрешностью всего 0,01°C. Кроме того, датчик может быть использован в качестве высотомера для определения высот от -500 до 9000 метров над уровнем моря. Датчик BMP280 является усовершенствованной версией чипа BMP180, который выполнен в более компактном корпусе, обладает низким энергопотреблением и различными режимам работы. Датчик имеет заводскую калибровку и не требует дополнительных настроек перед началом работы. Датчик поддерживает три режима работы: * **Normal** - в данном режиме датчик просыпается с определенной периодичностью, передает измерения и снова засыпает; * **Sleep** - режим сна; * **Forced** - режим работы, при котором датчик пробуждается подачей внешнего управляющего сигнала, передает измерения и автоматически переходит в режим сна. Плата с датчиком исполнена в двух вариантах: на 3,3 и 5 В (Так как рабочим напряжением микросхемы BMP280 является 3,3 В, то для его корректной работы с контроллерами Arduino от 5 В, мы предусмотрели на плате датчика преобразователи напряжения). <WRAP center round important 60%> Обратите внимание! Выводы платы датчика на 3,3 В не толерантные к 5В! Если Вы выбрали версию 3,3 В, используйте контроллеры (например, Arduino Due), напряжение выводов SDA и SCL которых не превышает 3,3 В! </WRAP> ==== Технические характеристики ==== * Напряжение питания: 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-х проводной шлейф "мама-мама" (в комплект не входит). Варианты подключения датчика можно посмотреть ниже в разделе Примеры. ==== Файлы для загрузки ==== * [[https://files.smartelements.ru/datasheet/BMP280.pdf|Даташит на BMP280]] * [[https://files.smartelements.ru/know_libs/BMP280_DEV.zip|Библиотека для Arduino]] ===== Примеры работы с датчиком ===== ==== Пример 1. Работа с датчиком 5В ==== **Описание:** В примере показано как измерить температуру, влажность и давление с использованием датчика 5В. **Что нужно:** ^ Что нужно ^ Сколько ^ | [[httpss://smartelements.ru/collection/kontrollery/product/kontroller-smart-uno|Контроллер Smart Uno]] | 1 | | [[httpss://smartelements.ru/collection/shildy/product/sensor-shield|Sensor shield]] | 1 | | [[httpss://smartelements.ru/collection/provoda-i-kabeli/product/shleyf-mama-mama-h4-20-sm|Шлейф "мама-мама" х4]] | 1 | | [[httpss://smartelements.ru/collection/datchiki-i-sensory/product/datchik-atmosfernogo-davleniya-5-v|Датчик атмосферного давления 5В]] | 1 | **Схема подключения:** {{ :main:sensors:bmp280_uno.png?nolink |}} **Скетч для загрузки:** <WRAP center round tip 60%> В данном скетче данные о результатах измерений выводятся по мере их готовности (от датчика). Поэтому, они будут выводиться не в строгом порядке. Например, сначала температура, потом высота, потом снова температура, потом давление и так далее. Здесь демонстрируется получение данных раздельно, ведь для Вашего проекта не обязательно нужны будут все параметры. Более удобное получение данных о всех трёх показателях, смотрите в примере №2. </WRAP> <file Arduino> #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"); } } </file> ==== Пример 2. Работа с датчиком 3.3В ==== **Описание:** В примере показано как измерить температуру, влажность и давление с использованием датчика 5В. **Что нужно:** ^ Что нужно ^ Сколько ^ | [[httpss://smartelements.ru/collection/kontrollery/product/arduino-due|Контроллер Arduino Due]] | 1 | | [[httpss://smartelements.ru/collection/provoda-i-kabeli/product/nabor-provodov-20-sht-20sm-papa-mama|Провода "папа-мама" х4]] | 4 | | [[httpss://smartelements.ru/collection/datchiki-i-sensory/product/datchik-atmosfernogo-davleniya-33-v|Датчик атмосферного давления 3.3В]] | 1 | **Схема подключения:** {{ :main:sensors:bmp280_due.png?nolink |}} **Скетч для загрузки:** <file Arduino> #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"); } } </file>