Новости

Підключення датчиків тиску для Arduino BMP180, 280, BME280

  1. Принцип дії барометра на BMP280, BMP180, BME280
  2. Варіанти підключення до Arduino
  3. Опис бібліотеки для роботи з датчиком. приклад скетчу
  4. Можливі помилки при підключенні і усунення їх
  5. висновок

Датчики атмосферного тиску bmp180, bmp280, bme280 - часті гості в інженерних проектах. З їх допомогою можна передбачити погоду або виміряти висоту над рівнем моря. Сьогодні саме цю лінійку можна назвати найпопулярнішими і недорогими сенсорами для Ардуіно. У цій статті ми розповімо принцип дії датчиків, схему підключення до різних платам Arduino і наведемо приклади програмування скетчів.

Принцип дії барометра на BMP280, BMP180, BME280

Барометр - пристрій, що вимірює атмосферний тиск Барометр - пристрій, що вимірює атмосферний тиск. Електронні барометри використовуються в робототехніці і різних електронних пристроях. Найбільш поширеними і доступними є датчики тиску від фірми BOSH: це BMP085, BMP180, BMP280 і інші. Перші два дуже схожі між собою, BMP280 - це більш новий і вдосконалений датчик.

Датчики тиску працюють на перетворенні тиску в рух механічної частини. Складається датчик тиску з перетворювача з чутливим елементом, корпусу, механічних елементів (мембран, пружин) і електронної схеми.

Датчик BMP280 створений спеціально для додатків, де потрібні малі розміри і знижене споживання енергії. До таких додатків ставляться навігаційні системи, прогноз погоди, індикація вертикальної швидкості та інші. Датчик має високу точність, хорошою стабільністю і лінійністю. Технічні характеристики датчика BMP280:

  • Габарити 2 х 2,5 х 0,95 мм.
  • Тиск 300-1100гПа;
  • Температури від 0С до 65 С;
  • Підтримка інтерфейсів I2C і SPI;
  • Напруга живлення 1,7В - 3,6;
  • Середній струм 2,7мкА;
  • 3 режими роботи - режим сну, режим FORCED (проведення вимірювання, зчитування значення, перехід в сплячий режим), режим NORMAL (переклад датчика в циклічну роботу - тобто пристрій самостійно через встановлений час виходить з режиму сну, проводить вимірювання, зчитує показання, зберігає виміряні значення і переходить знову в режим сну).

Датчик BMP180 - це дешевий і простий в застосуванні сенсорний датчик, який вимірює атмосферний тиск і температуру. Використовується зазвичай для визначення висоти і в метеостанціях. Складається пристрій з пьезо-резистивного датчика, термодатчика, АЦП, незалежної пам'яті, ОЗУ і мікроконтролера.

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

  • Межі вимірюваного тиску 225-825 мм рт. ст.
  • Напруга живлення 3,3 - 5В;
  • Струм 0,5мА;
  • Підтримка інтерфейсу I2C;
  • Час спрацювання 4,5мс;
  • Розміри 15 х 14 мм.

Датчик bme280 містить в собі 3 пристрої - для вимірювання тиску, вологості і температури. Розроблявся для малого споживання струму, високої надійності і довгостроковій стабільної роботи.

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

  • Розміри 2,5 х 2,5 х 0,93 мм;
  • Металевий LGA-корпус, оснащений 8-ю виходами;
  • Напруга живлення 1,7 - 3,6;
  • Наявність інтерфейсів I2C і SPI;
  • Струм в режимі очікування 0,1 мкА.

Якщо порівнювати всі пристрої між собою, то датчики дуже схожі. У порівнянні зі своїм попередником, до яких відноситься BMP180, новіший датчик BMP280 помітно менше за розмірами. Його восьмиконтактний мініатюрний корпус вимагає акуратності під час монтажу. Також пристрій підтримує інтерфейси I2C і SPI, на відміну від попередників, які підтримували тільки I2C. За логікою роботи датчика змін практично немає, була тільки вдосконалена температурна стабільність і збільшено дозвіл АЦП. Датчик BME280, що вимірює температуру, вологість і тиск, також схожий на BMP280. Відмінність між ними полягає в розмірах корпусу, так як BME280 має датчик вологості, який трохи збільшує габарити. Кількість контактів і їх розташування на корпусі збігаються.

Варіанти підключення до Arduino

Підключення датчика BMP180 до Ардуіно. Для підключення знадобляться сам датчик BMP180, плата Ардуіно UNO, з'єднувальні дроти. Схема підключення показана на малюнку нижче.

Землю з Ардуіно потрібно з'єднати з землею на датчику, напруга - на 3,3 В, SDA - до піну А4, SCL - до А5. Контакти А4 і А5 вибираються з урахуванням їх підтримки інтерфейсу I2C. Сам датчик працює від напруги 3,3 В, а Ардуіно - від 5 В, тому на модулі з датчиком стабілізатор напруги.

Підключення BMP 280 до Ардуіно. Терморегулятори і вид зверху плати зображені на малюнку.

Терморегулятори і вид зверху плати зображені на малюнку

Сам модуль датчика тиску виглядає наступним чином:

Сам модуль датчика тиску виглядає наступним чином:

Для з'єднання з Ардуіно потрібно підключити виходи в такий спосіб: з'єднати землю з Ардуіно і на датчику, VCC - на 3,3, SCL / SCK - до аналогового контакту А5, SDA / SDI - до А4.

Підключення датчика BME280. Розташування контактів і терморегулятори у датчика BME280 така ж, як у BMP280.

Так як датчик може працювати по I2C і SPI, підключення можна реалізувати двома методами.

