. Цифровой модуль GY-68 датчика атмосферного давления и температуры BMP180
Цифровой модуль GY-68 датчика атмосферного давления и температуры BMP180

Цифровой модуль GY-68 датчика атмосферного давления и температуры BMP180

Измеряет атмосферное давление и температуру. С помощью преобразования данных о давлении и температуре определяется высота – цифровой модуль атмосферного давления и температуры используется как высотомер. Модуль GY-68 воспринимает давление и температуру благодаря микросхеме изготовленной по пьезо-резистивной технологии BMP180 BOSCH. Характеристики датчика позволяют применять его в мультикоптерах, воздушных шарах, зондах, дельтапланах. Модуль используется в составе самостоятельного высотомера или вместе с прибором ГЛОНАСС, GPS для уточнения высоты. Найдет применение цифровой модуль атмосферного давления, температуры и в приборах отслеживающих погоду. Ориентирован на работу совместно с микроконтроллером. Каждая микросхема BMP180 проходит калибровку на заводе-изготовителе. В результате калибровочные коэффициенты записываются в ПЗУ. Имеет интерфейс I2C. Измеренные величины давления и температуры передаются по последовательной шине данных цифрового барометра-термометра. Высота над уровнем моря вычисляется по методике изложенной в документации микросхемы BMP180 на странице 15. Количество измерений в секунду может достигать 128. Обычно используют датчик в режиме одно измерение в секунду. Это увеличивает точность и экономит ток потребления. Датчик может измерять атмосферное давление с различной точностью. Требуемая точность измерения сообщается датчику микроконтроллером. Важно правильно задать задержку в программе перед чтением регистров данных. BMP180 соответствует микросхеме BMP085 в части программного обеспечения обрабатывающего данные.

Измерение температуры и давления с помощью BMP180.

Характеристики

Некоторые характеристики датчика измеряются в гектопаскалях сокращенно гПа. 1 гектопаскаль = 100 Паскаль. Это связано с тем, что при измерении высоты с помощью контроля давления используется барическая ступень. Высота, на которую надо подняться или опуститься, чтобы давление изменилось на 1 гПа – барическая ступень.

Питание GY-68 напряжение 3,3 или 5 В ток, мкА в режиме ожидания 0,1 потребление возрастает на 0,5 при увеличении частоты измерений на 1 Гц средний 5 Диапазон измерения давления от 300 до 1100 гПа что соответствует высоте -500…9000 м С точностью ± 0,02 гПа, что при работе в режиме высотомера соответствует 0,17 м Диапазон измерения температуры 0. 65 °C С точностью ± 2 °C Разрешающая способность 16 бит Максимальная скорость интерфейса 3,4 Мбод Адрес 7 бит на шине I2C значением 0x77 Время отклика 7,5 мс Шум в режиме низкого потребления 0,5 м в режиме высокого потребления 0,17 м Диапазон температуры при работе –40…85 °C Отверстие под винт 3 мм Размеры 36 x 38 x 9,3 мм

При температуре воздуха 0 °C и давлении 1000 гПа, барическая ступень составляет 8 метров на гПа. Чтобы давление уменьшилось на 1 гПа, нужно подняться на 8 метров. С ростом температуры и увеличением высоты ступень возрастает на 0,4 % на каждый градус нагревания. Она прямо пропорциональна температуре и обратно пропорциональна давлению.

Барометрическое давление в гПа и высота над уровнем моря. Синий график – высота в стандартной атмосфере.

Контакты GY-68

VCC – питание 5 В 3.3 – питание 3,3 В GND – общий провод SCL и SDA – интерфейс I2C

Линии соединений GY-68 и Arduino UNO.

Электрическая схема

Напряжение питания 3,3 В подается на контакт 3.3 или формируется стабилизатором U1 MIC5205 маркированным KB33 при подключению модуля GY-68 к источнику напряжения 5 В. Линия питания 3,3 вольта соединена с подтягивающими резисторам R1 и R2. Они необходимы для работы шины I2C – с их помощью формируются высокие уровни сигнала, а когда BMP180 проваливает это напряжение – формируется низкий логический уровень.

Программирование

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

#include #define BMP085_ADDRESS 0x77 // I2C address

const unsigned char OSS = 0; // Oversampling Setting

//Calibration values int ac1; int ac2; int ac3; unsigned int ac4; unsigned int ac5; unsigned int ac6; int b1; int b2; int mb; int mc; int md;

//b5 is calculated in bmp085GetTemperature(. ), this variable is also used in bmp085GetPressure(. ) //so . Temperature(. ) must be called before . Pressure(. ). long b5;

short temperature; long pressure;

void setup()

void loop()

//Stores all of the bmp085's calibration values into global variables //Calibration values are required to calculate temp and pressure //This function should be called at the beginning of the program void bmp085Calibration()

//Calculate temperature given ut. //Value returned will be in units of 0.1 deg C short bmp085GetTemperature(unsigned int ut)

📎📎📎📎📎📎📎📎📎📎