Главная » 2015 » Май » 24 » Датчик атмосферного давления BMP180
21:10
Датчик атмосферного давления BMP180

BMP180 — Датчик абсолютного давления, построенный по пьезорезистивной схеме, он имеет низкий шум и высокую линейность, а также высокую скорость установки показаний. На кристалле расположен MEMS-датчик в виде гибкой кремниевой мембраны, закрывающей камеру со стандартным давлением. На мембране расположены тензодатчики, которые включены по схеме моста, и изменяют своё сопротивление при изгибе мембраны. Изгиб мембраны зависит от разности между окружающим давлением и давлением в камере, и выходной сигнал с тензомоста зависит от давления окружающей среды. Так как параметры мембраны и резисторов зависят от температуры, то на кристалле расположен цифровой термометр, показания которого используются для компенсации данных барометра, но может использоваться и самостоятельно. Не рекомендуется использование для компенсации данных барометра данные о температуре с других датчиков. Термометр в BMP180 расположен на самом измерительном кристалле, он измеряет температуру чувствительного элемента — поэтому его показания наиболее близки к температуре барометра и точны.  Барометр может работать с максимальной точностью 2 Пa (если использовать его как барометрический высотомер это соответствует погрешности измерения высоты в 17 см).

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

  • Напряжение питания 1.62V — 3.6V.

  • Интерфейс подключения I2C.

  • Точность до 0.02hPa (17cm).

  • Диапазон: 300hPa to 1100hPa (+9000m to -500m).

  • Выходные данные: 16 бит давление и температура

  • разрешение по давлению 0.01hPa

  • разрешение по температуре 0.1оС

Интерфейс барометра BMP180 — I2C, что делает работу с ним простой и удобной. На модуле кроме самого датчика установлен линейный стабилизатор на микросхеме XC6206P332MR в корпусе SOT-23 (падение напряжения на стабилизаторе составляет всего 250 мВ, собственное потребление — 1uA.)

Принципиальная схема модуля BMP180

С1 и C2 по 1uF на схеме — обвес линейного стабилизатора.
R1 и R2 по 4.7К — подтяжка к питанию линий шины I2C.
С3 100 nF — только один из двух, положенных по даташиту BMP180, конденсаторов на питание.

 

 

 

Схема подключения к Arduino. Для Duemilanove и Uno: SDA к выводу A4 ,SCL к A5 .У Arduina Mega подключается на соотвествующие выводы.Остальные выводы GND на GND,VCC на вывод 3.3в(если нет стабилизатора) или 5в(если есть стабилизатор на модуле).

 

 

 

Полная таблица подключения модуля BMP180 к Ардуино

BMP180 label Pin function Arduino connection
DA (SDA) I2C data Any pin labeled SDA, or:
Uno, Redboard, Pro / Pro Mini A4
Mega, Due 20
Leonardo, Pro Micro 2
CL (SCL) I2C clock Any pin labeled SCL, or:
Uno, Redboard, Pro / Pro Mini A5
Mega, Due 21
Leonardo, Pro Micro 3
"-" (GND) ground GND
"+" (VDD) 3.3V power supply 3.3V

Для подключения модуля к Arduino потребуется библиотека датчика BMP180 от Adafruit там же есть и простенький пример кода. И ещё одна библиотека.

 

 

 

Arduino Example Code

 

#include <Wire.h>
#include <Adafruit_BMP085.h>

/***************************************************
  This is an example for the BMP085 Barometric Pressure & Temp Sensor
  Designed specifically to work with the Adafruit BMP085 Breakout
  ----> https://www.adafruit.com/products/391
  These displays use I2C to communicate, 2 pins are required to  
  interface
  Adafruit invests time and resources providing this open source code,
  please support Adafruit and open-source hardware by purchasing
  products from Adafruit!
  Written by Limor Fried/Ladyada for Adafruit Industries.  
  BSD license, all text above must be included in any redistribution
 ****************************************************/