При підключенні по I2C потрібно з'єднати контакти SDA і SCL.

При підключенні по I2C потрібно з'єднати контакти SDA і SCL

При підключенні по SPI потрібно з'єднати SCL з модуля і SCK (13й контакт на Ардуіно), SDO з модуля до 12 виводу Ардуіно, SDA - до 11 контакту, CSB (CS) - до будь-якого цифрового піну, в даному випадку до 10 контакту на Ардуіно . В обох випадках напруга підключається до 3,3 на Ардуіно.

В обох випадках напруга підключається до 3,3 на Ардуіно

Опис бібліотеки для роботи з датчиком. приклад скетчу

Для роботи з датчиком BMP180 існують різні бібліотеки, що спрощують роботу. До них відносяться SFE_BMP180, Adafruit_BMP085. Ці ж бібліотеки підходять для роботи з датчиком BMP080. Для датчика bmp280 використовується схожа бібліотека Adafruit_BMP280.

Перший пробний скетч буде змушувати датчик прочитувати свідчення тиску і температури. Код підійде як для датчика BMP180, так і для BMP280, потрібно тільки підключити правильну бібліотеку і вказати вірні контакти, до яких підключений модуль. В першу чергу в коді потрібно підключити всі бібліотеки і форматувати роботу датчика. Для визначення тиску потрібно спочатку дізнатися температуру. Для цього використовується наступний елемент коду.

status = pressure.startTemperature (); // Зчитуються дані з датчика про температуру if (status! = 0) {delay (status); // Очікування status = pressure.getTemperature (T); // Збереження отриманих даних про температуру if (status! = 0) {Serial.print ( "Temperature:"); // Виведення на екран слова «Температура» Serial.print (T, 2); // Висновок на екран значення температури. Serial.println ( "deg C,"); // Друк символу градуса Цельсія.

Потім потрібно отримати інформацію про атмосферний тиск.

status = pressure.startPressure (3); // відбувається зчитування тиску if (status! = 0) {delay (status); // Очікування status = pressure.getPressure (P, T); // отримання тиску, збереження if (status! = 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" (мм. Рт.ст.).

Після завантаження скетчу в вікні моніторинг порту з'являться дані про температуру і атмосферному тиску.

Датчик BME280 також показує тиск і температуру, додатково він може прочитувати свідчення про вологості, який за замовчуванням вимкнений. При необхідності можна зробити настройки датчика і почати прочитувати свідчення про вологості. Діапазон вимірювання від 0 до 100%. Бібліотека, яка потрібна для роботи з датчиком, називається Adafruit_BME280.

Код схожий на той, що описаний вище, тільки до нього ще додаються рядки для визначення вологості.

void printValues ​​() {Serial.print ( "Temperature ="); Serial.print (bme.readTemperature ()); Serial.println ( "C"); // визначення температури, виведення її на екран в градусах Цельсія. Serial.print ( "Pressure ="); Serial.print (bme.readPressure () / 100.0F); Serial.println ( "hPa"); // визначення тиску, виведення його на екран Serial.print ( "Humidity ="); Serial.print (bme.readHumidity ()); Serial.println ( "%"); // визначення вологості у відсотках, висновок виміряного значення на екран. Serial.println (); }

Можливі помилки при підключенні і усунення їх

Найбільш часто зустрічається помилка - неправильні дані про тиск і температуру, які відрізняються на декілька порядків від реального значення. Причиною цього найчастіше стає неправильне підключення - наприклад, в бібліотеці зазначено, що потрібно підключати по I2C, а датчик підключений по SPI.

Також при використанні "китайських" датчиків можна зіткнутися з нестандартними I2C або SPI адресами. В цьому випадку рекомендується просканувати всі приєднані пристрої за допомогою одного з популярних скетчів і з'ясувати, за якою адресою відгукується ваш датчик тиску.

Ще однією проблемою може стати невідповідність робочої напруги харчування модуля базового напрузі використовуваного контролера. Так, для роботи з датчиком на 3,3 В вам буде потрібно створити дільник напруги або використовувати один з існуючих готових модулів узгодження рівнів. До речі, такі модулі досить дешеві і початківцям рекомендується використовувати їх.

Невеликі відхилення від реальної величини можуть бути пов'язані з калібруванням сенсора. Наприклад, для датчика BMP180 всі дані розраховуються і задаються в скетчі. Для отримання більш точного значення висоти потрібно знати поточне значення тиску над рівнем моря для даних координат.

висновок

Датчики атмосферного тиску bmp180, bmp280- не найдешевші види сенсорів, але в багатьох випадків альтернативи таким сенсорам практично немає. У проекті метеостанції датчик фіксує важливий параметр - атмосферний тиск, завдяки чому стає можливим пророкувати погоду. У проектах, пов'язаних зі створенням літаючих апаратів барометр використовується в якості датчика реальної висоти над рівнем моря.

Підключення датчиків не представляє будь-якої складності, тому що використовується стандартної i2C або SPI з'єднання. Для програмування можна використовувати одну з готових безкоштовних бібліотек .

Уважаемые партнеры, если Вас заинтересовала наша продукция, мы готовы с Вами сотрудничать. Вам необходимо заполнить эту форму и отправить нам. Наши менеджеры в оперативном режиме обработают Вашу заявку, свяжутся с Вами и ответят на все интересующее Вас вопросы.

Или позвоните нам по телефонам: (048) 823-25-64

Организация (обязательно) *

Адрес доставки

Объем

Как с вами связаться:

Имя

Телефон (обязательно) *

Мобильный телефон

Ваш E-Mail

Дополнительная информация: