Все для Arduino в одном месте
Адрес: Павлодар
Телефон: +7 705 336-36-03

whatsapp +7 705 336-36-03

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

Датчик BMP180 (3.3В, GY-68) — является недорогим и простым в использовании сенсорным датчиком, позволяющий измерить атмосферное давления и температуру окружающей среды. Используют данный датчик для определения высоты (чем выше, тем меньше давление), а так же в самодельных метеостанциях.

Технические параметры

  • Напряжение питания: 3.3 В – 5 В
  • Рабочий ток: 0.5 мA
  • Диапазон измеряемого давления: 300 гПа – 1100 гПа
  • Интерфейс: I2C
  • Время срабатывания: 4.5 мс.
  • Точность измерения давления: 0,1 гектопаскаль;
  • Точность измерения температуры: 0,1°С;
  • Габариты: 15 мм х 14 мм

Общие сведения

В левой части расположен сам сенсорный датчик BMP180 фирмы Bosch. Так как датчик BMP 180, работает от 3.3В (а почти все платы Arduino работают на 5В), на плате предусмотрен стабилизатор напряжения XC6206P332MR в корпус SOT-23, который выдает на выходе напряжение в 3.3В, рядом установлена обвязка стабилизатора, состоящая из двух керамических конденсаторов на 1 мкФ. Подключение осуществляется по интерфейсу I2C, линии SCL и SDA выведены на группу контактов на другой стороне модуля, туда же выведено и питание. Последние два резистора на 4.7 кОм, необходимы подтяжки линии SCL и SDA к питанию, конечно при необходимости их можно выпаять, если используете несколько устройств на I2C линии.

Назначение контактов:

  • SCL — линия тактирования (Serial CLock)
  • SDA — линия данных (Serial Data)
  • VCC — «+» питание
  • GND — «-» питание

Подключение датчика давления BMP180 к Arduino

Необходимые детали:

  • Барометрический датчик давления BMP180 (3.3В, GY-68) x 1 шт.
  • Arduino UNO R3 (DCCduino, CH340G)x 1 шт.
  • Провод DuPont 10x, 2,54 мм, 20 см, F-F (Female — Female) x 1 шт.

Подключение:
В данном примере используем датчик BMP 180 и плату Arduino UNO R3, все получение показание отправлять в «Serial порт», принципе и все, осталось собрать схему по рисунку ниже. Для интерфейса I2C на плате arduino предусмотрено только два вывода A4 и A5, другие вывода не поддерживают I2C, так что учтите при проектирование.

 

 

 

 

Посмотреть код примера
#include 
#include 
 
SFE_BMP180 pressure;                          // Объявляем переменную для доступа к SFE_BMP180
 
void setup()
{
 Serial.begin(9600);                          // Задаем скорость передачи данных
 Serial.println("REBOOT");                    // Печать текста "Перезагрузка"
 
 if(pressure.begin())                         // Инициализация датчика
     Serial.println("BMP180 init success");   // Печать текста "BMP180 подключен"
   else{                                      // В противном случаи, датчик не подключен
     Serial.println("BMP180 init fail\n\n");  // Печать текста "BMP180 не подключен"
     while(1);                                // Пауза.
       }
}
 
void loop()
{
  char status;
  double T,P,p0,a;
 
/* Так как давление зависит от температуры, надо сначало узнать температуру 
 * Считывание температуры занимает какоето время. 
 * Если все хорошо, функция pressure.startTemperature вернет status с количеством милисикунд
 * которые нужно подождать. Ксли какае то проблема, то функция вернет 0.
*/
 
  status = pressure.startTemperature();       // Считывание показания
  if(status!=0){                              // Если значение status не 0, выполняем следующию команду.
     delay(status);                           // Ждем     
     status = pressure.getTemperature(T);     // Полученые показания, сохраняем в переменную T
      if(status!=0){                          // Если все хорошо, функция вернет 1, иначе вернет 0
         Serial.print("Temperature: ");       // Печать текста "Температура"
         Serial.print(T,2);                   // Печать показания переменной "Т"
         Serial.println(" C, ");              // Печать текста "С"
 
/* Определяем показания атмосферного давления
 * Параметр указывает расширение, от 0 до 3 (чем больше расширение, тем больше точность, тем долше ждать)
 * Если все хорошо, функция pressure.startTemperature вернет status с количеством милисикунд
 * которые нужно подождать. Ксли какае то проблема, то функция вернет 0.
*/
 
  status = pressure.startPressure(3);         // Считывание показания
  if(status!=0){                              // Если значение status не 0, выполняем следующию команду.
     delay(status);                           // Ждем
     status = pressure.getPressure(P,T);      // Полученные показания, сохраняем в переменную P
      if(status!=0){                          // Если все хорошо, функция вернет 1, иначе вернет 0 
         Serial.print("Absolute pressure: "); // Печать текста "Атмосферное давление"
          Serial.print(P,2);                  // Печать показания переменной mBar
          Serial.print(" mbar, ");            // Печать текста "mBar"
          Serial.print(P*0.7500637554192,2);  // Печать показания в mmHg
          Serial.println(" mmHg");}           // Печать текста "mmHg"
 
  else Serial.println("error retrieving pressure measurement\n");}    // Ошибка получения давления
  else Serial.println("error starting pressure measurement\n");}      // Ошибка запуска получения давления
  else Serial.println("error retrieving temperature measurement\n");} // Ошибка получения температуры
  else Serial.println("error starting temperature measurement\n");    // Ошибка запуска получения температуры
  delay(5000);                                                        // Пауза в 5с
}

 

 

 

 

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

  • 3

  • Код товара: BMP180
  • SKU: IAR-pb-05-003
  • Цена: 800 KZT