// Connect VCC of the BMP085 sensor to 3.3V (NOT 5.0V!)
// Connect GND to Ground
// Connect SCL to i2c clock - on '168/'328 Arduino Uno/Duemilanove/etc thats Analog 5
// Connect SDA to i2c data - on '168/'328 Arduino Uno/Duemilanove/etc thats Analog 4
// EOC is not used, it signifies an end of conversion
// XCLR is a reset pin, also not used here

Adafruit_BMP085 bmp;
 
void setup() {
  Serial.begin(9600);
  if (!bmp.begin()) {
    Serial.println("Could not find a valid BMP085 sensor, check wiring!");
    while (1) {}
  }
}
 
void loop() {
    Serial.print("Temperature = ");
    Serial.print(bmp.readTemperature());
    Serial.println(" *C");
    
    Serial.print("Pressure = ");
    Serial.print(bmp.readPressure());
    Serial.println(" Pa");
    
    // Calculate altitude assuming 'standard' barometric
    // pressure of 1013.25 millibar = 101325 Pascal

    Serial.print("Altitude = ");
    Serial.print(bmp.readAltitude());
    Serial.println(" meters");

    Serial.print("Pressure at sealevel (calculated) = ");
    Serial.print(bmp.readSealevelPressure());
    Serial.println(" Pa");

  // you can get a more precise measurement of altitude
  // if you know the current sea level pressure which will
  // vary with weather and such. If it is 1015 millibars
  // that is equal to 101500 Pascals.

    Serial.print("Real altitude = ");
    Serial.print(bmp.readAltitude(101500));
    Serial.println(" meters");
    
    Serial.println();
    delay(500);
}

Данный скетч выводит

  • Temperature = хх.хх *C      —  Температура в градусах Цельсия
  • Pressure = хх Pa             —  Атмосферное давление в Паскалях
  • Altitude = хх.хх meters     —  Высота в метрах
  • Pressure at sealevel (calculated) = хх Pa — Атмосферное давление в Паскалях (относительно уровня моря (расчетная))
  • Real altitude = хх.хх meters  — Реальная высота (расчетная)

Для того чтобы выводить атмосферное давление в мм ртутного столба надо изменить несколько строк

Serial.print ("Pressure = ");

Serial.print (bmp.readPressure() / 133.322); // Полученное значение в Па делим на 133,322 и получаем мм.рт.ст.

Serial.println (" mm"); // и соответственно меняем "Pa" на "mm"

и

Serial.print ("Pressure at sealevel (calculated) = ");

Serial.print (bmp.readSealevelPressure() / 133.322);

Serial.println (" mm");

 

Настройка  датчика BMP180

Атмосферное давление зависит от места измерения, температуры воздуха и погоды. На уровне моря среднегодовое атмосферное давление составляет pн = 1013.25 мбар = 101,325 кПа (нормальное давление) при среднегодовой температуре 15°С. И при подъеме на каждые 8 м атмосферное давление падает на 100 Па = 1 мбар.

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

Нормальное атмосферное давление на уровне моря составляет приблизительно 101,3 кПа или 101325 Па. Проще для получения нужного значения воспользоваться онлайн калькулятором - Расчёт атмосферного давления на различных высотах, а для перевода из (мм рт. ст.)  в (Па) есть простая формула Па = мм рт. ст. * 133,322. Для калибровки высоты нам потребуется внести изменения в строку

Serial.print(bmp.readAltitude(101500));

где вместо значения 101500 вводим  своё рассчитанное значение.

 

 

 

 

Вещи, которых нужно остерегаться

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

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

Температурный режим: Потому что точное значение температуры необходимо для измерения давления, старайтесь не подвергать устройство резким изменениям температуры, и держите его подальше от горячих частей и других источников тепла.

Влага: BMP180 чувствителен к влаге и не должен контактировать с водой.

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

 

Категория: Электроника | Просмотров: 4642 | Добавил: graftsv | Теги: Датчик атмосферного давления BMP180, I2C, BMP180, Датчик атмосферного давления
Всего комментариев: 0
avatar