Блог о программировании, электронике и рыбалке

Подключение барометра BMP085 к Arduino

bmp085В этот раз я опишу процесс подключения цифрового датчика атмосферного давления BMP085 к Arduino.

Этот датчик я собираюсь использовать в проекте домашней метеостанции, поэтому опишу работу с ним максимально подробно.

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

  • Пределы измерения абсолютного давления 30-110кПа (300-1100hPa) (-500…9000 метров над уровнем моря)
  • Питание 1.8 — 3.6В (Vdda), 1.62 — 3.6В (Vddd)
  • Низкий уровень шума:
    0.06hPa (0.5м) в стандартном режиме
    0.03hPa (0.25м) в режиме ультравысокого разрешения
    0.1m возможно при применение программного фильтра.
  • Интерфейс: I2C
  • Разрешение: 0.01 hPa,  0.1 С

Расположение и назначение выводов BMP085

bmp085

Подключение BMP085 к Arduino

Схема подключения довольно простая:

  • VCC на BMP085 подключаем к +3,3 V Arduino
  • SDA на BMP085 подключаем к пин 20 (SDA) Arduino Mega 2560 (аналоговый пин 4 на Arduino Uno)
  • SCL на BMP085 подключаем к пин 21 (SCL) Arduino Mega 2560 (аналоговый пин 5 на Arduino Uno)
  • GND на BMP085 подключаем к GND Arduino

bmp085

Для работы с датчиком в среде Arduino необходимо установить дополнительную библиотеку bmp085.

bmp085.rar (51,9 КиБ, 5 698 hits)

Скачайте архив и распакуйте его содержимое в \arduino-1.xx\libraries\

Тестовый скетч, который выводит в окно Монитора порта высоту, давление и температуру:

#include <Wire.h>
#include <BMP085.h>

BMP085 dps = BMP085();

long Temperature = 0, Pressure = 0, Altitude = 0;

void setup(void) {
Serial.begin(9600);
Wire.begin();
delay(1000);

dps.init();
}

void loop(void) {
dps.getPressure(&Pressure);
dps.getAltitude(&Altitude);
dps.getTemperature(&Temperature);

Serial.print("  Alt(m):");
Serial.print(Altitude/100);
Serial.print("  Pressure(mm Hg):");
Serial.print(Pressure/133.3);
Serial.print(" Temp:");
Serial.println(Temperature*0.1);
delay(2000);
}

Результат работы:

bmp085

Установка датчика атмосферного давления

Датчик атмосферного давления устанавливается в помещении вдали от окон и отопительных приборов. Атмосферное давление зависит от высоты над уровнем моря места, где производится измерение; поэтому требуется калибровка датчика давления перед его использованием. Для правильной установки прибора необходимо воспользоваться показаниями другого барометра или данными ближайшей метеостанции (с учётом разности высот, определённой по подробной топографической карте; 10 м подъёма соответствует уменьшению давления примерно на 1 мм рт.ст. или 1.3 гПа(мБ)).

© meteocenter.net

Присоединяйтесь к нашей группе в Telegram @GeekElectronics
  • keyboard_arrow_downПодключение барометра BMP085 к Arduino
    • Автор:
    • Миниатюра: Подключение барометра BMP085 к Arduino
    • Рубрика: Arduino от А до Я
    • Обновлено: 21.02.2023
    • Комментариев: 7
    • Просмотров: 24 893
  • Оцените пожалуйста статью
    1 Star2 Stars3 Stars4 Stars5 Stars
    Загрузка...
  • Поделитесь с друзьями
Geek Electronics

Комментариев: 7

  • Avatar for source
    Serg:

    У меня в Serial Monitor'e не выводится действительное значение высоты над уровнем моря (Alt). Вместо этого выводятся хаотично "0", "1", или "-1". Значения атмосферного давления и температуры выводятся корректно. В чём ошибка?

    • Avatar for source
      Artem:

      Запишите Serial.print(Altitude/100., X); X число разрядов после запятой, у вас всё нормально только не выводит дробную часть числа, например Serial.print(Altitude/100., 1);. Вывод будет 1.4
      Serial.print(Altitude/100.,2); Вывод будет 1.45.

  • Avatar for source
    Andrey:

    Пара вопросов по значениям напряжений:
    1) На данной плате с датчиком (GY-65) есть линейный стабилизатор на 3,3В, означает ли это, что линию VCC можно подключать к +5В?
    2) Уровни напряжений на линиях A4/A5 соответствуют стандарту LVTTL (т.е. с макс. напряжением 3,3В вместо 5В, и это реализовано программно через соотв. вызов analogWrite() ) и никакого дополнительного преобразования уровней для BMP085 не требуется?

    • Avatar for source
      source™:

      1 не проверял. подключал на 3,3
      2 для Arduino преобразования уровней не требуется

  • Avatar for source
    Фроллер:

    I2C использует выходы с открытым стоком. Преобразования уровней не требуется, но требуются подтягивающие резисторы к +Uпит (в случае с Arduino - к +5В)

  • Avatar for source
    Василий:

    меня интересует, какое напряжение выдает барометр при разных давлениях? и какие это выводы? как измерить это напряжение?
    спасибо!

Добавить комментарий

arrow_upward